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
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.
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.
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
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
Es gibt auch den kompatiblen PCA8574 welcher 400kHz kann. Allerdings scheint der deutlich schwieriger beschaffbar zu sein.
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
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
Ich habs jetzt noch nie ausprobiert, aber wäre ein Taktteiler nicht eine Idee. Also einfach aus 2 FFs den Takt durch 4 teilen.
Nimm noch den PCA9554, den gibt's auch bei Reichelt. Der hat in einer meiner Schaltungen auch den PCF8574 ersetzt :)
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
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...)?
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).
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.