PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie weit kann ich den Takt absenken(ATMEGA8 als I2C slave)?



moin
13.08.2007, 19:41
Hallo
Wie weit kann ich bei einem Atmega 8 oder Atmega168 den Takt absenken, damit ich ihn noch als I2C slave (100kHz) betreiben kann, wenn das Hauptprogramm nicht viel Rechenzeit verbraucht? (programmiert in Bascom)
Kann ich den M8 oder M168 dann auch mit dem internen Oszillator betreiben?
Wie verändert sich die Fragestellung wenn ich statt eines Betriebs als I2C Slave nur über Uart (9600Baud) meine Informationen weitergeben möchte?

Der Hauptgrund für diese Anfrage sind Überlegungen um möglichst viel Strom zu sparen.
Euer moin

linux_80
13.08.2007, 20:56
Hallo,

bei diesen beiden Übertragungsarten heisst es, dass der AVR 16 mal so schnell getaktet werden soll, wie die Daten ankommen. (siehe TWI)

I2C ist ja synchron, da muss der Takt auch nicht unbedingt genau sein, dafür aber bei UART, wenn aber zwei AVR mit selben Takt und Baud per UART kommunizieren ist es auch wieder egal. (siehe Tabellen am Ende des USART-Kapitels jedes AVR)

UART-Daten zu verarbeiten ist noch etwas einfacher, bei I2C muss man etwas mehr Software anlegen um ein Byte reinzubekommen. (siehe https://www.roboternetz.de/wissen/index.php/TWI_Praxis)

Mit 2MHz intern sollte das eigentlich klappen.