PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino (Due): Test auf ausreichend Bordspannung?



HaWe
14.05.2016, 20:35
hallo,
bei meinem Arduino (Due) brauche ich unbedingt einen Test auf ausreichend Bordspannung, da er auf Akkubetrieb läuft, und er hat sich schon mehrfach durch zu geringe Spannung aufgehängt
- und das Programm war dann auch aus dem Flash raus und musste neu hochgeladen werden.

Kann mir jemand bitte erklären, wie ich das möglichst mit eigenen Bordmitteln testen kann?

Mxt
15.05.2016, 07:58
Hallo,

wenn du noch einen Analogeingang frei hast, kannst du einfach mit einem Spannungsteiler die Versorgungsspannung aufteilen und messen. Wegen des großen Eingangswiderstandes des Controllers kannst du grob mit der Formel für den unbelasteten Spannungsteiler rechnen:
http://www.elektronik-kompendium.de/sites/slt/0201111.htm

Beispiel: Deine Versorgungsspannung ist 9V. Nimmst du jetzt z.B. für R1 47 kOhm und für R2 10 kOhm, dann liegt an der Verbindung der beiden Widerstände etwa 1,57 V an. Das wäre auch für den Due im sicheren Bereich.

Durch Umstellung der Formel U2 / Uges = R2 / Rges kommst du an einen Umrechnungsfaktor, womit du auf dem Arduino wieder die Versorgungsspannung in Volt berechnen kannst.

HaWe
15.05.2016, 10:07
hallo,
ich wollte nicht die Versorgungsspannung messen, sondern die Bordspannung, also was an den 5V und/oder 3.3V Pins gerade an Spannung drauf ist.

Mxt
15.05.2016, 11:22
So richtig verstehe ich das jetzt nicht. Aber im Prinzip würde es genauso funktionieren, nur die Widerstände müssten etwas anders gewählt werden, z.B. gleich groß.

HaWe
15.05.2016, 11:27
ja, aber dann misst man ja die eigene <= 3.3V V Bord-Spannung gegen die eigene <= 3.3V Messspannung, ich glaube nicht, dass das dann so signifikant wird vom Ergebnis her.... :-/

Ich dachte eher an so was wie einen internen im ARM M3 (ggf auch in AVRs? ) eingebauten "Spannungs-Watchdog" ... :confused:

Mxt
15.05.2016, 11:44
ARMs von einigen Herstellern haben in der Tat "brown out detection", aber das kann bei dir ja nicht das Thema sein, weil du ausschliesslich Arduino akzeptierst.

Also nochmal: Bei einem Arduino wird die 3,3 und 5 V Spannung durch Spannungsregler gehalten. Das geht solange, bis die Versorgungsspannung einen bestimmten Wert unterschreitet. Es macht also schon Sinn, die Versorgungsspannung zu messen.

Rabenauge
15.05.2016, 11:51
Hm, hat der Due keine interne, geringere Referenzspannung?
"Normale" Arduinos haben noch die 1.1V-Referenz, damit geht sowas auch.

HaWe
15.05.2016, 11:51
ARMs von einigen Herstellern haben in der Tat "brown out detection", aber das kann bei dir ja nicht das Thema sein, weil du ausschliesslich Arduino akzeptierst.
Also nochmal: Bei einem Arduino wird die 3,3 und 5 V Spannung durch Spannungsregler gehalten. Das geht solange, bis die Versorgungsspannung einen bestimmten Wert unterschreitet. Es macht also schon Sinn, die Versorgungsspannung zu messen.
jap, verstehe, da hast du Recht!
Dann also Spannungsteiler für 12V an Batterie, und das werde ich dann auch gleich für den Pi an anderer Stelle mitverwenden.

danke für die Erklärung! 8-)

Peter(TOO)
15.05.2016, 23:50
Hallo,

- und das Programm war dann auch aus dem Flash raus und musste neu hochgeladen werden.
Das sieht eher nach einem anderen Problem aus.
Nur weil die Spannung weg ist, fliegt ein Programm nicht aus dem FLASH-ROM raus!
Das kenne ich nur, wenn Störimpulse auf der Versorgungsspannung auftreten und so FLASH-Inhalte über den Haufen werfenn oder wenn das Programm aus dem Trott kommt und irgendwo im Bootloader landet.

Das eigentliche Problem liegt dann meist im Reset-Teil oder der Spannungsversorgung.

Möglich sind noch Rückspannungen über I/O-Pins, wenn da Signale anliegen, welche aus einer anderen Spannungsversorgung versorgt werden.

MfG Peter(TOO)

Mxt
16.05.2016, 07:41
Das eigentliche Problem liegt dann meist im Reset-Teil oder der Spannungsversorgung.

Das könnte beim Due schon der Fall sein, deswegen bin ich da nicht weiter drauf eingegangen. Manche Due starten auch nicht, wenn man Spannung anlegt.

HaWe
16.05.2016, 09:22
Hallo,
Das sieht eher nach einem anderen Problem aus.
Nur weil die Spannung weg ist, fliegt ein Programm nicht aus dem FLASH-ROM raus!
Das kenne ich nur, wenn Störimpulse auf der Versorgungsspannung auftreten und so FLASH-Inhalte über den Haufen werfenn oder wenn das Programm aus dem Trott kommt und irgendwo im Bootloader landet.
Das eigentliche Problem liegt dann meist im Reset-Teil oder der Spannungsversorgung.
Möglich sind noch Rückspannungen über I/O-Pins, wenn da Signale anliegen, welche aus einer anderen Spannungsversorgung versorgt werden.
MfG Peter(TOO)
Halte ich nach meinem Aufbau für ausgeschlossen, da nur angeschlossen sind:
1. eine LED an 1 kOhm
2. ein Taster über einen internen Pullup
3. ein TFT am SPI Header (samt Vc und GND)
4. ein HC-05 BT Modul an UART RX1/TX1 (Vc und GND über die Due-Spannungs-Pins neben dem Analog-Header)
5. edit, ganz vergessen: 2 analog-Potis an A0 und A1
6. und die einzige Spannungsvrsorgung ist eine 9V - Batterie, die an den 9V DC Stecker geht.

So wie halt immer.

Ich hatte es aber schon 3x beobachtet, dass der Due (ARM Cortex M3, kein AVR !!) mit neuen Batterien dann kein Programm mehr zum starten hatte, falls die zu schwache Batterie zu spät bemerkt wurde und der HC-05 weiter Strom aus den Spannungspins zog.
- schaltet man rechtzeitig ab, lässt er sich anschließend mit neuen Batterien normal neu booten.

Peter(TOO)
16.05.2016, 16:56
Hallo,

5. und die einzige Spannungsvrsorgung ist eine 9V - Batterie, die an den 9V DC Stecker geht.

So wie halt immer.

Ich hatte es aber schon 3x beobachtet, dass der Due (ARM Cortex M3, kein AVR !!) mit neuen Batterien dann kein Programm mehr zum starten hatte, falls die zu schwache Batterie zu spät bemerkt wurde und der HC-05 weiter Strom aus den Spannungspins zog.
- schaltet man rechtzeitig ab, lässt er sich anschließend mit neuen Batterien normal neu booten.
OK, das sind mal weitere Anhaltspunkte!

So ein 9V-Block hat grundsätzlich schon einen relativ hohen Innenwiderstand, welcher mit der Entladung zunimmt.
So ein µC erzeugt einen recht wechselhaften Stromverbrauch, was zu kurzfristigen Spannungseinbrüchen führen kann (ns- bis µs-Bereich) was digitale Schaltungen durcheinander bringen kann.
Dagegen sollte eigentlich die Resetschaltung (Brownout) wirken.
Wie ist die Geschichte bei dir da eingestellt?

Ein grösserer Elko an der Spannungsversorgung sollte auch einen Einfluss haben.

BTW: Was für ein Board ist das und wie wird die Spannung stabilisiert? Wenn man beim 78xx die kleinen Kondensatoren (100-200nF) direkt an Ein- und Ausgang weglässt, werden sie instabil und machen viel ärger bei Impulslasten.

MfG Peter(TOO)

HaWe
16.05.2016, 19:29
So ein 9V-Block hat grundsätzlich schon einen relativ hohen Innenwiderstand, welcher mit der Entladung zunimmt.
ist kein 9V Block, sondern 8x 1.2V NiMH, 2600mAh.


So ein µC erzeugt einen recht wechselhaften Stromverbrauch, was zu kurzfristigen Spannungseinbrüchen führen kann (ns- bis µs-Bereich) was digitale Schaltungen durcheinander bringen kann.
Dagegen sollte eigentlich die Resetschaltung (Brownout) wirken.
Wie ist die Geschichte bei dir da eingestellt?
Ein grösserer Elko an der Spannungsversorgung sollte auch einen Einfluss haben.
BTW: Was für ein Board ist das und wie wird die Spannung stabilisiert? Wenn man beim 78xx die kleinen Kondensatoren (100-200nF) direkt an Ein- und Ausgang weglässt, werden sie instabil und machen viel ärger bei Impulslasten.

da verstehe ich nicht, wovon du redest, es ist halt ein ganz normaler Due, da wird nichts weiter eingestellt.
Aber das Problem ist doch auch schon gelöst, ich messe jetzt einfach die Versorgungsspannung, bis 7V min. ist alles gut.

Peter(TOO)
16.05.2016, 21:23
es ist halt ein ganz normaler Due, da wird nichts weiter eingestellt.

Der original Due ist aktuell Version R3, oder so.

Dazu kommen noch etwa 500 unterschiedliche legale Nachbauten aus China, jeder ein kleines bisschen anders!
Und nicht zu vergessen, die ganzen illegalen Kopien.

Je nachdem ist da auch minderwertiges Material verbaut.

Also DEN Due gibt es nicht wirklich.

Auf alle Fälle ist es nicht normal, dass bei einer Unterspannung das Programm aus dem FLASH fliegt!

Entweder ist da ein Problem in der Hardware oder das Programm schreibt dauernd ins FLASH, sodass es sehr Wahrscheinlich wird, dass ein Reset während einer Schreibprozedur auftritt, was so ein FLASH nicht wirklich verkraftet.

Früher, als FLASH noch Off-Chip war, gab es oft solche Probleme, weil bei einem Reset das Timing nicht gestimmt hat. Da gab es ein paar Fallstricke bei der Hardware, vor allem weil das Resetsignal asynchron ist und die CPU erst ein paar Takte benötigt um das Signal zu erkennen. Die Entwickler haben da fast immer den selben Denkfehler gemacht.

Bei On-Chip FLASH kenne ich als Auslöser eigentlich nur Spannungsspitzen auf der Versorgungsspannung oder halt abgebrochene Schreibvorgänge.

MfG Peter(TOO)

HaWe
16.05.2016, 22:25
Der original Due ist aktuell Version R3, oder so.

Dazu kommen noch etwa 500 unterschiedliche legale Nachbauten aus China, jeder ein kleines bisschen anders!
Und nicht zu vergessen, die ganzen illegalen Kopien.

Je nachdem ist da auch minderwertiges Material verbaut.

Also DEN Due gibt es nicht wirklich.

Auf alle Fälle ist es nicht normal, dass bei einer Unterspannung das Programm aus dem FLASH fliegt!

Entweder ist da ein Problem in der Hardware oder das Programm schreibt dauernd ins FLASH, sodass es sehr Wahrscheinlich wird, dass ein Reset während einer Schreibprozedur auftritt, was so ein FLASH nicht wirklich verkraftet.

