Forum: Mikrocontroller und Digitale Elektronik Eval Board bleibt hängen


von asdf a. (asdf_a)


Lesenswert?

Hallo zusammen.

Hab mir ein System zur Heizungssteuerung für ein Prototypen aufgebaut.
Dafür wurde eine Bedieneinheit auf Basis Arduino erstellt und der 
Einfachheit halber über Uart mit einem Reglerboard (FiOStd) verbunden.
Das Reglerboard schaltet in Summe 18 Halbleiterrelais (~6mA/Stufe), was 
soweit eigentlich gut funktioniert. Ich bin mit der gesamten 
Stromaufnahme aber hart am Limit zum absoluten Maximum des µC.

Problem: Von Zeit zu Zeit bleibt das FiOStd einfach hängen und verändert 
seine Ausgänge (PWM, DIO, etc.) nicht mehr. Die Uart Kommunikation ist 
nicht daran Schuld, sie funktioniert einwandfrei. Außerdem ist die 
Zeitspanne bis zum Absturz immer unterschiedlich.

Frage:
Kann es sein, dass das Board überlastet wird und dadurch hängen bleibt?
Macht ein Transistorschalter Sinn, um die Belastung zu reduzieren?
Was kann sonst zu einem Absturz des Boards führen?

Danke im Voraus für die Hilfe.

von ohne_namen (Gast)


Lesenswert?

> Was kann sonst zu einem Absturz des Boards führen?

Sauberer Aufbau, Versorgungsspannung gut entkoppeln.
Freilaufdioden an Relais, darauf achten das die
Ausgangspins des Mikrocontrollers nicht zu viel
Strom liefern muessen, sauberes Layout, ordentliche
Verkabelung...

Meine Antwort ist so allgemein wie deine Frage...

ohne_namen

von asdf a. (asdf_a)


Lesenswert?

- Aufbau ist ordentlich durchgeführt
- Versorgungsspannugn kommt sauber von einem Phoenix Contact Netzteil 
mit 12V
- Freilaufdiode ist bei den Halbleiterrelais nicht notwendig, da ich 
einen Optokoppler am Eingang schalte

"...darauf achten das die Ausgangspins des Mikrocontrollers nicht zu 
viel Strom liefern muessen..."
==> Genau das war mein Frage, ob es sein kann, dass der Controller 
hängen bleibt, wenn die Ausgänge zu viel Strom ziehen?!

Wer lesen kann ist eindeutig im Vorteil ;)

von Karl H. (kbuchegg)


Lesenswert?

asdf a. schrieb:


> ==> Genau das war mein Frage, ob es sein kann, dass der Controller
> hängen bleibt, wenn die Ausgänge zu viel Strom ziehen?!

Kann eigentlich nicht sein - zur Zeit haben wir keinen Vollmond.

Häng die Hälfte deiner Hardware ab und lass laufen - dann weißt du es 
genau.


Wird halt irgendwo ein Programmfehler sein, so wie in 95% aller Fälle.

von ohne_namen (Gast)


Lesenswert?

> Wer lesen kann ist eindeutig im Vorteil ;)

Und ohne dass du wenigstens mal einen Schaltplan,
Stromlaufplan oder genauere Angaben ueber deine
Schaltung (was fuer ein Board, wie sind die Ausgaenge
beschaltet) usw., ist alles andere
nur Raterei. ;->

ohne_namen

von Martin H. (marrtn)


Lesenswert?

asdf a. schrieb:
> - Aufbau ist ordentlich durchgeführt
--> Das werden wir wohl so hinnehmen müssen. Es gibt übrigens 
verschiedene Definitionen von "sauber".

> - Versorgungsspannugn kommt sauber von einem Phoenix Contact Netzteil
> mit 12V
--> Ich denke ohne_namen meinte die Versorgungsspannung des µC. Da ist 
doch noch was zwischen dem "sauberen Netzteil" und dem µC, oder?
Außerdem hat das Netzteil rein garnichts mit Entkopplung zu tun.

