Kann man mit einem 32 KHz-Quarz als Clock den I2C-Bus betreiben ? (Im Datenblatt zum MEGA8 stand, dass man den mit 100 und 400 KHz betreiben kann) bzw. Hat der I2C-Bus einen Eigenen Oszillator ?
Nein. Der Takt wird vom Oszillatortakt (intern bzw. extern) über TWBR und TWPS abgeleitet. Formel und weitere Angaben findet man im Datenblatt. Wie kommt man auf die Idee, den Bus bei 32kHz betreiben zu wollen?
Weil ich den µC mit 32KHz betreiben will (Stromsparen) und mehr Speicher brauche (8KB I²C EEPROM). Dürfte es stattdessen mit 1MHz internen Oszillator funktionieren ?
bin mir nicht ganz sicher aber ich glaube was davon gesehen zu haben das die sysclock mindestens 4 mal schneller sein muß als der takt von i2c... vielleicht war es auch 16 mal so schnell... keine ahnung aber steht irgendwo
@Christoph Wagner Zu deiner Frage ist zu sagen das es beim I2C-Bustakt nur Ober- aber keine Untergrenzen gibt. Notfalls kannst du den Bus "Manuell" im Monatstakt mit jeweils einem Takt beschicken und dennoch läuft alles. Du kannst also deinen Controller so langsam takten wie es dir gefällt und natürlich soweit er noch einwandfrei funktioniert. In deiner Kalkulation muß nur berücksichtigt werden das einige komplexere I2C-Slaves intern getaktet werden und einen Mindestbustakt benötigen. Für die Einfachen Bausteine wie PCF8574 usw. ,die nur Bustaktabhängig gesteuert werden ist das aber unerheblich. Was Sebastians Zweifel angeht : Natürlich wird der I2C-Takt aus dem Systemtakt gewonnen und im Bitratengenerator über das Bitrateregister (TWBR) eingestellt damit man bei unterschiedlichen Controllertakten auch immer den gewünschten I2C-Takt bekommt. Alles Wichtige ist aber im Datenblatt zum Mega8 ab Seite 159 aufgeführt.
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.