Wie schon der Name sagt, braucht das TWI (two-wire-interface) drei Drähte zur Verbindung: SCL, SDA und GND. Ich weiß jetzt aber die Stecker-Nummern nicht auswendig.
Hallo,
als totaler Anfänger im Bereich Hardwareentwicklung, habe ich mir zum Einstieg ersteinmal den PC->I2C Bausatz sowie die Relaisplatine und den Temperatursensor mit I2C Interface gekauft. Nachdem ich alles soweit zusammengelötet habe, ging es ans erste Anschließen aber leider tat sich nach dem Start des PC->I2C Beispielprogramms rein gar nichts. Genauer gesagt bleibt es hier hängen:
Sub i2c_stop()
set_sda (0)
set_scl (1)
stopa:
If get_scl() = 0 Then GoTo stopa
set_sda (1)
End Sub
Soweit die Situation. Da das Programm wahrscheinlich oft genug getestet wurde, nehme ich an, dass beim Zusammenbau etwas schief gelaufen ist. Hier jetzt meine Fragen, bevor ich mich an die Fehlersuche mache:
- Sollte das Programm mit angeschlossenem Adapter aber ohne irgendein anderes Gerät am I2C Bus normal funktionieren?
- (nur zur Sicherheit) Sind irgendwelche Inkompatibilitäten mit WinXP SP2 bekannt?
- Beim Verbinden von Relaiskarte und PC->I2C Adpater habe ich nur PIN 1 und 3 des 10er Steckers verbunden, da nur diese für den I2C Bus benötigt werden. Ist das so korrekt, oder habe ich etwas falsch verstanden?
Danke im Voraus für eventuelle Antworten,
Patrick.
Wie schon der Name sagt, braucht das TWI (two-wire-interface) drei Drähte zur Verbindung: SCL, SDA und GND. Ich weiß jetzt aber die Stecker-Nummern nicht auswendig.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Danke für die schnelle Antwort. Antworten zu den anderen Fragen werden weiterhin gerne entgegengenommen
Ich kann dir bei dem beiliegenden Programm-Beispiel leider nicht viel helfen, da ich kein VB habe. jetzt hab ich das Test-Exe mal angeworfen, konnte damit problemlos auf dem angeschlossenen RNBFRA-.Board die PCFs bedienen, und hab mir dann das Zeugs für VC++ um-, bzw. neugeschrieben
Ohne was Angeschlossenes gibt's natürlich keine ACK's, d.h. so gesehen funktioniert es natürlich nicht.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Als reicht ein angeschlossener PC->I2C Adapter nicht, an dem Adapter muß auch etwas 'dranhängen? Dadurch würde sich meine Fehlersuche dann auch auf das Relaisboard ausdehnen
Naja, Wenn das Programm am PC eine Steuersequenz wegschickt, und dann ist nix angeschlossen, läßt sich schwer was überprüfen.
Was den I2C-Bus betrifft, macht die Relaisplatine aber normalerweise keine Schwierigkeiten.
Du mußt das mit der Stromversorgung richtig jumpern bzw. anschließen,
und die mußt die eingestellte I2CAdresse natürlich im Programm verwenden, logo.
Bei dem PC<>I2C Adapter ist ein fertiges EXE-Testprogramm dabei. Hast du es mit dem versucht ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Ja, mit dem habe ich es versucht. Ich werde wohl noch einmal alle Lötstellen überprüfen.
Das Programm hängt aber schon in der oben angeführten Schleife, noch bevor irgendeine Slave ID verwendet wird.
"Hängen" (eigentlich dauer-Schleife) kann die Funktion nur da:
If get_scl() = 0 Then GoTo stopa
d.h. SCL ist offenbar immer unten.
Da vermute ich, daß das Pullup der SCL u. SDA nicht korrekt ist. Wenn du die Relaiskarte absteckts und mit Strom versorgt, müssen beide Leitungen ca 5V+ zeigen.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
OK, immer daran denken, dass ich noch absoluter Neuling auf diesem Gebiet bin
Verstehe ich Dich richtig, dass ich die I2C Busleitungen abstöpseln soll, Strom auf den zusätzlichen Eingang der Relaiskarte geben und dann schaue, ob auf Pin 1 und Pin 3 je ca. 5V anliegen?
Danke im Voraus,
Patrick.
Ich hatte diese Problem vor einiger Zeit auch, da lag es einfach am seriellen Kabel was zwischen PC und dem Adapter war. Das muss oder darf kein gekreuztes Kabel sein, welche Variante weiss ich nicht mehr.
Wenn man es direkt am PC/Notebook anschliesst, also ohne Zwischenkabel, muss es aber gehen.
Lesezeichen