Hallo! Ich habe einen ATMega128, bei dem alle Interrupts benötigt werden (dadurch ist Hardware-TWI nicht mehr verwendbar). Leider sind die leiterplatten ebenfalls schon fertig, weshalb das ext. I2C-EEPROM an Port G, Pin 0 und 1 hängt. Peter Fleury's i2cmaster.S kann leider den Port G nicht mehr ansprechen und ich kenne mich mit AVR-ASM so gut wie garnicht aus, um den source zu ändern. Hat zufällig jemand eine I2C-Master-Code in C? Ist I2C eigentlich zeitkritisch? Danke für Tipps!
Nachdem ich soviel Rückmeldung erhalten habe (ironisch gemeint) und anscheinend keine derartige Lib existiert, habe ich mir selber eine geschrieben. Sie ist in C; zugeschnitten für den 24C256. Gebe keine Garantie auf 100%ige Funktionssicherheit. Momentan kann Sie nur Byteweise lesen und schreiben (da mir dies im moment reicht). Im Anhang bedindet sich die Lib. Aufruf per if ( i2c_eep_write ( 0x0005, 0xaa ) & 0xff00 ) { uart_puts_P("ERROR!"); } else { uart_puts_P("OK!"); } bzw. sprintf(text, "%#04x\n\r", i2c_eep_read ( 0x0005 )); uart_puts_P("Fertig!\n\rGelesenes Datum: "); uart_puts(text); Bin für Verbesserungstipps dankbar! Gruß, Techniker
Hi! Im Anhang die Revision 0.3! Es wurden mehrere Bugs entfernt, sowie das Page-weise lesen und schreiben hinzugefügt! Bisher erfolgreich getestet mit AT24C256. (In Arbeit: 24C16 und 24LC02) Über Verbesserungsvorschläge bin ich dankbar! Gruß, Techniker
Hallo Techniker ! Ich habe mir gerade selbst die Specs zu I2C zusammengesucht, und daraus geht ganz klar hervor, dass I2C im Standard mit 100 kHz läuft, im Hi-Speed mit bis zu 400 kHz, aber das langsamere Abläufe kein Problem sind, da die Sache über die Definition der SCL-SDA-Flanken-Wechsel genau definiert ist - ich denke, man könnte da auch ein Byte pro Sekunde übertragen :-) Gruß, Andreas
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.