Rauchwolke in der Luft. 3 verschiedene Leiterplatten. PCB hat Geister?

15

Ja, das ist ein Haiku. (EDIT: behoben ... es ist jetzt eigentlich ein Haiku)

Nein, ich lächle nicht.

Ich mache einige Standardtests. Sehen, was passiert, wenn eine der beiden Stromschienen auf einer von mir entworfenen Leiterplatte einen Kurzschluss zu GND aufweist. Es handelt sich um eine 12-V-Stromschiene, die von einem Tischnetzteil mit einem separaten integrierten 5-V-Abwärtswandler gespeist wird, der die andere Schiene auf der Platine versorgt (an die mein ATmega328PB angeschlossen ist).

Die 12-V-Schiene verfügt über eine Reihe von DC-Fassbuchsen, die den Endbenutzern zugänglich sind. Also beschloss ich natürlich, einen Juwelier-Schraubenzieher in einen von ihnen zu stecken, um meinen Kurzschlusstest durchzuführen.

Siehe da, eine Rauchwolke von meinem ATmega328PB.

Ich denke, das bedeutet, dass eines der folgenden Dinge passiert ist:

Bildbeschreibung hier eingeben

Schematische Zeit

Hier ist das Schema der Verbindungen zum ATmega328PB:

ATmega328PB schematisch

Hier sind alle Schaltpläne von Dingen im Design, die eine Verbindung zur 12-V-Schiene (der VBAT + -Schiene) haben und die GND-Stromrückleitungspfade steuern:

FET-Leistungsregelung

Analoges Frontend

Und hier ist ein Schema der Fassbuchsen und der zugehörigen Buchsenerkennungsstifte (beachten Sie, dass diese direkt mit einigen der Stifte des ATmega328PB verbunden sind, ohne dass ein Serienwiderstand vorliegt):

DC-Fassbuchsen mit Buchsenerkennungsstiften

Der Kurzschlussplan

Der Plan für den Umgang mit Kurzschlüssen auf der 12-V-Schiene bestand darin, den LOAD_FET- N-Kanal-FET einfach auszuschalten, da eine der beiden logischen Bedingungen in der Firmware erfüllt war:

  1. Eine ADC-Abtastung mit einer Frequenz von 1 Hz würde den Überstromzustand erkennen und dazu führen, dass der FET_LOAD-Schalter aufhört zu leiten, wodurch der Kurzschlussstrom unterbrochen wird
  2. Die Spannung, die den ATmega speist, geht in einen Spannungsabfallzustand über, und die MCU setzt den FET_LOAD-Schalter zurück und initialisiert ihn auf "off", wodurch der Kurzschlussstrom unterbrochen wird

Der große Rauch

Hier ist eine Oszilloskop-Sonde, die zeigt, was mit der Vbat + -Schiene an CH1 (gelb) und der +5 -Schiene an CH2 (blau) passiert, wenn Vbat + durch Anlegen eines Juwelier-Schraubenziehers an die freiliegenden Drähte eines Kabels, das an CH1 angeschlossen ist, kurzgeschlossen wird Barrel-Jack-Schaltung (ich habe den Schraubendreher nicht in die Steckdose gesteckt), während die Stromversorgung über ein Tischnetzteil erfolgt, das auf 12 V bei 5 Ampere eingestellt ist:

Kurzschluss |  CH1 - Vbat + |  CH2 - + 5V

Danach wurde der ATmega beim Einschalten der Platine einfach sehr heiß und fungierte als Kurzschluss zwischen seinem + 5-V-Eingang und der Signalmasse. Ich habe den ATmega mit heißer Luft entlötet und den FET_LOAD-N-Kanal-FET getestet, um festzustellen, ob er gebraten wurde. In der Tat war es so ausgefallen, dass es sich nicht mehr vollständig ein- oder ausschaltete, wenn eine Gate-Spannung an +5 oder Signalmasse angelegt wurde, sondern irgendwo in der Dämmerungszone dazwischen arbeitete. Es fiel ungefähr 2,3 Volt ab, während ~ 200 mA geleitet wurden, ob es "an" oder "aus" war, als eine Last in die Trommelbuchse eingesteckt wurde.

