Hallo ehenkes,
Mit welcher Frequenz wird der I²C-Bus aktuell in der Bibliothek betrieben?
Ist bei der Initialisierung als Master einstellbar - man kann die Bitrate in kBit vorgeben.
z.B. so:
Code:
I2CTWI_initMaster(50); // 50kBit
I2CTWI_initMaster(100); // 100kBit
I2CTWI_initMaster(220); // 220kBit
I2CTWI_initMaster(400); // 400kBit - für RP6-M32
Für 400 kHz müsste man doch auf 16 MHz aufrüsten, oder übersehe ich da etwas?
Das gilt nur für den Master Modus und auch nur für den Controller auf dem Mainboard. Für den Slave Modus ist das irrelevant.
Im Master Modus kann das TWI Modul nach Atmel Spezifikation so bis etwa 220 kBit betrieben werden. Im Datenblatt steht, dass es bei TWBR Werten kleiner 10 nicht ganz korrekte Ausgabewerte für die letzten Bits geben *könnte* - nicht muss.
Im Slave Modus sind die 400kBit für das TWI Modul natürlich kein Problem.
Das RP6 CONTROL M32 wird mit den maximalen 16MHz getaktet und kann daher auch gemäß der Atmel Spezifikation mit 400kBit/s senden.
Jeder andere ATMEGA Controller den man mit > 14.4MHz laufen lässt und auf den Bot draufbaut kann das natürlich ebenfalls.
Wenn man die 400kBit also *wirklich* braucht, kann man immer beliebig viele schneller getaktete Controller hinzufügen - sei es mit dem RP6-M32 Modul oder selbst zusammengelötet auf Erweiterungsmodulen.
------------------------------------------------------------------------------------
Wie ich schon oft erwähnt habe, ist der Hauptgrund den MEGA32 auf dem Mainboard mit 8MHz laufen zu lassen der Energiebedarf!
Die gesamte Elektronik des RP6 benötigt nur etwa 18mA wenn die Sensorik abgeschaltet ist, mit eingeschalteter Sensorik etwa 28mA.
(ACS, Drehgeber, Stromsensoren und die PowerON LED sind die Sachen die man an und abschalten kann. )
Da nimmt man das im Master Modus *etwas* langsamere TWI Modul gerne in Kauf! Wobei 220kBit/s auch schon sehr schnell für die typischen I2C Aufgaben sind.
MfG,
SlyD
Lesezeichen