Forum: Mikrocontroller und Digitale Elektronik Mega328p - maximale I2C Geschwindigkeit?


von Rainer U. (r-u)


Lesenswert?

Liebe alle, ich habe gerade ein Verständnisproblem:

Beim ATMega328P steht im entsprechenden Abschnitt 22.1 "up to 400kHz 
Data Transfer Speed"

Weiter unten unter 22.5.2 steht eine Formel, wo ich auf 1MHz SCL-Takt 
komme, wenn ich ihm mit 16MHz laufen lasse, des Prescaler auf 1 und das 
Bit rate register auf 0 stelle - was stimmt nun? Hab ich mich 
verrechnet?

http://www.atmel.com/images/atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168pa-328-328p_datasheet_complete.pdf

von spess53 (Gast)


Lesenswert?

Hi

>Weiter unten unter 22.5.2 steht eine Formel, wo ich auf 1MHz SCL-Takt
>komme, wenn ich ihm mit 16MHz laufen lasse, des Prescaler auf 1 und das
>Bit rate register auf 0 stelle - was stimmt nun? Hab ich mich
>verrechnet?

Schon mal S.308 '29.7 Two-wire Serial Interface Characteristics' im 
Datenblatt gelesen?

MfG Spess

von Clemens L. (c_l)


Lesenswert?

Es wäre möglich, an den Prozessor-Pins Signale mit einer höheren 
Frequenz auszugeben, aber das bedeutet nicht, dass der I²C-Bus dann noch 
funktionieren würde.

Die I²C-Spezifikation verlangt für Fast-mode Plus einen Mindeststrom von 
20 ms, was der ATmega nicht mit 0,4 V Spannungsabfall schafft.

von Rainer U. (r-u)


Lesenswert?

spess53 schrieb:
> Schon mal S.308 '29.7 Two-wire Serial Interface Characteristics' im
> Datenblatt gelesen?

Jetzt ja - da steht "meets or exceeds these requirements" - also würde 
ich schließen - er kann auch schneller.

Clemens L. schrieb:
> Die I²C-Spezifikation verlangt für Fast-mode Plus einen Mindeststrom von
> 20 ms, was der ATmega nicht mit 0,4 V Spannungsabfall schafft.

? was meinst Du genau ?

von Peter D. (peda)


Lesenswert?

Für höhere Frequenzen hat sich SPI durchgesetzt.
Z.B. der S25FS128SAGMFI100 (16MB Flash) kann bis 133MHz.

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt ja - da steht "meets or exceeds these requirements" - also würde
>ich schließen - er kann auch schneller.

Dann addiere mal tLOW und tHIGH. Das macht 1,9µs oder 0,53MHz.

TWI hat bei Atmel 'Slew-rate Limited Output Drivers'. Das begrenzt deine 
maximale Gschindigkeit.

MfG Spess

von Rainer U. (r-u)


Lesenswert?

spess53 schrieb:
> Dann addiere mal tLOW und tHIGH. Das macht 1,9µs oder 0,53MHz.

Ah, jetzt, ja!

Das war das fehlende Puzzleteil (zumindest hab ich es erst jetzt 
verstanden :-)

Danke an alle.

von Clemens L. (c_l)


Angehängte Dateien:

Lesenswert?

Rainer U. schrieb:
> Clemens L. schrieb:
>> Die I²C-Spezifikation verlangt für Fast-mode Plus einen Mindeststrom von
>> 20 ms, was der ATmega nicht mit 0,4 V Spannungsabfall schafft.
>
> ? was meinst Du genau ?

Wenn ein Pin des ATmega328P ein 0-Signal ausgibt und mit 20 mA belastet 
wird, dann hat er nicht mehr 0 V, sondern typischerweise ca. 0,5 V, im 
schlechtesten Fall noch mehr.

von spess53 (Gast)


Lesenswert?

HI

>Wenn ein Pin des ATmega328P ein 0-Signal ausgibt und mit 20 mA belastet
>wird, dann hat er nicht mehr 0 V, sondern typischerweise ca. 0,5 V, im
>schlechtesten Fall noch mehr.

Na und? L wir bis maximal 0,3*VCC erkannt.

MfG Spess

von Clemens L. (c_l)


Lesenswert?

spess53 schrieb:
> L wir bis maximal 0,3*VCC erkannt.

Wenn der ATmega328P mit sich selbst spricht; dann braucht man auch kein 
I²C. Die I²C-Spezifikation sagt 0,4 V.

von spess53 (Gast)


Lesenswert?

Hi

>Die I²C-Spezifikation sagt 0,4 V.

Nö. In der I2C-Spezifikation

http://www.nxp.com/documents/user_manual/UM10204.pdf

steht auf S.47 0,3*VCC.

MfG Spess

von c-hater (Gast)


Lesenswert?

spess53 schrieb:

> Dann addiere mal tLOW und tHIGH. Das macht 1,9µs oder 0,53MHz.

Das sind die Grenzen, bei denen es auch im worst case für alle sonstigen 
Randbedingungen (insbesondere kapazitive Buslast) sicher noch 
funktioniert.

Genauso interessant sind aber tr und tof. Zusammen 550ns oder 1,81MHz. 
DAS stellt die Grenze dar, oberhalb der es sicher NICHT mehr 
funktioniert.

Zwischen diesen beiden Eckwerten existiert ein recht breiter 
Graubereich, der sich nutzen lässt, wenn die tatsächlichen 
Randbedingungen des Busses deutlich besser als der spezifizierte worst 
case sind.

> TWI hat bei Atmel 'Slew-rate Limited Output Drivers'. Das begrenzt deine
> maximale Gschindigkeit.

Genau. Die stecken aber eben nicht in tLow und tHigh, sondern in tr und 
tof.

von Clemens L. (c_l)


Lesenswert?

spess53 schrieb:
>>Die I²C-Spezifikation sagt 0,4 V.
>
> Nö. In der I2C-Spezifikation steht auf S.47 0,3*VCC.

Es geht hier um des Ausgang des ATmega. VOL1max ist 0,4 V.

von Bernd K. (prof7bit)


Lesenswert?

spess53 schrieb:
>>Die I²C-Spezifikation sagt 0,4 V.
>
> Nö. In der I2C-Spezifikation
>
> http://www.nxp.com/documents/user_manual/UM10204.pdf
>
> steht auf S.47 0,3*VCC.

Viel Spaß in der rauen Praxis mit einem I2C-Bus bei dem einzelne 
Teilnehmer mehr als 1 Volt bei low stehen lassen.

von spess53 (Gast)


Lesenswert?

Hi

>Viel Spaß in der rauen Praxis mit einem I2C-Bus bei dem einzelne
>Teilnehmer mehr als 1 Volt bei low stehen lassen.

Hast du kongrete Beispiele? Denn bei VCC=5v macht das immerhin 1,5V.

MfG Spess

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
Noch kein Account? Hier anmelden.