> "...darauf achten das die Ausgangspins des Mikrocontrollers nicht zu
> viel Strom liefern muessen..."
> ==> Genau das war mein Frage, ob es sein kann, dass der Controller
> hängen bleibt, wenn die Ausgänge zu viel Strom ziehen?!
Niemand weiß, wie Du deine Relais schaltest. Falls Du vielleicht mehrere 
auf einmal schaltest, kann es durchaus sein, dass Dir die 
Versorgungsspannung wegbricht. Insbesondere, wenn Du (wie Du erwähnt 
hast) knapp an den Max.Ratings bist.

> Wer lesen kann ist eindeutig im Vorteil ;)
Verkneif's Dir doch einfach.

von asdf a. (asdf_a)


Lesenswert?

Danke erst mal und sorry für den Seitenhieb (aber wer austeilt muss auch 
einstecken können) ;)

Bei dem µC Board handelt es sich um das Evaluation Board FiOStd von 
Aimagin. Dort ist ein Spannungsregler drauf, der 3,3V bis 800mA ausgibt. 
Ob die Spannung immer sauber ist, kann ich nicht 100%ig sagen. Vom 
Leistungsvermögen ist der Regler auf jedenfall genug.

Aufbau sieht so aus, dass ich direkt aufs vom µC PWM Ausgang (10Hz) aufs 
SSR gehe. Dessen Eingang ist lediglich ein Optokoppler mit R. Und ja, 
ich schalte mehrere auf einmal.

Was mich eben wundert ist, dass der µC hängen bleibt und die 
Ausgangswerte beibehält. Wenn die Versorgungsspannung des µC 
zusammenbricht, würde dieser doch reseten, oder lieg ich da falsch?

von Martin H. (marrtn)


Lesenswert?

asdf a. schrieb:
> Bei dem µC Board handelt es sich um das Evaluation Board FiOStd von
> Aimagin.

Hast Du vielleicht einen Link zum Schaltplan?

> Was mich eben wundert ist, dass der µC hängen bleibt und die
> Ausgangswerte beibehält. Wenn die Versorgungsspannung des µC
> zusammenbricht, würde dieser doch reseten, oder lieg ich da falsch?

Nur wenn Du die BOD (BrownOut-Detection) eingeschaltet hast und der 
Spannungseinbruch lang genug ist, um erkannt zu werden.
Um im Falle des Hängenbleibens einen Reset durchzuführen wäre der 
Watchdog erforderlich, aber zuerst sollte die Ursache beseitigt werden.

von Karl H. (kbuchegg)


Lesenswert?

asdf a. schrieb:

> Was mich eben wundert ist, dass der µC hängen bleibt und die
> Ausgangswerte beibehält. Wenn die Versorgungsspannung des µC
> zusammenbricht

eher 'einbricht'
Es ist eher unwahrscheinlich, dass die Versorgungsspannung komplett bis 
auf 0V einbricht.

Was natürlich sein kann ist, dass sie kurzfristig mal von 3.3V auf 
(hausnummer) 1.5V einbricht. Und was dann alles passiert oder nicht 
passiert, kann dir kein Mensch garantieren.

Aber das alles ist nur eine Hypothese. Das kann das Problem sein, muss 
es aber nicht.

Sorg halt mal dafür, dass kein Schmutz auf der Versorgungsspannung sein 
kann, weiil du keine reale Hardware schaltest. Wo nichts schaltet, 
können auch keine Schaltspitzen auftreten. Wenn dann dein µC immer noch 
abschmiert, dann wird es bei einem industriell gefertigtem Board wohl 
eher an deinem Programm als am Board liegen.

>, würde dieser doch reseten, oder lieg ich da falsch?

Bitte nimm zur Kentniss, dass hier keiner Hellsehen kann. Niemand kann 
aus der Ferne beurteilen, was jetzt genau und exakt in deinem konkreten 
Fall das spezifische Problem ist. Es gibt viele Möglichkeiten und 
letzten Endes wirst du selber dem Problem auf die Schliche kommen 
müssen. Schon alleine deshalb weil wir von dieser Seite des Monitors so 
schlecht mit Messgeräten an dein Equipment rankommen, bzw. Dinge 
probieren können.
Wenn du den Verdacht hast, dass du mit zuvielen Verbrauchern deinen µC 
überlastest, dann nimm einige Verbraucher weg, sodass du sicher nicht 
mehr knapp an der Grenze bist. Wenn dann das Problem weg ist, dann ist 
das zumindest mal ein deutlicher Fingerzeig, wohin die Reise gehen 
könnte.
Das ist doch nicht so schwer - wenn du µC arbeiten willst, dann wirst du 
nicht umhin kommen, auch mal selber dir Teststrategien und Möglichkeiten 
zu überlegen, wie du vermutete Problemkreise abklären kannst. Das ist 
ganz normaler Technikerarbeit, das man rausfindet, was eigentlich los 
ist. Und ja, manchmal kommt einem die Intuition und der Zufall zu hilfe. 
Wenn man aber nur rumsitzt und nichts tut, ändert sich nichts und man 
findet nichts raus.



