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.
mach mal die Pullups größer. Nach I2C Spec darf der Strom pro Busleitung max 3mA sein. Bei 5V bist du weit darunter. MfG Klaus
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.
:
Bearbeitet durch User
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?
Peter D. schrieb: > Ist der IC überhaupt hotplug fähig? Ja, eben da kommen EN und die 11ms ins Spiel.
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch Moderator
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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.
:
Bearbeitet durch Moderator
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.