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: