Hallo,
ich benutze in meinem aktuellen Projekt einen PCA9615 um zuverlässig
Daten von ca. 16 einzelnen Platinen auszutauschen.
Inspiriert wurde ich dabei von folgendem Artikel:
https://hackaday.com/2017/03/31/an-introduction-to-differential-i%C2%B2c/
Nun habe ich ein kleines Platinen Design erstellt und bestellt und alles
fleißig zusammengelötet.
Jetzt habe ich erstmal jede Platine einzeln getestet und an eine
Versorgungsspannung angeschlossen.
Bei den meisten ist mir auch nichts weiter aufgefallen.
Vereinzelt musste ich jedoch feststellen, dass der PCA9615 extrem heiß
wurde und ich gezwungen war die Versorgungsspannung auszuschalten, da
dieser wahrscheinlich sonst in Rauch aufgegangen wäre.
Statt 8mA normal zog dieser plötzlich 100mA.
Nun habe ich mir gedacht, dass ich vermutlich beim löten misst gebaut
habe und vielleicht eine ungewollte Brücke erzeugt habe.
Die Dinger sind ja auch verdammt klein.
Jedoch habe ich auch nach mehrfachen nachmessen der einzelnen Pins keine
ungewollten Verbindungen oder ungewöhnliche Widerstandswerte messen
können.
Jetzt überlege ich was dieses Verhalten auslösen könnte.
Folgende Unterschiede zu anderen Designs habe ich bei mir festgestellt:
-Ich nutze 5V statt 3.3V
-Ich habe den EN Pin direkt mit 5V verbunden
Keiner der beiden Unterschiede bietet mir auch nur den Ansatz einer
Erklärung.
Ich hoffe jemand hat eine Idee oder Hinweis auf was dieses Problem
zurückzuführen ist.
Wenn du keinen erklärbaren Kurzschluss hast, klingt das arg nach
Latchup. Vermutlich Anliegen von "belastbaren" 5V an einem der Eingänge
bevor die Stromversorgung des Chips vorhanden ist.
Es könnte natürlich auch ein undokumentierter Testmodus sein, der durch
das statische EN-Signal beim Powerup verursacht wird. Sowas ähnliches
hatte ich mal bei einem NXP-Smartcard-Treiber...
Michael schrieb:> Ich hoffe jemand hat eine Idee oder Hinweis auf was dieses Problem> zurückzuführen ist.EN darf frühestens 11ms nach Einschalten der Versorgungsspannung auf
High gehen - so sagt es zumindest das Datenblatt (Fig.6).
Eventuell muss man sich beim Betrieb des PCA9615 daran halten.
Klaus schrieb:> mach mal die Pullups größer. Nach I2C Spec darf der Strom pro Busleitung> max 3mA sein. Bei 5V bist du weit darunter.
Das wird allenfalls am anderen Ende von SCL/SDA ein Problem, weil 30mA
max beim PCA9615.
Klaus schrieb:> Nach I2C Spec darf der Strom pro Busleitung max 3mA sein.> Bei 5V bist du weit darunter.
3.125 mA würde man wohl allenfalls als leicht darüber bezeichnen.
Und wenn man dann ins Datenblatt vom PCA9615 guckt, ist dort als
Grenzwert für den Strom bei SDA und SCL ein Wert von 80mA angegeben.
Solange man davon über eine Faktor 25 weg ist, muss man sich da wohl
kein Sorgen machen.
RTFM
Wolfgang schrieb:> Solange man davon über eine Faktor 25 weg ist, muss man sich da wohl> kein Sorgen machen.Jeder am Bus muß die Leitung runter ziehen können, daß der PCA mehr
kann hilft da nichts. Der schwächste bestimmt den maximalen Strom
MfG Klaus
RTF I2C Spec
Michael schrieb:> ich benutze in meinem aktuellen Projekt einen PCA9615 um zuverlässig> Daten von ca. 16 einzelnen Platinen auszutauschen.
Ich würde dafür den CAN-Bus nehmen. Das macht auch die Software deutlich
einfacher.
Klaus schrieb:> Jeder am Bus muß die Leitung runter ziehen können, daß der PCA mehr> kann hilft da nichts. Der schwächste bestimmt den maximalen Strom
Der PCA vom TO wird aber schon heiß, wenn er ganz alleine am Bus hängt.
In diesem Fall können also alle Busteilnehmer (nämlich genau dieser
eine) lt. Datenblatt mit den 3.125mA locker umgehen ;-)
Ganz offensichtlich ist ein zu hochohmiger Pullup hier aber nicht das
Problem, weil im FM nämlich nichts von einem minimalen Strom
aufgeführt ist. Und dass der maximale Strom nicht das Problem
hervorruft, wurde durch einige Rechenbeispiele aufgezeigt.
Michael schrieb:> Vereinzelt musste ich jedoch feststellen, dass der PCA9615 extrem heiß> wurde
Immer und reproduzierbar bei den selben Platinen? Und die anderen
funktionieren ebenso reproduzierbar auch immer?
Dann hast du die ICs einfach irgendwie kaputt gemacht...
Bilder von der Platine, und ein Schaltbild mit Pin-Nummern, könnten
natürlich auch helfen. Aber hauptsächlich wäre erst einmal das Problem
mit EN fällig.
Ok erstmal Danke für die vielen Antworten.
Ich habe gerade mal den EN Pin abgetrennt und mir das ganze nochmal
angesehen und es bleibt dabei, dass der IC sehr heiß wird und der Strom
bei ca. 100mA bleibt.
Das ganze ist auch beliebig oft wiederholbar.
Somit bleibt eigentlich nur eine der beiden Erklärungen wobei letztere
wohl das wahrscheinlichere ist:
-Der IC wurde schon Defekt geliefert
-Der IC ist beim Löten kaputt gegangen
Ich verlöte die meisten ICs immer mit 300 Grad aber im Datenblatt sind
maximale Temperaturen von 250 Grad angegeben.
Ich werde also versuchen die nächsten nur noch mit unter 250 Grad zu
verlöten.
Bei der 2. Version des Platinen Designs, macht es vielleicht auch Sinn
die direkte Verbindung von EN durch eine mit einem Widerstand zu
ersetzten?
Den Pin gar nicht anzuschließen würde ich eigentlich nicht machen
wollen, da der interne Pull-Up ja nur 300KOhm groß ist und das in einer
störungsvollen Umgebung zu Problemen führen könnte.
Michael schrieb:> Ich verlöte die meisten ICs immer mit 300 Grad
Reflow oder Lötkolben? Ersteres wäre tatsächlich ein bisschen zu warm,
lezteres eher zu kalt.
Michael schrieb:> Ich verlöte die meisten ICs immer mit 300 Grad aber im Datenblatt sind> maximale Temperaturen von 250 Grad angegeben.
Die Temperaturangaben im Datenblatt beziehen sich auf Reflow Löten.
Das ist nicht nur eine Frage der Temperatur, sondern auch der Zeit.
Lötest du bleifrei?
Ist dein Lötkolben weich geerdet und wie sieht dein Arbeitsplatz
bezüglich ESD-Schutz aus. Normalerweise gehört schon einiges dazu, die
Dinger kaputt zu kriegen - gegen groben Unfug sind sie allerdings nicht
geschützt.
Michael schrieb:> -Der IC wurde schon Defekt geliefert> -Der IC ist beim Löten kaputt gegangen
Ich würde beides ausschließen.
Ich denke eher, daß da Ausgleichsströme beim Stecken der 16 Teilnehmer
das Problem sind.
Haben die eine gemeinsame Versorgung oder ist die separat?
Ist der IC überhaupt hotplug fähig?
Mh.
Dass das Problem durch den EN Pin verursacht wird kann ich eigentlich
ausschließen, denn ich habe den auch komplett abgeklemmt und das Problem
bestand immer noch.
Natürlich kann es sein, dass zu diesem Zeitpunkt der IC schon
irreparabel beschädigt war und das nachträgliche abklemmen dann auch
nichts mehr nützt.
Aber dagegen spricht, dass 14/16 auch nach mehreren Tests noch
funktionieren.
Das mit den Ausgleichsströmen kann ich ausschließen da ich alles einzeln
getestet habe ohne diese miteinander zu verbinden.
Der IC ist auch mit Jumpern vollkommen isoliert von dem Mikrocontroller.
Somit kann man alle äußeren Einflüsse ausschließen.
Hinzukommt, dass 14/16 ja perfekt funktioniert haben und es auch immer
noch tun.
Ich habe bisher mit einem einfach Lötkolben (Weller WHS 40) mit
Bleifreien Lötzinn gelötet.
Zu meiner Schande muss ich gestehen, dass ich mir nie einen Gedanken
über ESD Schutz beim Löten gemacht habe.
Bisher hatte ich auch noch nie ein vergleichbares Problem und meine
vorherigen Projekte bei denen ich auch einige ATmega2560 verlötet hatte
haben super funktioniert.
Aber ich denke jetzt war es halt mal soweit, dass es das erste mal
passiert ist und nun werde ich mir wohl auch um den ESD Schutz beim
Löten Gedanken machen müssen.
Michael schrieb:> Dass das Problem durch den EN Pin verursacht wird kann ich eigentlich> ausschließen, denn ich habe den auch komplett abgeklemmt und das Problem> bestand immer noch.
Abklemmen bringt sowieso nichts, weil interner Pullup.
Kapitel 7.4 mit den 11ms sieht mir danach aus, als ob mit EN ein
bestimmtes Startszenario adressiert wird, in dem der PCA erst mit einer
erkannten Stop Condition einschaltet, um ein kontrolliertes Hot Plug in
einen laufenden Bus zu ermöglichen, ohne den durcheinander zu bringen.
Und er dafür mit EN=GND hoch kommen muss.
Zusammen mit dem andernfalls völlig widersinnen Pullup liesse sich
daraus schliessen, dass man den EN auf Vdd lassen darf, wenn es auf ein
solchen kontrollierten Startup nicht ankommt.
Wo sind denn in deiner Schaltung die Abschlusswiderstände auf der
differenziellen Seite?
Reflexionen, durch nicht korrekt abgeschlossene Leitungen, können einem
potenziell auch Chips zerschießen.
Harry schrieb:> Wo kommt die Spannung der einzelnen Platinen her?
Ich habe ein 5V Netzteil.
Peter schrieb:> Wo sind denn in deiner Schaltung die Abschlusswiderstände auf der> differenziellen Seite?> Reflexionen, durch nicht korrekt abgeschlossene Leitungen, können einem> potenziell auch Chips zerschießen.
Ich hatte ja keine einzige I2C Übertragung gestartet noch den IC an eine
lange Leitung angeschlossen und trotzdem wird der Chip heiß.
Da ich aber nicht von Anfang an alles ganz sorgfältig geprüft habe werde
ich wohl noch ein bisschen rumprobieren und schauen ob nicht doch noch
eine weitere Platine nach ein paar Experimenten das zeitliche segnet.
Wenn nicht, werde ich wohl in Zukunft beim löten vorsichtiger sein.
Danke für eure Hilfe :)
A. K. schrieb:> Zusammen mit dem andernfalls völlig widersinnen Pullup liesse sich> daraus schliessen, dass man den EN auf Vdd lassen darf, wenn es auf ein> solchen kontrollierten Startup nicht ankommt.
So sehe ich das auch. Denn im Text geht es immer um das "Hot-Plugging",
bei dem natürlich keine laufende Übertragung korrumpiert werden darf.
Und nur dafür ist es nötig, den Baustein erst später am Bus aktiv werden
zu lassen.
Michael schrieb:> Ich werde also versuchen die nächsten nur noch mit unter 250 Grad zu> verlöten.
Nein. Du solltest da nicht mit 250°C ewig lang daran herumbraten,
sondern besser mit 350°C zügig ans Ende kommen. Zügig bedeutet: nicht
mehr als 1/2 bis 1 Sekunde pro Pin. Man lötet solche dinger am
einfachsten, indem man die Pads verzinnt, und dann nur noch die Pins auf
diese verzinnten Pads aufschmilzt. "Genug Flussmittel" ist hier der
Schlüssel zum Erfolg.
Michael schrieb:> Hinzukommt, dass 14/16 ja perfekt funktioniert haben und es auch immer> noch tun.
Ergo hast du ganz einfach 2 Stück davon kaputtgebrutzelt.
Erneutes Fazit: wenn immer nur der selbe Baustein spinnt und alle
anderen in in der selben Konstellation dieses verhalten nicht aufweisen,
dann deutet das auf einen Defekt dieses einen Bausteins hin.
Ich setze den PCA9615 auch ein und habe das gleiche Problem.
Vergiss die ganzen Pullup diskussionen, ich habe hier ein FM+ Design und
habe den Strom auf 10mA eingestellt.
Was bei dir nicht ersichtlich ist, ist ob du am Anfang und Ende die
Abschlusswiderstände reingemacht hast.
Das Problem ist wirklich das Hotplugging. Obwohl der IC extra dafür
ausgelegt ist, geht er bei mir regelmässig kaputt. Den EN Pin habe ich
nicht verbunden, dann sollte nach Datenblatt der IC selbständig enabled
werden, wenn er soweit ist. Probehalber hatte ich auch schon RC Glieder
daran, um das ganze zu verzögern, aber das hat auch keinen Unterschied
gemacht.
Wenn der IC erstmal soviel Strom zieht, ist er defekt. Da hilft nur
austauschen.
Das Problem konnte ich nur umgehen, indem ich alle Platinen zuerst
verbinde und erst dann einschalte.
Der defekt ist übrigens gut wiederholbar.
Spannung einschalten, Platine einstecken -> IC defekt.
Platine einstecken, Spannung einschalten -> IC läuft. (natürlich muss er
schon nicht defekt gewesen sein)
Operator S. schrieb:> Das Problem ist wirklich das Hotplugging. Obwohl der IC extra dafür> ausgelegt ist, geht er bei mir regelmässig kaputt.
Das ist generell ein Problem, wenn du mehrere ICs aus verschiedenen
Potentialen ohne voreilenden GND miteinander verbindest. Denn damit
verletzt du fast automatisch die Grenzspezifikationen der Buspins beim
Einstecken. Wiederhole mal deine Einstecktests mit vorher verbundenem
GND...
Aber hier im Thread geht es bei genauerem Hinlesen um einzelne,
nicht an einen Bus angeschlossene Platinen mit nur einem einzigen
Baustein drauf.
Operator S. schrieb:> Was bei dir nicht ersichtlich ist, ist ob du am Anfang und Ende die> Abschlusswiderstände reingemacht hast.
Ich habe diese Vorgesehen und bei manchen Versuchsaufbauten auch
angeschlossen gehabt.
Bei anderen aufbauten hatte ich aber auch schon mal keine drin oder nur
einseitig angeschlossen.
Lothar M. schrieb:> Nein. Du solltest da nicht mit 250°C ewig lang daran herumbraten,> sondern besser mit 350°C zügig ans Ende kommen. Zügig bedeutet: nicht> mehr als 1/2 bis 1 Sekunde pro Pin. Man lötet solche dinger am> einfachsten, indem man die Pads verzinnt, und dann nur noch die Pins auf> diese verzinnten Pads aufschmilzt. "Genug Flussmittel" ist hier der> Schlüssel zum Erfolg.
Mh.
Bisher hatte ich ein bisschen Lötzinn an der Spitze vom Lötkolben
geschmolzen, den IC genau platziert und mit einem Tropfen fixiert.
Anschließend habe ich einfach noch ein bisschen Lötzinn auf den Pins
verteilt und am Ende, wenn zuviel Lötzinn drauf war mit der Entlötlitze
wieder etwas abgetragen.
Und natürlich Flux ohne Ende.
Was meinst du genau mit aufschmilzen?
Und es ist auch ohne verzinnte Pads schon schwer den PCA9615 genau zu
platzieren und fixieren.
Wenn ich die Pads vorher verzinne wird das durch die eher ovale Form der
Oberfläche doch noch schwieriger oder?
Wäre cool, wenn du vielleicht ein Video oder so verlinken könntest.
Wäre ganz interessant für mich.
Lothar M. schrieb:> Aber hier im Thread geht es bei genauerem Hinlesen um einzelne,> nicht an einen Bus angeschlossene Platinen mit nur einem einzigen> Baustein drauf.
Genau, ich hatte die einzeln getestet und manchmal habe ich die auch bei
aktiviertem Netzteil angeschlossen und manchmal bei deaktiviertem und
dieses anschließend aktiviert.
Ich habe auch schon mehrere mit einem Flachbandkabel zusammengeschlossen
und dieses mitten in Übertragungen raus und wieder reingesteckt usw.
Bis jetzt ist dabei kein weiterer kaputt gegangen.
Also bin ich mir da nicht so sicher, ob das wirklich daran liegen
könnte.
Lothar M. schrieb:> Operator S. schrieb:>> Das Problem ist wirklich das Hotplugging. Obwohl der IC extra dafür>> ausgelegt ist, geht er bei mir regelmässig kaputt.> Das ist generell ein Problem, wenn du mehrere ICs aus verschiedenen> Potentialen ohne voreilenden GND miteinander verbindest. Denn damit> verletzt du fast automatisch die Grenzspezifikationen der Buspins beim> Einstecken. Wiederhole mal deine Einstecktests mit vorher verbundenem> GND...
Meinst du damit, dass der GND Kontakt zuerst geschlossen wird?
Und wenn ja, was ist genau das Problem, wenn erst die Differentiellen
Leitungen Kontakt schließen und erst später GND dazukommt?
Lothar M. schrieb:> Wiederhole mal deine Einstecktests mit vorher verbundenem> GND...
Was für einen Vorteil hätte ich dann vom Hotswapping?
Meine Platinen werden direkt über den Bus gespiesen, Stecker mit 6 pins.
Auf Seite 14 des Datenblattes ist dieser Aufbau sogar schematisch
gezeichnet und es wird damit beworben. Speisung und diff Signale werden
direkt gesteckt. Nur gehen bei mir genau so die Chips kaputt. Eine
Anfrage bei nxp war mehr als enttäuschend und nach der fünften
nichtssagenden Antwort habe ich dann aufgegeben.
https://www.nxp.com/docs/en/data-sheet/PCA9615.pdf
Operator S. schrieb:> Lothar M. schrieb:>> Wiederhole mal deine Einstecktests mit vorher verbundenem>> GND...>> Was für einen Vorteil hätte ich dann vom Hotswapping?> Meine Platinen werden direkt über den Bus gespiesen, Stecker mit 6 pins.
Wenn dies das Problem löst, müsstest du auf spezielle Stecker umsteigen
die eben so einen vorlaufenden Kontakt haben.
USB hat das!
PCI-Express das prinzipiell auch hotplugging-fähig ist, auch. An den
Grafikkarten sieht man schön wie mindest ein Pin (meistens nah bei der
Slotblende), weiter vorsteht als der Rest.
Alex G. schrieb:> PCI-Express das prinzipiell auch hotplugging-fähig ist, auch. An den> Grafikkarten sieht man schön wie mindest ein Pin (meistens nah bei der> Slotblende), weiter vorsteht als der Rest.
Hab mir mal 3 verschiedene Karten angesehen. Da sind einer oder einige
wenige Pins kürzer als die übrigen (PRSNT#). Der Rest ist gleich.
Ground an die äußersten Pins der Stecker legen. Eine eventuelle
Stromversorgung auf dem Stecker auf die zweitnächsten Pins. Also z.B.:
1 GND
2 VCC
3
4
5
6
7 VCC
8 GND
So mache ich das schon seit 25 Jahren. Das geht auch mit D-Sub, wenn man
die Geometrie beachtet.
In alten Fernsehern mit i2c sind auch gerne 100 Ohm jeweils in SDA und
SCL sowie GND seriell drin.
Schutzdiodenbrücken sind auch eine gute Idee.
Abdul K. schrieb:> So mache ich das schon seit 25 Jahren.> Das geht auch mit D-Sub, wenn man die Geometrie beachtet.
So ist es.
Operator S. schrieb:> Lothar M. schrieb:>> Wiederhole mal deine Einstecktests mit vorher verbundenem GND...> Was für einen Vorteil hätte ich dann vom Hotswapping?
Wie gesagt: das ist ein Test. Wenn die Controller dann nicht mehr
kaputtgehen, dann kommt es von Potentialverschiebungen der Slaves beim
Einstecken.
> Auf Seite 14 des Datenblattes ist dieser Aufbau sogar schematisch> gezeichnet und es wird damit beworben.
Und dort sind sogar deutlich sichtbar die Versorgungspins weiter nach
vorne gesetzt, so dass die zuerst Kontakt geben werden...
> Eine Anfrage bei nxp war mehr als enttäuschend und nach der fünften> nichtssagenden Antwort habe ich dann aufgegeben.
Ich vermeide HotSwap wo immer möglich. Devise ist: Gerät aus, dann
Umstecken.
Lothar M. schrieb:> Operator S. schrieb:>> Lothar M. schrieb:>>> Wiederhole mal deine Einstecktests mit vorher verbundenem GND...>> Was für einen Vorteil hätte ich dann vom Hotswapping?> Wie gesagt: das ist ein Test. Wenn die Controller dann nicht mehr> kaputtgehen, dann kommt es von Potentialverschiebungen der Slaves beim> Einstecken.
Kann man dies nicht ausschliessen wenn der Slave einzig über den Bus
gespiesen wird? Dann gibt es ja kein vorher definiertes Potential einer
anderen Speisung auf dem Print.
>> Auf Seite 14 des Datenblattes ist dieser Aufbau sogar schematisch>> gezeichnet und es wird damit beworben.> Und dort sind sogar deutlich sichtbar die Versorgungspins weiter nach> vorne gesetzt, so dass die zuerst Kontakt geben werden...
Stimmt hatte ich vorher nicht gesehen.
>> Eine Anfrage bei nxp war mehr als enttäuschend und nach der fünften>> nichtssagenden Antwort habe ich dann aufgegeben.> Ich vermeide HotSwap wo immer möglich. Devise ist: Gerät aus, dann> Umstecken.
Natürlich mache ich das nicht zum Spass, aber es gibt Anwendungen wo das
unumgänglich ist. Bei mir geht es jetzt auch nur, wenn der gesamte
Strang zuerst stromlos gemacht wird, schön ist es nicht aber es
funktioniert.
Ich wollte hier nicht den Thread kapern, sondern meine Erfahrung mit
genau diesem Chip kundtun. Die erhöhte Stromaufnahme ist auf jeden Fall
ein defekt des Chips, bei mir kommt er durch hotswapping zustande.
Operator S. schrieb:> Kann man dies nicht ausschliessen wenn der Slave einzig über den Bus> gespiesen wird? Dann gibt es ja kein vorher definiertes Potential einer> anderen Speisung auf dem Print.
Sollte man meinen. Aber offenbar gibt es Dinge zwischen Himmel und Erde,
die nicht dieser Meinung sind...
Abseits solcher Mechanismen wie elektrostatische Entladung könnte ich
mir vorstellen, dass auch eine "verkehrte" Einsteckreihenfolge wie
Vcc-Pin-GND Ströme über nicht vorgesehene Pfade fließen lassen kann.
In einigen HotPlug Konzepten ist deshalb vorgesehen, dass über einen
dedizierten (und evtl. zurückgesetzten Pin) zuerst ein gestecktes Device
erkannt und dann erst die Versorgungsspannung aufgeschaltet wird.
> Ich wollte hier nicht den Thread kapern, sondern meine Erfahrung mit> genau diesem Chip kundtun.
Passt doch gut hierher...