Forum: Mikrocontroller und Digitale Elektronik MCU Reset bei Netzspannung


von Michael H. (overthere)


Lesenswert?

Hallo miteinander,

ich baue ein Netzteil in meiner Promotionsarbeit, welches von einem MCU 
digital geregelt wird. Zu Testzwecken betreibe ich den MCU von einer 
Batterie aus, ohne Selbstversorgung. GND-MCU=GND-PWR und über einen 0 
Ohm Widerstand auf gleichem Potential.

Legt man nun 230V AC an, gibt es den Inrush. Und dann resetet sich der 
MCU.D Der MCU ist der MKE14F256 [2].

Das Layout ist 4 lagig, eine Plane GND, die andere 3.3V, die restlichen 
Signale. PWR und Control sind sauber voneinander getrennt, aber nicht 
isoliert, wie oben schon geschrieben.
Die 3.3V kommen aus einem LDO, dem NCP700B [1]. (Cin=44u, Cout=10u.) 
Hier wurde extra ein RF-LDO, damit der ja ein sauberes VCC bekommt. Der 
LDO bekommt 3.6V von einem Weitbereichs-Buck.

Jetzt habe ich mit dem Segger-JLink nachgeschaut, der MCU geht in einen 
HardFault. Der Watchdog beist dann, und reset. Der Hardfault-Tracker 
sagt, dass es einen BusError (bin ich mir nicht mehr ganz sicher) gibt.

Quizfragen:
1. Ideen, woran es liegt?
2. Meine Vermutung geht Richtung supply voltage. Der Hardfault tritt nur 
beim Inrush auf.

[1] https://www.onsemi.com/pub/Collateral/NCP700B-D.PDF
[2] http://www.mouser.com/ds/2/302/KE1xFP100M168SF0-1126269.pdf

Danke für Eure Hilfe!

Michael

von Uin (Gast)


Lesenswert?

Und was hast du zwischen 230Vac und dem LDO?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Mir ist nicht ganz klar, warum im Moment des Einschaltens der MC schon 
läuft. Denn eigentlich willst du doch das Netzteil mit dem MCU steuern 
und gleichzeitig mit dem Netz einschalten, oder? In diesem Fall sorgt 
eine anständige Resetbeschaltung für einen Power-On Reset.
Als nächstes kannst du auch probieren, den Inrush zu bändigen, was man 
im Falle entsprechender Leistung auch mit einer schlauen PFC Schaltung 
hinkriegen kann.

Da du keinerlei Schaltunterlagen lieferst, tappen wir natürlich im 
Dunkeln, vor allem, weil alle Glaskugeln schon an den W-Bäumen hängen 
und derzeit nicht zugänglich sind.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Michael H. schrieb:
> Das Layout ist 4 lagig, eine Plane GND, die andere 3.3V

Eine Plane ist ungünstig, wenn man Digital und Leistung auf einer 
Platine hat.
Ich mache dann split Planes (DGND, PGND), d.h. getrennt für Digital und 
Leistung, die nur an einer Stelle mit einem Net-Tie verbunden sind. 
Somit können Transienten nicht über den Digitalteil fließen.
Eine Plane ist ja kein Supraleiter, sondern hat einen ohmschen 
Widerstand und eine Induktivität.

Und alle IOs zum Leistungsteil haben Serienwiderstände oder Optokoppler.

von Michael H. (overthere)


Lesenswert?

Matthias S. schrieb:
> Mir ist nicht ganz klar, warum im Moment des Einschaltens der MC
> schon
> läuft. Denn eigentlich willst du doch das Netzteil mit dem MCU steuern
> und gleichzeitig mit dem Netz einschalten, oder? In diesem Fall sorgt
> eine anständige Resetbeschaltung für einen Power-On Reset.
Ja richtig, normalerweise versorgt sich der Konverter selbst, bzw. über 
eine Startup-Schaltung. Zum Testen nehme ich aber als isolierte 
Spannungsversorgung 12V aus NiMH Akkus.

Normalerweise macht das nix, richtig, aber ich möchte einfach das das 
Netzteil robust ist, um auch gegen Störungen (Transienten) imun zu sein.

> Als nächstes kannst du auch probieren, den Inrush zu bändigen, was man
> im Falle entsprechender Leistung auch mit einer schlauen PFC Schaltung
> hinkriegen kann.
Der Inrush ist schon gut und garnicht so "pervers", da es nur 10uF sind. 
(Ja, und das reicht!)

Zudem sind 1mH Boost-Inductor davor, der das ganze abfedern sollte? Kann 
ein Boost-Inductor etwa probleme machen?

Peter D. schrieb:
> Ich mache dann split Planes (DGND, PGND), d.h. getrennt für Digital und
> Leistung, die nur an einer Stelle mit einem Net-Tie verbunden sind.
Genau, das habe ich auch gemacht. Der Net-Tie ist ein 0 Ohm Widerstand

Siehe:
Michael H. schrieb:
> PWR und Control sind sauber voneinander getrennt, aber nicht
> isoliert, wie oben schon geschrieben.

Die Frage ist vielmehr: Wieso reseted sich ein MCU, der laut Datenblatt 
Robust ist? Was bringt einen MCU zu einem Hardfault?

Eigentlich dürfte der MCU das Einschalten garnicht sehen, da er von 
Akkus versorgt wird und nur die GND über ein 0 Ohm Widerstand teilt...

von Peter D. (peda)


Lesenswert?

Michael H. schrieb:
> Was bringt einen MCU zu einem Hardfault?

Läßt sich denn nicht der Grund für den Hardfault ermitteln?
Wenn es eine Resetquelle ist, sollte doch das entsprechende Bit gesetzt 
sein.
Ein Watchdogreset klingt sehr nach einem Programmfehler. Ich würde in 
der Entwicklungsphase den Watchdog immer abgeschaltet lassen.

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Peter D. schrieb:
> Läßt sich denn nicht der Grund für den Hardfault ermitteln?

Für den Cortex-M HardFault haben wir eine App Note.
Vielleicht hilft die dem TO weiter:
https://www.segger.com/downloads/application-notes/AN00016
https://www.segger.com/downloads/application-notes/HardFaultHandler

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.