Ahnung

Ich hatte die Vermutung, dass, weil der FET beschädigt wurde, der Vektor für die Beschädigung des ATmega möglicherweise durch die Übertragung einer hohen Spannung durch den FET-Drain zu seinem Gate und weiter zur MCU verursacht wurde. Führe einige nachfolgende Tests mit niedrigeren Spannungen durch, die die 12-V-Schiene versorgen. Beachten Sie, dass die ersten drei Bilder im Wesentlichen gleich sind, jedoch unterschiedliche Spitzenströme aufweisen. Sobald der ATmega heruntergefahren ist (aufgrund einer reduzierten Spannung auf der Vbat + -Schiene), geht das von der MCU gelieferte Signal LOAD_GND_ENABLE (blau, unten) auf LOW und unterbricht den Schalter FET_LOAD .

Legende:

CH1 = Spannung über Rshunt (0,005 Ohm) CH2 = Spannung am LOAD_GND_ENABLE-Signal (verbunden mit ATmega)

Vbat + mit 6V versorgt:

Bildbeschreibung hier eingeben

Vbat + mit 7V versorgt:

Bildbeschreibung hier eingeben

Vbat + mit 8V versorgt:

Bildbeschreibung hier eingeben

Vbat + mit 9V versorgt:

Bildbeschreibung hier eingeben

Bei diesem letzten Anstieg hörte der Strom nie auf zu steigen und das Signal LOAD_GND_ENABLE tanzte flippig, aber insgesamt schien es so, als ob die maximalen Grenzwerte für den Anschluss LOAD_GND_ENABLE nie überschritten wurden (zumindest glaube ich nicht, dass dies der Fall war). Ich habe nur einen 2-Kanal-Bereich und hätte die + 5V-Schiene messen müssen, um zu wissen, wie hoch die Spannung an LOAD_GND_ENABLE ( bezogen auf Vcc ) ist.

Nächste Schritte

Ich habe nur noch 1 Board, das geopfert werden kann, daher ist mein Plan:

  1. Verwenden Sie ein leeres ATmega328PB, damit alle Pins standardmäßig hochohmig sind und keine Peripheriegeräte konfiguriert / initialisiert sind. Wiederholen Sie den Kurzschlusstest, um festzustellen, ob der ATmega328PB immer noch in Rauch aufsteigt. Wenn dies nicht der Fall ist, muss die MCU ausgefallen sein, weil sie zu viel Strom aus einem ihrer als Ausgang konfigurierten Pins bezogen / abgeleitet hat, während in den vorherigen Tests Firmware ausgeführt wurde.

  2. Test mit einem ATmega328PB, der auf einem Breakout-Board montiert ist (dieser Chip wird leider nicht in DIP-Gehäusen geliefert), das über Flywires mit der Platine verbunden ist. Beginnen Sie selektiv, jeweils einen einzelnen Flywire anzuschließen, führen Sie den Test durch und sehen Sie, welcher Flywire letztendlich für das Braten des ATmega328PB verantwortlich ist.

  3. Bestellen Sie eine neue Musterplatine mit geändertem Layout, sodass alle Leiterbahnen, die mit dem ATmega328PB verbunden sind, über Lötbrücken verbunden sind, die beim Testen von Hand gelötet werden können. Auf diese Weise kann der Kurzschlusstest (und jeder andere Test) mit dem ATmega durchgeführt werden, der mit einer begrenzten Anzahl von Signalen gleichzeitig verbunden ist, und macht es einfach, alle anderen externen Schaltkreise an diese Lötbrücken anzuschließen, um sie unabhängig vom ATmega zu steuern .

Ja, es ist wirklich eine Frage!

