Re: pcf8574 Kategorie: I²C-Bus (von Migi, http://cc2-Haussteuerung.de - 12.03.2008 9:34) | ||
Als Antwort auf Re: pcf8574 von Ralf Metzner - 12.03.2008 8:52 | ||
| ||
Hallo Ralf, du hast einen absoluten Mini-Bus. Schmei� die Leitungstreiber raus, setze die Pull-Up's. Bau keinesfalls die die 330Ohm Reihenwiderstände ein. Die werden die Qualität eher verschlechtern. Bei einem so winzigen Bus würde ich Pull-Up's mit 2,2kOhm als Kompromis empfehlen. Nach I2C-Spezifikation soll eigentlich der Pull-Up den Busverhältinissen angepasst werden. Anzahl der Teilnehmer und Leitungslänge sind hier die Faktoren. Hier habe ich auch ein paar Worte dazu geschrieben: http://www.cc2-haussteuerung.de/Technik/Technische%20Infos.pdf Auf den Einsatz mit dem Y2-Kondensator würde ich auf jeden Fall verzichten. Der macht wieder die Buskapazität grö�er und somit die Qualität schlechter. Geschirmte Leitung ist immer gut. Aber mach erst mal das von mir beschriebene und dann kannst du schirmen. Ciao MiGi > Hallo MiGi, > ich habe gestern noch einen Leistungstreiber an das längste Ende des I2C-Busses gesteckt, dadurch > sind die Störungen seltener geworden. Ich habe jetzt nur noch selten einen Störimpuls, manchmal ist > 5-10 Minuten Ruhe. Ich werde heute noch den Schirm der I2C-Leitung mit einem Y2-Kondensator > (Tipp von Martin/nitraM:-) an GND anschliessen. Das mit den Pull-ups werde ich auch testen, berichte > dann morgen darüber. In "MSR mit cc2" steht man kann auch noch je einen 330 Ohm Widerstand in > Reihe zu SCL und SDA legen, um kurze Störimpulse zu dämpfen. > > Mein Bus sieht so aus > > c-control----->Leitungstreiber--(30cm)-->pcf8574--(30cm)--->Tastaturmodul(8574)--(30cm) > --->pcf8574--(30cm)--->DS1631---(100cm)---->Leitungstreiber-----DS1631 > > Also c-control, direkt angeschlossener Leitungstreiber, dann 30cm Kabel, dann ein Conrad pcf8574 > (19 88 48), wieder 30cm Kabel und dann die Tastatur von Conrad(19 83 56) mit zusätzlich angelötetem > Interupt usw. > Die DS1631 sind Thermometer von Conrad (19 82 98) > Laut Conrad kann man nicht genug Leitungstreiber einsetzen... > > Originatton Conrad: > > I²C-Leitungstreiber-Modul > > Dieses Modul ist ein aktives Pull-Up-Modul und sorgt bei langen Leitungslängen mit hohen > kapazitiven Lasten für steile Signalflanken auf den Busleitungen. Mit dem Leitungstreiber-Modul > wird die Anstiegszeit unter 1 µs, bei 200 pF Bus Kapazität gehalten. Bei grö�eren Bus-Kapazitäten > (oder gro�en Leitungslängen) können einfach mehrere Module parallel betrieben werden. Da alle > Anschlüsse (auch TXD/RXD) parallel durchverdrahtet sind, kann das Modul ebenso als > �bergangsadapter vom Schnittstellen- Steckverbinder auf Anschlussklemmen (1 mm²) benutzt werden. > > Ich probiere weiter und berichte...... > > Gru� > Ralf > > > > Hallo Ralf, > > > > den Leitungstreiber kannte ich bisher nicht. Ich habe ihn mir angesehen und verstehe die Anleitung so, > > dass der Leitungstreiber den Pull-Up-Widerstand ersetzt. > > Das hei�t, der Leitungstreiber ist sozusagen ein dynamischer Widerstand, der seinen Wert den > > Anforderungen entsprechend verändert. Hast du ein ausgedehntes I2C-Netz mit vielen Teilnehmern, > > mu� der Pull-Up-Widerstand einen kleinen Wert haben, damit die Signale die erforderliche Qualität > > aufweisen. Die Leitungskapazitäten und die Eingangskapazität eines Teilnehmers sorgt nämlich > > für ein verschleifen der Signalflanken. Diesem Effekt versucht man nun mit dem Modul entgegen zu > > wirken. > > Allerdings behaupte ich, dass deine Probleme durch genau dieses Modul verursacht werden. > > Wenn der sogenannte Leitungstreiber, der eigentlich gar keiner ist, den Pull-Up-Widerstand sehr klein > > macht, sind die Busteilnehmer nicht mehr in der Lage den daraus resultierenden Strom gegen Masse > > flie�en zu lassen um die Informationen zu übertragen. > > Die bei dir auftretenden Effekte sind auch logisch. Durch intensiven Signalaustausch werden die > > Bausteine überlastet, erwärmen sich und sind dann nicht mehr in der Lage fehlerfrei die Daten zu übertragen. > > > > Wenn du mich fragst, ich würde das sogenannte Treibermodul erst einmal ausbauen, dieses durch > > 1KOhm-Widerstände (das ist die Grenze nach unten) von SCA und SCL jeweils auf 5V ersetzen. > > Dann schaust du, ob es überhaupt funktioniert, und wenn Ja, ob die Qualität besser geworden ist. > > Wenn man lange Leitungslängen zu überbrücken hat ist der richtige Weg, an jedem Leitungsende ein > > Leitungstreiber zu platzieren. Der Sender und Empfänger ist dann jeweils am "Lokalbus" angeschlossen, > > die Leitung selbst ist der "Fernbus". > > Fernbus: Pull-Up ist ca. 330 Ohm > > Lokalbus: Pull-Up ist > 1kOhm > > > > So, nun ausprobieren und Status melden. > > > > Viel Erfolg > > MiGi > > > > > > > Hallo, > > > ich habe das kleine Treibermodul von Conrad 19 82 80, sonst keine Pull-ups (???), > > > müssen da welche rein? > > > > > > Es hat sich mittlerweile schon einiges ergeben, Martin hat mir hier intensiv weitergeholfen. > > > Ich habe: > > > > > > - Am Conrad Tastaturmodul die fehlende Interuptleitung angelötet. und bis zur c-control geführt. > > > > > > - Software so geändert, das die Module definiert und in der richtigen Reihenfolge initialisiert und > > > angesprochen werden. > > > > > > - I2C-Verteiler von Conrad (19 11 93) rausgeschmissen, neue Busleitung gelötet (ca.2 Meter). > > > (Werde ich allerdings nochmal machen, und die Adernpaare so nutzen, das immer je eine > > > GND-Leitung mit SCL, SDA, Interupt und 5V in einem Paar liegt, was im Moment nicht der Fall ist) > > > > > > Jetzt läuft die Sache soweit ganz gut, bis auf gelegentliche Störungen auf dem I2C-Bus, die sich > > > folgendermassen äu�ern: > > > > > > Die Thermometer zeigen kurz falsche Werte an (teilweise negativ), belegte Eingänge auf dem > > > PCF-Portexpander "verschwinden" kurz. Die Störungen dauern nur einen Impuls und treten im > > > Abstand von 10sec bis 30sec auf. Im Schaltschrank ist ein Frequenzumrichter, der natürlich > > > schon ordentlich Störungen verursachen kann. > > > > > > Ich werde noch versuchen: > > > > > > - Pull-up-Widerstände an die Conrad-Tastatur anlöten. Verwende externe Taster, die mit relativ > > > langen(30 cm) Leitungen an das Modul gelötet sind. > > > > > > - Unter Umständen Tastaturmodul ersetzen durch PCF-Portexpander (Acht Eingänge für 8 Tasten). > > > > > > > > > Gru� > > > Ralf > > > > > > > > > > > > > > > > > > > > > > > > > Hallo Ralf, > > > > > > > > welche Werte haben die Pull-Up-Widerstände an SDA und SCL vom I2C-Bus? > > > > > > > > Gru� > > > > MiGi > > > > > > > > > > > > > Hallo, > > > > > erst mal ein gro�es Lob an dieses Forum und diese Seite. Ich konnte alle Informationen die ich zum > > > > > programmieren brauchte hier finden. Jetzt habe ich aber ein Problem und komme nicht dahinter. > > > > > Ich habe am I2C-Bus 2 Thermometer, 1 PCF-Keyboard und 2 pcf-portexpander (nicht die A-Version, > > > > > einen als Eingänge und einen als Ausgänge). Es hat zuerst alles funktioniert wie gewünscht, jedoch > > > > > gab es dann immer häufiger Fehlmeldungen der Eingangskarte, die Eingänge als gesetzt übergab, > > > > > obwohl sie definitiv nicht belegt waren. mit entfernen des als Ausgang verwendeten Portexpanders > > > > > verschwanden die Probleme zunächst. Nach mehreren Versuchen bekomme ich jetzt die Portexpander > > > > > nur noch sporadisch zum laufen, teilweise aber erst nach längerem Ausschalten der C-Control. Die > > > > > PCF-Tastatur funktioniert auch nicht mehr. Das alles, obwohl ich alles in den Zustand zurückversetzt > > > > > habe in dem alles funktioniert hat. Was immer geht sind die Thermometer (DS1631). Als Adressen habe > > > > > ich 4 für die Tastatur, 6 für die Eingänge und 7 für die Ausgänge. Treibermodul für den I2C-Bus ist auch > > > > > eingebaut. Wie werden die Portexpander richtig als Ein bzw. Ausgang initialisiert? Was genau bedeutet > > > > > pcf.on() bzw.pcf.off()? Die Eingänge sind einfache Schalter und die Ausgänge sollen einen Frequenzum- > > > > > richter steuern. Falls jemand eine Idee hat wo hier der Fehler liegen könnte bitte ich dringend um Hilfe. > > > > > > > > > > Vielen Dank. Meine Seite: http://cc2-Haussteuerung.de | ||
Antwort schreiben Antworten: Re: pcf8574 (von nitraM - 12.03.2008 11:58) Re: pcf8574 (von Migi - 12.03.2008 19:05) Re: pcf8574 (von nitraM - 12.03.2008 19:48) Re: pcf8574 (von Migi - 13.03.2008 10:20) Re: pcf8574 (von Ralf Metzner - 12.03.2008 10:37) Re: pcf8574 (von Migi - 12.03.2008 19:11) Re: pcf8574 (von Migi - 12.03.2008 19:11) Re: pcf8574 (von Ralf Metzner - 13.03.2008 8:11) Re: pcf8574 (von Ralf Metzner - 14.03.2008 10:39) |