Hallo Ich habe ein Problem mit meinem I2C-Bus. Mein ATmega 16 fungiert als Master und soll den Salve MAX6956 ansprechen. Dieser rührt sich allerdings nicht. Wenn man die Codevision-I2C-Funktionen nach einem Acknowledge abfragt, so wird dies niemals true. Auf dem Oszi kann man immerhin erkennen, dass der ATmega16 etwas auf dem Bus tut. Da dies meine erste Schaltung mit einem I2C-Bus ist, kann ich mir nicht 100% sicher sein, ob mein Schaltplan stimmt. Zwei Pullups sind an SDA und SCL angeschlossen und AD0 und AD1 sind auf Ground gelegt. i2c_start(); i2c_write(MAX6956_BUS_ADDRESS); i2c_write(0x02); //Command Byte -->Global Current i2c_write(0x05); //Data Byte -->Testwert, noch ändern i2c_stop(); Tipps und Hinweise sind willkommen.
Stimmt die Adresse? Bei I2C wird die mal als 7-Bit-Wert ohne R/W-Bit, mal als 8-Bit-Wert mit R/W-Bit angegeben.
Die Slave-Adresse ist 100 0000, also 0x40. So steht es dann auch im Code drin: #define MAX6956_BUS_ADDRESS 0x40 Wie möchte es der Codevision nun genau haben?
Hallo Ich habe auch ein Problem mit meinem I2C-Bus. Wie bei Sebastian ist mein ATmega 16 Master hat den MAX6956 als Slave. Das programm wird komplett ausgeführt, so dass keine Fehlermeldung kommt. Jedoch bleiben trotzdem alle Leds dunkel. Verdrahtet ist alles wie auf der vorletzten seite im Datenbaltt beschrieben Leider ist das datenblatt mit seinen zig registern etwas unduchsichtig gestaltet, finde ich jedenfalls. Ich hoffe mir kann jemand helfen. Die Datein habe ich alles als rar angehägt. Vielen Danke martin
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.