Hallo
Der Mega8 hat zwar keine open-collector-Ausgänge, dafür kann er mit seinen Ausgängen drei Zustände erzeugen: High, Low, Eingang. Und Eingang (mit internem PullUp) ist funktionell wie ein Open-Collector-High.
Gruß
mic
Ich hätte eine (theoretische) Frage zu I²C mit dem Atmega8:
Bei I²C werden alle Pins direkt verbunden mit Pull-Up gegen Vcc
Alle Pins haben open-collector.
Die Pins vom Atmega aber nicht. Wenn ich jetzt beim Atmega z.B. auf SDL auf high gehe, und ein anderer Pin an SDL auf low, dann müsste doch eigentlich ein Kurzschluss entsteht?
Ich möchte den PCF 8574 mit einem Software-emuliertem Master an Pin B4 und B5 anschließen...
Hallo
Der Mega8 hat zwar keine open-collector-Ausgänge, dafür kann er mit seinen Ausgängen drei Zustände erzeugen: High, Low, Eingang. Und Eingang (mit internem PullUp) ist funktionell wie ein Open-Collector-High.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Die Pins vom Hardware - TWI (I2C) Interface sind auch nur open Kollektor (bzw. genauer Open Drain), wenn man die Pins als I2C benutzt. Nur wenn der Rest des I2C bus weiter funktionieren soll, wenn der µC keine Versorgungsspannung hat, müsste man noch extra Dioden dazu schalten.
Bei Software I2C müsste man halt Dioden dazu schalten. Dann verhalten sich auch andere Pins ganz ähnlich wie Open-Kollektor Pins. Nur bei weniger als etwa 3 V stört dann der Spannungsabfall an der Diode.
Edit:
Die Lösung von Radbruch ist einfacher und besser.
... soweit ich weiss sendet beim I2C-Impulsmanagment auch immer nur
ein Teilnehmer, so dass mehrere "volldurchgesteuerte" L oder H sich durch
ev. Parallelschaltungen nicht ins Gehege kommen. VG Micha
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...
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...
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
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
Ja, ich würde sagen, du hast es jetzt drauf
Seit ein paar Tagen spiele ich auch mit dem PCF 8574, allerdings nicht am asuro. Der LCD-Schaltplan im asuro-Wiki stimmt nicht mit der Software überein! Die Software selbst funktioniert aber, wenn man beim Anschluß die Defines beachtet:
https://www.roboternetz.de/phpBB2/vi...=525681#525681Code:////// PCF8574p PINS #define LD4 4 // Pin to Data Bus 4 #define LD5 5 // Pin to Data Bus 5 #define LD6 6 // Pin to Data Bus 6 #define LD7 7 // Pin to Data Bus 7 #define LRS 0 // Pin to RS Pin (Register Select) #define LRW 1 // Pin to Read/Write Pin #define LEN 2 // Pin to Enable Pin #define LBL 3 // Backlight Pin
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Würde ich auch sagenJa, ich würde sagen, du hast es jetzt drauf
Ich habe vor, dass DOGM LCD Modul 163 zu verwenden und die Software selber zu schreiben, um mich in die Materie zu vertiefen, aber gut zu wissen...
Gruß
DL
Lesezeichen