Forum: Mikrocontroller und Digitale Elektronik I²C Bus System mit ADUM1250 keine Verbindung


von Thiago (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mindestens 2 Platinen:
Auf einer sitzt ein ATMEGA328P-AU als Master eines I²C Busses, an den 
bis zu 10 Slaves hängen sollen. (P1)
http://www.farnell.com/datasheets/1693866.pdf
Auf einer (vielen) Anderen ein ATTINY2313 als Slave. (P2)
http://www.farnell.com/datasheets/1517539.pdf


Dazwischen hängen eben 150mm Flachkabel(Pin-Belegung bereits geprüft) 
und ein Adum1250 sitzt auf der P2 zur galvanischen Trennung:
http://www.farnell.com/datasheets/1814362.pdf

Die Schaltung war zu Beginn wie im Schaltplan (Bild als Anhang) 
aufgebaut. P1 über Flachbandkabel verbunden mit einer P2 Doch schnell 
wurden Fehler bemerkbar, nachdem beim Initialtest keine Geräte gefunden 
wurden.

Im ersten Schritt wurde der Kondensator entfernt, und zusätzlich ein 
4k99 Pullup Widerstand am SDA2 Eingang(schwarz eingezeichnet) eingebaut.
-> Es geht weiterhin nichts

Da der Adum1251 die Clock nur von Master nach Slave überträgt, ich alle 
Möglichkeiten ausschließen wollte (Hätte ja den Falschen erwischen 
können), und der Master MC aber am SCL2 hängt wurde im zweiten Schritt 
(rot markiert) SCL zu testzwecken überbrückt.
-> Es geht immer noch nichts

Bei zusätzlichler Überbrückung von SCA (grün markiert):
-> Es geht logischerweise, die MC funktionieren also, und auch die 
Programmierung stimmt.



Hat hier jemand Erfahrungen mit dieser Art von galvanischer Trennung, 
und kann mir bei meinem Problem weiterhelfen?

Ich weiß nicht, was ich sonst falsch gemacht haben könnte.
Der Chip ist richtig eingebaut, Pullups sind nun 3/4 vorhanden, es gibt 
kein Problem mit der Verkabelung.



MfG
Thiago

: Verschoben durch Moderator
von Thiago (Gast)


Lesenswert?

Edit:

Die Jumper sind zur Unterbrechung des Signals, wenn der ATTINY2313 
programmiert wird, da das auf die Pins geht, die I²C können (um das 
Signal noch vor dem ADUM1250 zu unterbrechen.

von Pete K. (pete77)


Lesenswert?

Vielleicht GND2 mit GND1 verbinden? Sorry, aber aus dem Bild werde ich 
nicht schlau.
Baue alles nach Datenblatt auf und achte darauf, dass die Massen 
verbunden sind, auch bei den angeschlossenen Geräten.

Pullups bei den uCs deaktivieren und die separaten pullups benutzen.

von Thiago (Gast)


Lesenswert?

Hallo,

ich habe versucht GND1 und GND2 zu verbinden aber es kam auch so leider 
kein Signal durch. Gleiches Ergebnis wenn man zusätzlich VCC verbindet - 
Wobei weder GND noch VCC verbunden werden sollen es handelt sich ja beim 
dem Chip um eine Galvanische Trennung von zwei Stromkreisen (also weder 
VCC noch GND verbunden).

Warum der ganze Aufwand ? -> Das ganze soll in weiter Zukunft von 
Schülern verwendet werden, die sind sicherlich nicht dumm nur da 
passiert es leicht mal das 12V auf eine 5V Leitung angeschlossen werden, 
das wiederrum hätte zur Folge, dass alle Mikrochips auf dem I2C Bus 
kaputt wären (wie oben beschrieben sind das dann einige) und um der 
Gefahr zu entgehen besitzt jede der Slave Platinen einen ADUM1250 für 
den I2C Bus und eine eigene 5V Stromversorgung die vom Master 
(Hauptplatine) kommt (am Master darf natürlich niemand etwas verändern, 
wird auch baulich verhindert werden).

PullUps habe ich deaktiviert und extern eingebaut 5k auf der Slave Seite 
und 4.7k auf der Master Seite - die I2C Leitungen sind richtig verlegt 
und auch sonst sehen ich keinen Fehler. Vielleicht kennt findet ja noch 
jemand von euch etwas ? Gibt es ein einfaches Verfahren zum Testen 
dieser Chips ?

Mfg,
Thiago

von Sven B. (sven-b)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mal den Teil mit einem Adum1250 aus einer meiner Schaltungen 
rauskopiert. Was mir auffällt ist, dass bei dir nur 3 Pullups sind.
Ansonsten seh ich in dem Schaltplan auch nicht wirklich durch. Der ist 
leider sehr unübersichtlicht.

Zum Testen könntest du probieren die Pins nacheinander auf Ground zu 
ziehen und zu gucken, ob der korrespendieren Pin dann auch low ist. I2C 
macht im Betrieb nichts anderes, deswegen sind auch die Pullups nötig.

von Cyblord -. (cyblord)


Lesenswert?

Das Schaltplansymbol ist schon völlig Banane angelegt. Der ADUM ist ein 
ISOLATOR. D.h. es macht Sinn das im Symbol auch darzustellen. Mit 2 
Seiten. Und nicht alle Signale nach Namen zusammenzufassen. Dann wird 
der Plan auch übersichtlich. So wie Sven das z.B. auch hat.

Wichtig beim ADUM1250 sind in der Tat die Pullups. Vor allem an den 
Bidirektionalen Ports. Da müssen beidseitig Pullups ran, sonst passiert 
da gar nichts.

Und bei SDA1 seh ich keinen PullUp im Plan.
Wobei der Plan auch total unübersichtlich gestaltet ist. Ein einziger 
Saustall. Bei mir wär das ne 4-5. Mit so nem Symbol vor allem. Wem 
willst du denn hier was beibringen? Dichl lässt man auf Schüler los? Au 
Backe.

: Bearbeitet durch User
von Thiago (Gast)


Lesenswert?

cyblord ---- schrieb:
> Das Schaltplansymbol ist schon völlig Banane angelegt. Der ADUM ist ein
> ISOLATOR. D.h. es macht Sinn das im Symbol auch darzustellen.

Das tut mir leid, ich bin selbst ein Schüler, und nicht allzu vertraut 
mit EAGLE, ich weiß zwar wie man das Symbol ändert (das, welches ich 
benutzt habe, war Standardmäßig so in eagle drin) jedoch bin ich mit 
keiner der üblichen Design-Normen von Schaltplänen vertraut.
Ich werde in Zukunft versuchen diese übersichtlicher zu gestalten.

Sven B. schrieb:
> Zum Testen könntest du probieren die Pins nacheinander auf Ground zu
> ziehen und zu gucken, ob der korrespendieren Pin dann auch low ist.

Schon gemacht, keine Ergebnisse erhalten. Egal, wo ich Ground anlege, es 
ändert sich nichts am entgegengesetzten Pin (+5V und Ground wurden 
logischerweise nicht getestet, sondern nur die 4 Pins für SCL und SDA)

Es sind auch schon 4 Pullups verbaut, und die 100nF Kondensatoren 
zwischen +5V und Ground waren schon von Beginn an vorhanden.

Im Grunde genommen sieht die Schaltung nun so aus, wie die, die du 
hochgeladen hast Sven, mit dem Unterschied, dass beide Seiten mit 5V 
arbeiten: http://www.mikrocontroller.net/attachment/239101/ADUM1250.PNG


Das Einzige, dass mir nun einfällt, ist dass nicht beide Seiten mit 5V 
betrieben werden können, das Datenblatt, welches im im Anfangspost 
verlinkt habe behauptet jedoch etwas anderes.

Natürlich kann das Ding auch hin sein -.-

LG Thiago

von Thiago (Gast)


Lesenswert?

Ok, also vielen Dank für die schnelle Hilfe.

Nun funktioniert es, der Master findet den Slave an der Adresse 0x28.
Es kann also endlich programmiert werden.

*Es war tatsächlich der Chip kaputt, hab einfach den Reservechip 
eingebaut*

Naja, all die Aufregung quasi umsonst ^^

Trotzdem vielen Dank für die Tipps, und Verbesserungsvorschläge.
Werde in Zukunft versuchen mich an Normen beim Schaltplan zu halten, war 
ja echt nicht allzu leserlich.

LG Thiago

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
Noch kein Account? Hier anmelden.