I2C: verschiedene Geschwindigkeit

OP #1738388
Lesenswert?

Hallo Leute,

bestätigt doch bitte meine Befürchtung: Wenn ich ICs mit Normalmode 
(100kHz) und Fastmode (400kHz) an denselben I2C-Bus hänge, muss ich auch 
die Fastmode-ICs im Normalmode ansprechen, um möglichem Ärger aus dem 
Weg zu gehen, oder? Das Normalmode-IC (es geht hier um einen PCF8574) 
ignoriert nicht einfach einen zu schnellen Takt?

Vielen Dank.

Gruß, DetlevT
OP #1738808
Lesenswert?

Hallo Leute,

vielleicht interessiert es eines Tages noch jemanden: Ich habe jetzt 
doch die Specs von Philips (bzw. NXP) herausgesucht 
(http://www.nxp.com/acrobat_download/usermanuals/UM10204_3.pdf) und 
durchgeguckt. Es ist doch so, wie ich befürchtet habe: "As Standard-mode 
devices, however, are not upward compatible; they should not be 
incorporated in a Fast-mode I2C-bus system as they cannot follow the 
higher transfer rate and unpredictable states would occur."

Da ich saubere Implementationen "by the books" bevorzuge, werde ich also 
meine I2C-Routinen so umschreiben, dass der langsamste am Bus die 
Geschwindigkeit für alle bestimmt.

Danke für eure Mühe.

Gruß, DetlevT
Persönliche Seite #1738872
Lesenswert?

gemessene I2C Takt Erfahrungen mit den atmegas:
16,000MHz - schafft sauber bis zu 700Khz
18,432MHz - schafft sauber bis zu 950Khz

Streckenlänge war 50cm Spiralkabel, verbaut in einem Rennwagen als 
verbindung zwischen Lenkraddiplay und Amaturenbrett...
Probleme gab es keine...
trotz schlechtesten Bedingungen bei fahrten im Regen, Schnee oder 
glühender Sonne bei gefühlten 100C° ;-) auf der Rennstrecke.

gruße Martin
OP #1738885
Lesenswert?

Hallo step64,

die einfache Beschaffbarkeit (Reichelt) war für mich gerade der Grund, 
diesen Baustein auszuwählen. Ursprünglich wollte ich den MCP23008 
nehmen. Der hätte mir auch sonst besser gefallen, weil ich für den 
PCF8574 noch zusätzliche Pull-Ups brauche (der soll einen ULN2803 
steuern). Aber RS, Fanell & Co sind leider nicht meine Stammdealer.

Gruß, DetlevT
OP #1739258
Lesenswert?

Hallo Jörg,

der Baustein wäre prima, leider gibt es den bei Reichelt nicht als DIP, 
nur SOIC. Das möchte ich nicht.

Jetzt kommen bestimmt wieder Statements wie "SOIC löten ist doch kein 
Problem". Aber die Zielgruppe des Projektes sind Einsteiger in die 
Mikrocontrollerwelt und da gibt es halt eine gewisse Hemmschwelle.

Ziel ist eine Library (eine Datei mit .a) mit häufig genutzten 
Hardware-Komponenten, die für Bastler leicht verfügbar sind. Ähnlich wie 
bei BASCOM sollen fertige Module den Weg zum schnellen Erfolgserlebnis 
ebnen. Erst einmal sehen, dass es geht und dann die Quelltexte ansehen 
und lernen, wie es geht. Ich weiß noch, wie schwierig damals mein 
Einstieg war, mit den vielen Bits in den vielen Control-Registern, von 
denen immer eins falsch gesetzt war - und wusste nicht welches.

Ich habe die Quelltexte inzwischen angepasst. Jedes Modul, das den 
I2C-Bus nutzt, meldet jetzt die Geschwindigkeit an und der Bus wird nur 
gebremst, wenn es nötig ist.

Hinzu kommt, dass die RTC DS1307 seit heute wieder bei Reichelt 
verfügbar ist, die ich mir ausgeguckt habe. Auch dieser kann leider nur 
I2C-Normal-Mode, das Problem bleibt also. Vielleicht wisst ihr ja dafür 
auch einen Ersatz. Die Anforderungen sind: 5V-Betrieb, I2C-Bus, 
Anschluss für Backup-Batterie, als DIP bei Basteldealern verfügbar. Eine 
echte Kalenderfunktion ist nicht nötig, ein einfacher Zähler ala DS1672 
tut es auch.

Gruß, DetlevT
#1739284
Lesenswert?

Detlev T. schrieb:
> Hinzu kommt, dass die RTC DS1307 seit heute wieder bei Reichelt
> verfügbar ist, die ich mir ausgeguckt habe. Auch dieser kann leider nur
> I2C-Normal-Mode, das Problem bleibt also.

Der funktioniert auch mit 400 kHz bei mir fehlerfrei (warum auch immer). 
Habe es eine Weile lang (einige Minuten) getestet. Wie betriebssicher 
das Ganze auf Dauer ist, weiß ich aber nicht und betreibe den 
normalerweise auch nur im 100 kHz-Modus. Ich bevorzuge wie Du saubere 
Implementationen und kein "Geht doch so schon irgendwie"-Gebastel.

Da stellt sich mir eine Frage am Rande: Ist bei Chips ohne Angabe zur 
I2C-Frequenz im Datenblatt einfach anzunehmen, dass die nur für den 
Normalmode geeignet sind (ich finde im Datenblatt des SAA1064 keinerlei 
Hinweis...)?
OP #1739310
Lesenswert?

Gastino G. schrieb:
> Da stellt sich mir eine Frage am Rande: Ist bei Chips ohne Angabe zur
> I2C-Frequenz im Datenblatt einfach anzunehmen, dass die nur für den
> Normalmode geeignet sind (ich finde im Datenblatt des SAA1064 keinerlei
> Hinweis...)?

Davon würde ich ausgehen, ohne es wirklich zu wissen. Der Baustein ist 
ja schon etwas älter, gab es da Fastmode überhaupt schon?

Gruß, DetlevT

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren