Hallo, ich habe einen kleinen I2C-Bus an einem ATMega8. Daran ist unter anderem ein EEPROM von Atmel (24C02) angeschlossen. Wenn ich der TWI_master.h (von Atmel) die Geschwindigkeit nun auf 100kHz einstelle funktioniert überhaupt nichts (also die Werte werden nicht zurückgelesen). Aber bei 10kHz funktioniert es ohne Probleme. Angeblich unterstützt das EEPROM aber 400kHz... Mach ich irgendwas falsch? Die Kommunikation mit den anderen Slaves funktioniert einwandfrei. Pullups sind 4k7. Vielen Dank, Daniel ps. hier der Code mit dem ich das EEPROM beschreibe und auslese: messageBuf[0]=DevEEPROM+TWIWrite; messageBuf[1]=0;//(0xff-RTCRAM); messageBuf[2]=0xda; TWISend(messageBuf,3); messageBuf[0]=DevEEPROM+TWIWrite; messageBuf[1]=0;//(0xff-RTCRAM); TWISend(messageBuf,2); messageBuf[0]=DevEEPROM+TWIRead; TWISend(messageBuf,2); TWIGet(messageBuf,2);
ich denke es geht schon mit 400kHz nur solltest du dem eprom auch die nötige zeit lassen um den vorherigen befehl zu bearbeiten.
ich denke es geht schon mit 400kHz nur solltest du dem eprom auch die nötige zeit lassen um den vorherigen befehl zu bearbeiten. mach mal ne pause (keine ahnung wie lang... sollte aber im datenblatt von eprom stehen) zwischen lesen und schreiben. (ich denke daten schreiben wird länger dauern als lesen)
Heureka... Damit hat sich diese Frage wohl geklärt. Danke! Ich habe jetzt nach jedem schreiben eine Pause von 10ms (wie im Datenblatt steht) und jetzt funktioniert es perfekt! Grüße, Daniel
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.