Vielen Dank für die vielen, schnellen, Antworten.

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...
sorry, es heißt PC2 und PC3, die Standard-I²C - Lösung, um dann ein Display anzuschließen.

http://www.asurowiki.de/pmwiki/pmwik...LCDErweiterung

Anscheinend klappt das ziemlich gut, ohne Kurzschluss

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...
nett formuliert... d.h. es kann also tatsächlich ein Kurzschluss entsteht?

Und Eingang (mit internem PullUp) ist funktionell wie ein Open-Collector-High.
Ja, hier gibt es noch Hi-Z usw...
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