Früher, als FLASH noch Off-Chip war, gab es oft solche Probleme, weil bei einem Reset das Timing nicht gestimmt hat. Da gab es ein paar Fallstricke bei der Hardware, vor allem weil das Resetsignal asynchron ist und die CPU erst ein paar Takte benötigt um das Signal zu erkennen. Die Entwickler haben da fast immer den selben Denkfehler gemacht.

Bei On-Chip FLASH kenne ich als Auslöser eigentlich nur Spannungsspitzen auf der Versorgungsspannung oder halt abgebrochene Schreibvorgänge.

MfG Peter(TOO)

nein, es wird nicht in den Flash geschrieben, der ist nur für Code. Beim Due schreibt man üblicherweise Daten auf SD, und ansonsten wird das SRAM genutzt!
Und Spannungsspitzen? Wo sollen die denn plötzlich herkommen?
edit: Die Dues haben im Übrigen, wie Mxt richtig schrieb, eingebaute Spannungsregler, auch für den DC-Anschluss, und der Due (R3) ist seit 2012 unverändert.

Aber das Problem ist ja doch auch nicht der Flash, sondern das rechtzeitige Abschalten, wenn die Spannung sinkt, also was soll's?!

Peter(TOO)
16.05.2016, 23:14
Und Spannungsspitzen? Wo sollen die denn plötzlich herkommen?
Die 5V werden mit einem Schaltregler erzeugt. Da nimmt der Eingangsstrom mit abnehmender Spannung zu und wirklich mit DC arbeitet ein Schaltregler auch nicht.


edit: Die Dues haben im Übrigen, wie Mxt richtig schrieb, eingebaute Spannungsregler, auch für den DC-Anschluss, und der Due (R3) ist seit 2012 unverändert.

Aber das Problem ist ja doch auch nicht der Flash, sondern das rechtzeitige Abschalten, wenn die Spannung sinkt, also was soll's?!
Bei mir liegt seit etwa 1.5 Jahren ein Due auf dem Tisch rum und blinkt lustig vor sich hin. Allerdings über USB versorgt und dem geht auch der Saft aus, wenn der PC abgeschaltet ist. Der verliert das Programm nur, wenn man ERASE drückt.

Ich habe im Datenblatt des NCP1117 nachgesehen, da sollten die Kondensatoren möglichst nahe am IC sein, hat aber dort keine auf dem PCB.

Logischerweise ist bei mir der Schaltregler (IC2) nicht in Betrieb.

MfG Peter(TOO)

HaWe
17.05.2016, 11:15
Die 5V werden mit einem Schaltregler erzeugt. Da nimmt der Eingangsstrom mit abnehmender Spannung zu und wirklich mit DC arbeitet ein Schaltregler auch nicht.
Bei mir liegt seit etwa 1.5 Jahren ein Due auf dem Tisch rum und blinkt lustig vor sich hin. Allerdings über USB versorgt und dem geht auch der Saft aus, wenn der PC abgeschaltet ist. Der verliert das Programm nur, wenn man ERASE drückt.
Ich habe im Datenblatt des NCP1117 nachgesehen, da sollten die Kondensatoren möglichst nahe am IC sein, hat aber dort keine auf dem PCB.
Logischerweise ist bei mir der Schaltregler (IC2) nicht in Betrieb.
MfG Peter(TOO)
Ich verstehe nicht, was das jetzt mit meiner Eingangsfrage zu tun hat, irgendwie kommt mir das wenig zielführend, um nicht zu sagen: an den Haaren herbeigezogen und off-topic vor, genau wie auch deine Aussage zu dem Flash, in den man angeblich geschrieben haben könnte.

Die Frage war, wie man die Bordspannung messen kann, und nach Mxt's Post war es klar: das macht keinen Sinn, man misst besser die externe Versorgungsspannung (Batterie).
Damit ist die Sache klar.

Probier doch einfach mal, mit deinen Antworten etwas näher am eigentlichen Thema zu bleiben.