www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C: verschiedene Geschwindigkeit


Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Dieter Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir klappt es, den PCF8574 mit 100kHz und das am gleichen Bus 
hängendende LCD mit 400khz zu betreiben.

Zum Glück kommt sich da nix ins Gehege, sonst wär das Display 
schnarchlangsam.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Detlev T. schrieb:
> Das Normalmode-IC (es geht hier um einen PCF8574)
> ignoriert nicht einfach einen zu schnellen Takt?
Was soll es denn machen? Wenn es keine gültige Adresse bekommt sollte es 
sich auch nicht angesprochen fühlen.

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

denkbar wäre folgendes:
a) Das IC akzeptiert jeden x-ten Takt doch und interpretiert 
irgendwelchen Murks
b) Wie ich gelesen habe, ziehen manche ICs SCL in so einem Fall auf low, 
um den Master zu bremsen. (Nach der Antwort von Dieter gehört das 
PCF8574 offenbar aber nicht dazu)

Gruß, DetlevT

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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/UM...) 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

Autor: stepp64 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt auch den kompatiblen PCA8574 welcher 400kHz kann. Allerdings 
scheint der deutlich schwieriger beschaffbar zu sein.

Autor: Martin J. (bluematrix) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: I2C (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs jetzt noch nie ausprobiert, aber wäre ein Taktteiler nicht eine 
Idee. Also einfach aus 2 FFs den Takt durch 4 teilen.

Autor: Senf-Dazu-Geber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin mir nicht sicher aber der PCA9534 sieht pinkompatibel aus und 
der kann 400kHz.

Gruss

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nimm noch den PCA9554, den gibt's auch bei Reichelt. Der hat in einer 
meiner Schaltungen auch den PCF8574 ersetzt :)

Autor: Jörg S. (joerg-s)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gibt da auch schöne Übersichten von NXP...

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Gastino G. (gastino)
Datum:

Bewertung
0 lesenswert
nicht 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...)?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Detlev T. schrieb:

> diesen Baustein auszuwählen. Ursprünglich wollte ich den MCP23008
> nehmen. Der hätte mir auch sonst besser gefallen,

Gibts bei TME (verfügbar) und versandkostensparend auch bei modtronix 
(leider grad nicht verfügbar).

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht 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

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.