Und die Frage (n) ist:

  • sieht hier jemand etwas, was ich nicht sehe? Ist es offensichtlich? Ich hoffe es ist nicht offensichtlich ...
  • Was wäre dein nächster Schritt?
macdonaldtomw
quelle
5
+1 für das Haiku und für eine wirklich gut gemachte vollständige Detailfrage. Aber leider habe ich nicht die Erfahrung / das Wissen, um überhaupt eine Antwort zu geben.
Manassehkatz-Reinstate Monica
2
Eine 1-Sekunden-Abtastrate für Kurzstrom ist WEG ZU LANGSAM. Angenommen, das gefährdete Teil ist ein Halbleiter mit einem aktiven Bereich mit einer Dicke von 10 Mikrometern und einem thermischen Tau von 1,14 Mikrosekunden. Sie müssen den Überstrom (diesen Kurzschluss) sehr schnell erkennen.
analogsystemsrf
2
Elektrische Dinge funktionieren nicht, nachdem die Magie ausgebrannt ist ...
Solar Mike
Ich wünschte, wir hätten mehr Fragen wie diese gesehen. +1
Wossname

Antworten:

1

Ich denke, Ihr Schalter in der LOAD_GND-Leitung ist hier wahrscheinlich der Schuldige, kombiniert mit den ungeschützten Jack-Detect-Leitungen zum Mikro (die ich für jede Buchse mit LOAD_GND verbinden würde, bei der KEIN Stecker eingesteckt ist).

Überlegen Sie, was passiert, wenn Sie diesen Mosfet ausschalten. (Die Buchsenerkennungsleitungen an einer beliebigen Buchse ohne angeschlossene Buchse werden über die kurzgeschlossene Last mit der Batteriespannung verbunden. Es entsteht Rauch.) Sie sollten mindestens einen Serienwiderstand und eine Klemme haben auf den Buchsenerkennungsleitungen (sagen wir 10k oder so und ein Paar Dioden), aber ich sehe wirklich nicht, was der LOAD_GND-Schalter Ihnen wirklich über einen High-Side-Schalter bringt?

Übrigens hat die Automobilszene wirklich schöne logikgesteuerte High-Side-Schalter mit eingebauter Überstromauslösung und Strommessung, die einen Blick wert sind.

Dan Mills
quelle
Du liegst absolut richtig. Sehr prägnant, sehr richtig. Dank sei Ihnen, Sir.
Macdonaldtomw
3

Auf der 12-V-Schiene befinden sich eine Reihe von DC-Fassbuchsen, die den Endbenutzern zugänglich sind. Also beschloss ich natürlich, einen Juwelier-Schraubenzieher in einen von ihnen zu stecken, um meinen Kurzschlusstest durchzuführen.

Das bedeutet, dass Sie +12 V an die ungeschützte JACK_DETECTLeitung anschließen und die MCU braten. Siehe "Spannung an einem Pin [..]" oben.

Entwerfen Sie die Schaltung so, dass ein Kurzschluss zwischen VBAT+und JACKx_DETECTdie Spannung am MCU-Pin nicht über VCC ansteigt - z. B. mit einem Widerstand und einer Diode.

Turbo J
quelle
0

Kann anscheinend (noch) nicht kommentieren. Aber ich habe meine Antwort geändert, um mit der obigen übereinzustimmen, mit folgender Beobachtung.

Ein Punkt, den ich beachten möchte, ist, sicherzustellen, dass sich Ihre FETs in einem gut angesteuerten Zustand (Pullup / Pulldown) befinden, wenn sich der ATMega im Boot- / Reset-Zustand befindet. Die Pins sind normalerweise auf den Eingangsmodus IIRC eingestellt, wodurch das FET-Gate schwebt und eine schlechte Vgs-Ansteuerung aufweist, wodurch der Kanalwiderstand erhöht wird. Wenn der Stromfluss zwischen den Drain- und Source-Anschlüssen erheblich ist, wird der FET schnell überhitzt / zerstört.

isdi
quelle