> Was mich eben wundert ist,
Wenn (und ich betone: wenn) die Hypothese stimmt, dass du Spikes auf der 
Versorung hast, dann kann alles mögliche passieren. Ein Betrieb 
ausserhalb der Spezifikationen ist nun mal per Definition 'nicht 
spezifiziert, worauf man vertrauen kann und worauf nicht'.

von Karl H. (kbuchegg)


Lesenswert?

Man kann auch mal ein Testprogramm schreiben, dessen einzige Aufgabe es 
ist, wie ein Wilder alle Relais durchzuschalten, in systematisch 
koordinierten Sequenzen, in zufälligen Sequenzen, alle auf einmal, einen 
nach dem anderen und mal nachsehen, ob sich da was tut.
Testprogramme sollen einfach sein, damit man die Wahrscheinlichkeit 
drückt, im Testprogramm selber einen Fehler zu haben. Man will ja 
schliesslich einen spezifischen Punkt testen (in deinem Fall: spezielle 
nicht näher bekannte Kombinationen von Schaltvorgängen lassen das System 
abschmieren) und nicht erst stundenlang ein Testprogramm debuggen, bis 
man zum eigentlichen Test vordringt.

: Wiederhergestellt durch User
von Peter R. (pnu)


Lesenswert?

asdf a. schrieb:
> Was mich eben wundert ist, dass der µC hängen bleibt und die
> Ausgangswerte beibehält. Wenn die Versorgungsspannung des µC
> zusammenbricht, würde dieser doch reseten, oder lieg ich da falsch?

ja, schon.

Für den Fall des Spannungseinbruchs hat man ja die brown-out-Technik 
eingeführt. Dort wird bei Unterspannung ein reset ausgelöst.
ältere Kontroller stürzen bei Unterspannung einfach ab.

Was die Abstürze des Programms angeht, ein Tipp:

Kaffee ohne Filter kochen und in eine Tasse gießen. Den Satz 
anschließend untersuchen.
Dort hast Du die gleiche Chance die Lösung des Rätsels zu finden wie 
wir.

Wer im Kaffeesatz lesen KANN, ist eindeutig im Vorteil, wir könnens 
nicht.

von MiWi (Gast)


Lesenswert?

asdf a. schrieb:

>
> Bei dem µC Board handelt es sich um das Evaluation Board FiOStd von
> Aimagin. Dort ist ein Spannungsregler drauf, der 3,3V bis 800mA ausgibt.
> Ob die Spannung immer sauber ist, kann ich nicht 100%ig sagen. Vom
> Leistungsvermögen ist der Regler auf jedenfall genug.

Strommäßig vielleicht, aber thermisch? 12V-3,3V machen auch bei nur 
wenigen mA schon genug Ptot, die bei den üblichen PCB-Kühlflächen 
solcher Regler eher.... schnell kritisch werden.

>
> Aufbau sieht so aus, dass ich direkt aufs vom µC PWM Ausgang (10Hz) aufs
> SSR gehe. Dessen Eingang ist lediglich ein Optokoppler mit R. Und ja,
> ich schalte mehrere auf einmal.

Welchen R für die LED?

>
GGfs ist dem U-Regler schon so recht warm? Wenn Du dann schaltest kann 
quasi die interne Übertemperatursicherung ansprechen und Deine 3,3V 
waren 3,3V.... Mag der uC aber nicht wenn die nicht sind was sie sein 
sollen.

Wie gesagt, die Glaskugeln sind alle ob Deiner Schaltplanverweigerung 
etwas trüb....

Grüße

MiWi

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.