Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Absturz bei langer Leitung? Kategorie: I²C-Bus (von André H. - 20.02.2005 14:17)
Als Antwort auf Absturz bei langer Leitung? von hpercel - 13.02.2005 7:28
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo hpercel,

> Hallo Leute
> Kann es sein, dass sich bei einem zu langen I2C Bus die Station nach ca.20h aufhängt?

Nein, das passiert eigentlich nicht.

> Habe ich da ein �?berlastungproblem?

Wenn Du alles mit dem 5V-Ausgang der Unit versorgst, dann ja.
(Zumindest hast Du dann eine 45m Lange Antenne auf der 5V-Leitung)

> Ohne den 20m Strang habe ich keine Probleme.
>
> Folgende Situation ist bei mir "entstanden"
>
> Situation mit Absürzen:
>      +---- 10K ---- 5V
>      +------------------------------------+---------------------------+
>      |                                             |                                 |
>      |                                             |                                 |
>    ca.20m                                  ca.5m                        ca.15m
>      |                                             |                                  |        
>      |                                             +---- 10K ---- 5V          +---- 10K ---- 5V
>      |                                             +---- 330 ---- DS1631   +---- 330 ---- DS1631
>      +---- 10K ---- 5V
>      |
>    330      
>      |
>    ca.5m
>      |
>      |
>      +---- DS1631
>
> So soll es einmal ausschauen:
>
>      +---- 10K ---- 5V
>      +------------------------------------+---------------------------+
>      |                                             |                                 |
>      |                                             |                                 |
>    ca.20m                                  ca.5m                        ca.15m
>      |                                             |                                  |        
>      |                                             +---- 10K ---- 5V          +---- 10K ---- 5V
>      |                                             +---- 330 ---- DS1631   +---- 330 ---- DS1631
>      +---- 10K ---- 5V
>      +---- 330 ---- DS1621
>      +---- 330 ---- DS1621
>      |
>    330      
>      |
>    ca.5m
>      |
>      |
>      +---- DS1631
>    

Da�? es hier zu Problemen kommt, ist kein Wunder.
Beim I²C-Bus gilt immer eine Streng busfäörmige Verkabelung.
Längere Stichleitungen sind daher problematisch.
Auch solltest Du auf jeden Fall I²C-Bus-Puffer oder I²C-Bus-Extender bei solchen
Längen verwenden.
Auch die ganzen Pull-Ups bei Dir sind mehr als problematisch.
Denn die I/Os der CC2 dürfen mit max. 5mA belastet werden. Das gilt auch für die Ports
P3.8 (SCL) und P3.9(SDA)
Die CC2 hat intern bereits 4,7k Pull-Ups am Bus. (Die ganz alten CC2 noch 10k)
Dann hast Du noch 4x10k verteilt.
Das macht einen Gesamt-Pull-Up von überschlagen ca. 1,6k.
Hier flie�?en allein schon 3,1mA.
Dazu kommen noch die Ladungen(Leitungen & ICs), die abgebaut werden müssen.
Die 5mA werden hier leicht gesprengt.

Auch die 5m zwischen den 330Ohm-Widerständen und dem Sensor sind nicht optimal.
die 330Ohm-Widerstände sollten sich unmittelbar vor den I²C-Bus-Slaves befinden.

Damit Dein Vorhaben reibungslos funzt, würde ich hier I²C-Bus-Puffer einsetzen.
An der Station zwei Stück.
An den ersten kommen die beiden Stränge mit 5m und 15m.
Vor den beiden DS1631 sind nicht unbedingt I²C-Bus-Puffer notwendig.
Die Pull-Ups von 10k an jedem dieser Enden würde ich auf 6,8k herabsetzen.
Wenn es nicht geht, dann werden an den Slaves nochmals I²C-Bus-Puffer benötigt.

An den zweiten Puffer kommen die 20m. Nach den 20m mu�? nochmals ein I²C-Bus-Puffer
gesetzt werden. Die 20m werden gepuffertert benutzt.
D.h. Der gesamt Pull-Up auf diesen 20m sollte ca. 1k sein.
Hinter diesen Puffer kannst Du Deine 3 geplanten Slaves hinsetzen.
Die 5m zum letzten Sensor sollten dann auch kein Problem sein.
Jedoch mu�?t Du unbedingt die 330Ohm zum Sensor setzen und nicht mitten
in der Leitung.


Und zum "Absturz" selbst:
Ich glaube nicht, da�? sich die CC2 hier aufhängt. Höchstens das Program selbst,
wenn mit undefinierte Werten auf Grund von Störungen am Bus weitergearbeitet wird.
Um das zu testen, mu�?t Du einfach einen seperaten Thread laufen lassen, der z.B.
einen I/O-Port ständig umschaltet.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten: