Vielen Dank für die vielen, schnellen, Antworten.
sorry, es heißt PC2 und PC3, die Standard-I²C - Lösung, um dann ein Display anzuschließen.PB4 und PB5 sind die Drehrichtung des linken Motors. Das bedeutet, der asuro kann und darf nur im Stillstand kommunizieren. Welche Software-I2C-Lösung verwendest du? Ich würde das gerne auch mal testen...
http://www.asurowiki.de/pmwiki/pmwik...LCDErweiterung
Anscheinend klappt das ziemlich gut, ohne Kurzschluss
nett formuliert... d.h. es kann also tatsächlich ein Kurzschluss entsteht?Als Kennzeichen für den Start einer I2C-Kommunikation zieht ein Teilnehmer die Leitung auf Low. Wenn der AVR dabei ein echtes (hartes) High ausgibt, qualmt's. Elektronische Bauteile funktionieren mit Rauch...
Ja, hier gibt es noch Hi-Z usw...Und Eingang (mit internem PullUp) ist funktionell wie ein Open-Collector-High.
aber das nur, wenn der Pin auf Eingang geschalten ist. Bei I²C (wie in der AsuroLib beschrieben) wird der Pin als Ausgang auf High schalten, wofür laut Datenblatt kein PullUp verfügbar ist.
Nach bisschen überlegen kommt mir eine Idee:
Das I²C-Protokoll ist die Lösung:
Der Portexpander ist nur ein Slave, d.h. er schalten nicht selber SCL und SDA auf low, es entsteht kein Kurzschluss. Da er nie startet, braucht/kann er gar nicht SCL auf low ziehen (Datenblatt). Und wenn der etwas antwortet (z.B. ACK etc.) ist der Atmega als Eingang, im High-Z, mit PullUp und verhält sich wie open-collector-High.
Dadurch ist entsteht bestimmt kein Rauch
(man kann aber durch einen Programmfehler SCL auf low ziehen (Atmega: ich höre), aber dabei vergessen, SDA als Eingang zu schalten, ... )
Gruß
DL
Lesezeichen