-
-
Erfahrener Benutzer
Robotik Einstein
Hmmmm, bei 400 kHz sind die Impulse ~0,0000025 s Lang
oder 2,5 µs auf was hast Du die Zeitbasis stehen? Lege PC2 nicht nur über einen Pull Up auf Vcc, setze zusätzlich einen 100nF gegen GND. Kann
sein das der sonst dauend Resettet..
Gruß Richard
-
Hi!
Poste mal deinen Code und wenns geht nen Bild vom Osci, 2 Kanal SCK/SDA wär am schönsten
-
-
Die clock läuft, aber es werden keine Daten auf SDA rausgeshifted. Imho zieht da irgendas von aussen sda auf low nach dem start.
Überprüf noch mal was du da geätzt hast, gib dem Bus mehr Zeit zwischen den Nachrichten um sich zu fangen und mach das alles für den Anfang mal was langsamer.
-
Ih habe jetzt eher gedacht das zwischen RESET und SCK eine verbindung besteht die nicht sein soll. Soll RESET wirklich so aussehen?
Ja ich werde heute nochmal die Platine nach Fehlern untersuchen, langsamer ist schwer, da die Slaves eine Mindesfrequenz von 100kHz haben.
-
-
Erfahrener Benutzer
Robotik Einstein
Naja, wenn du PC2 auf high setzt, zieht ja der AVR und der Pullup die Leitung auf 5V. Wenn du PC2 auf low setzt, wird die Leitung vom AVR aus auf GND gezogen, der Pullup hat dann quasi nichts mehr zu melden.
Also wenn du die Reset-Leitung benutzen willst, musst du statt zwischen
High und Low (PORT) zwischen Input und Output (DDR) umschalten.
Low und Input: Hochohmig, Pullup zieht Leitung auf 5V.
Low und Output: Leitung wird vom AVR auf GND gezogen.
High und Input: gleiche wirkung wie Low und Input.
High und Output: geht nur solange gut, bis jemand anders die Leitung auf GND zieht => Kurzschluss.
EDIT: Scheinbar wurde der letzte Beitrag gerade editiert, so dass die Antwort von mir jetzt wohl nicht mehr gebraucht wird. Lass ich aber trotzdem mal da.
-
Ja entschuldigung, ich hatte im Programm ein DDRC = 0xff versteckt. Aber danke das ist sehr interessant.
Witzig ist das ich nun verschiedene Adressen ausprobiert habe, aber keine Leds leuchten
-
Erfahrener Benutzer
Robotik Einstein
I²C Adressen haben 7 Bit, das 8. Bit ist das schreib lese Bit.
Deshalb können nur Adresse 2,4,......128 als Adressen benutzt
werden. An den Port Expandern können die Adressen Hartware
mäßig geändert werden. Möglich das Dui deshalb Probleme hast?
Gruß Richard
-
Bo ich weiß nicht, also meine Adressen
Slave suchen: 1100000(0) schreiben
register: 10010100: Ledout0 register
Led: 01010101
ack vom slave und ende.
so ist auch das Beispiel im Datenblatt Seite 25.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen