Ich muss mit dem Atemga16 über I2C ne Kommunikation mit nem Spannungsüberwachungsbaustein DS2745 von Maxim aufbauen. Nach der Startbedingung soll die Slaveadresse übertragen werden. Danach soll ein Acknowledge empfangen. Danach die Daten an den Baustein an den senden....also das übliche Spiel mit dem I2C Bus. Habe aber das Problem dass ich keinen Acknowledge empfange. Auf dem Oszi sieht man dass alles sauber übertragen wird, also die Starbed. und die Adresse. Als neuntes Bit ist die SDA leitung auf null, also sollte das auch ok sein. Aber mein Atmel empfängt das Acknowledge irgendwie nicht denn er bleibt bei Abfragen ob das ACK da war in der Schleife hängen. Habe die I2C sequenz mal als Anhang eingestellt. Während des Durchlaufs der Sequenz wird nacheinander ein anderer wert in das Register r23 geladen und beim Verlassen der Sequenz durch error, also ACk nicht angekommen am PortA ausgegeben. Da hab ich ne 7segment anzeige hängen die mir das zeigt. So hab ich eben rausgefunden dass er in der Schleife hängt. Der Atmega läuft auf 1MHz interner Oszillator. Der BAustein ist auch nicht defekt, denn ich habe schon den zweiten ausprobiert. Die I2C Leitungen sind nur wenige Millimeter lang. Ich kann mir also nur einen Fehler im Code Vorstellen
Hat denn keiner ne Idee? Stimmt denn wenigstens meine I2C sequenz? oder hab ich da was übersehen?
Das gibts doch nicht. 10 x den Code runtergeladen aber keiner ist in der Lage zu schreiben ob der Code stimmt oder nicht.
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.