Hallo, Ich habe gerade einen I2C-Chip am Mega8 angeschlossen und sende TWI-Start, (Antwort 08h) dann die Chip-Adresse (Antwort 20h) und dann ein Datenbyte (Antwort 30h) Lt. Datenblatt müßte das bedeuten, daß der Slave kein "ACK" generiert (also gar nicht reagiert)? Es könnte ja sein, daß der Chip ein paar Millisekunden braucht oder so.. Sollte ich zum Test immer zyklisch TWI-Start -> Chip-Adresse ODER TWI-Stop -> TWI-Start -> Chipadresse senden, bis Antwort 18h kommt? Habe ich überhaupt eine andere Chance zu sehen, ob der Chip funktioniert / mit mir reden will, als das ACK-Bit zu prüfen? Oszi habe ich, aber keiner zum Speichern..
Hi, leider kann ich Dir darauf auch keine Antwort geben, denn ich habe momentan exakt das gleiche Problem. Nur, dass ich 2 AVRs benutze über I²C verbunden. Hast Du mittlerweile eine Antwort auf Dein Problem bekommen??? Falls ja, lass es mich gern wissen, denn langsam verzweifle ich hier... Danke, Xine
Ich habe es selbst herausgefunden - der Takt (definiert durch den TWI Vorteiler) war bei mir viel zu schnell eingestellt. Ich habe angenommen, es sollten so ca. 100KHz sein, aber es kann auch viel langsamer sein. Jetzt habe ich so ca. 10kHz und keine Probleme mehr. Das Debuggen fand ich nicht leicht. kannst Dir ja erstmal ein anderes TWI-Gerät nehmen, das sicher funktioniert (Temp.-Sensor oder so) - dann weißt Du zumindest, ob Dein Master funktioniert.
Hallo, max. 100kHz können alle I2C-ICs. Natürlich darf die Leitung nicht zu lang sein (Kapazitäten stehen in der I2C-Beschreibung) und die PullUps müssen passen (Formel steht auch im AVR-Datenblatt. Innerhalb einer Leiterplatte sind 4,7k brauchbar, die internen PullUp des AVR sind zu hochohmig. Gruß aus Berlin Michael
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.