mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Einstellungen


Autor: Elbegucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen
ich habe mal eine Frage bezüglich den I2C Einstellung.
In der I2C Routine von Peter Fleury finden sich folgende Einstellung:

F_CPU = 4MHz;
SCL_CLOCK = 250kHz;
TWSR = 0;  => TWPS = 0  => prescaler = 1
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;  // must be > 10 for stable operation

TWBR = Value of the TWI Bit Rate Register
TWPS = Value of the prescaler bits in the TWI Status Register

Meine Frage lautet muss das TWBR Register wirklich größer 10 sein?
Oder ist dies nur auf sein Beispiel bezogen.


Aus dem Datenblatt des ATMEGA32 habe ich folgendes entnommen:
a) Die CPU Clock muss 16-mal größer sein als die SCL Frequenz.
b) SCL_CLOCK=(F_CPU/(16+(2*TWBR)*4^TWPS))

Weiterhin habe ich ein I2C EEPROM das max. mit SCL=1000kHz arbeiten 
kann.

Wenn nun a) gilt und mein Systemtakt 11,059MHz beträgt, dann
darf die SCL_CLOCK max. 11,059MHz/16=691,18kHz betragen.

Angenommen ich würde jetzt SCL=450kHz und einen Vorteiler von 1 
(TWPS=0)wählen.
Dann folgt aus b)

TWBR=((F_CPU/SCL_CLOCK)-16)/(2*4) = ((11,059M/450k)-16)/8= 1

Geht das?

Autor: Elbegucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??

Autor: Elbegucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn keiner Ahnung davon?

Autor: Der Faule (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weiterhin habe ich ein I2C EEPROM das max. mit SCL=1000kHz arbeiten
kann....

Wow das will ich auch SCL mit einem GHz

Autor: Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
1000kHz = 1MHz !!!
...nicht 1GHz (das wären 1000MHz = 1.000.000kHz)

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an  Der Faule:   1000K = 1M nicht 1G

an  Elbegucker: ja keine Ahnung! Was hindert dich eigentlich den Spaß 
selber zu testen ?

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> TWBR should be 10 or higher if the TWI operates in Master mode. If TWBR
>> is lower than 10, the Master may produce an incorrect output on SDA and
>> SCL for the reminder of the byte.

Aus der Appnote "AVR315: Using the TWI module as I2C master" von Atmel, 
ich bin mir nicht ganz sicher, wie genau das in den Datenblättern steht.

hth. Jörg

Autor: Elbegucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.

Schade, dann kann ich das Ganze ja doch nicht mit einer so hohen 
Frequenz betreiben :-(. Wäre schon lustig gewesen es bis an die 1000kHz 
Grenze auszureizen.

Naja, habe sowieso noch Probleme mit dem I2C EEPROM. Vereinzelt werden 
Buchstaben unterschlagen oder andere doppelt geschrieben.

Aber danke nochmal für die Info.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.