Forum: Mikrocontroller und Digitale Elektronik Arduino M0 Pro Reset Serial


von Patrick B. (Gast)


Lesenswert?

Moin Moin,

ich habe momentan ein kleines Problem mit dem Arduino M0 Pro und der 
seriellen Verbindung. Es werden über den Arduino diverse Signale analog 
eingelesen und dann über die Serielle- Schnittstelle ausgegeben. 
(Programming Port) Problem ist wie folgt: Der Arduino ist an dem PC 
angeschlossen. Dann wird der PC hochgefahren und über z.B. das Programm 
HTerm oder eine eigene VB.net Software die Kommunikation mit dem Arduino 
hergestellt. Nun wird eine Anfrage an den Arduino gesendet, dass er die 
Daten ausgeben soll. Dies macht er aber nicht es kommt rein gar nichts 
zurück! Erst wenn ich manuell einmal den "Reset- Button" betätige klappt 
alles einwandfrei! Laut diversen Beiträgen aus Foren soll der Arduino 
beim setzen des "DTR" Sigals einen Reset durchführen. Ich habe aber das 
Gefühl das dies mein Aruino nicht macht! Wo liegt mein denkfehler? Kann 
ich den Arduino M0 Pro irgendwie dazu bewegen sauber zu starten bzw. ihn 
per serieller Schnittstelle einmal sauber resetten?

Vielen Dank für eure Hilfe! :)

Schönen Abend!

von Frank (Gast)


Lesenswert?

Du könntest auch den Watchdog verwenden:
Es muss vom PC alle x Sekunden eine Anfrage kommen und richtig 
interpretiert werden. Dies setzt dann in deinem zu schreibenden Arduino 
Programm den Watchdog zurück. Wenn nichts kommt oder eine falsche 
Anfrage, dann läuft der Watchdog über und resettet den UC.

von Patrick B. (Gast)


Lesenswert?

Ja natürlich das wäre nun auch mein nächster Ansatz aber ich kann es mir 
nicht erklären warum dieses Verahlten überhaupt auftritt. Es kann doch 
nicht sein das ich den Arduino mit Spannung versorge und dann nachdem er 
hochgefahren ist ihn nochmal reseten muss. Irgendwas muss ich doch da 
übersehen.

von Lothar (Gast)


Lesenswert?

Patrick B. schrieb:
> Es kann doch nicht sein das ich den Arduino mit Spannung versorge
> und dann nachdem er hochgefahren ist ihn nochmal reseten muss

Kenne den M0 Pro nicht aber bei anderen Arduino blockiert nach Strom an 
der Bootloader erst mal für ca. 6 sec und startet dann erst den User 
Code.

Beim M0 Pro soll aber ein Debugger drauf sein d.h. man kann den 
Bootloader entfernen und darüber flashen. Dann wird der User Code 
natürlich sofort gestartet.

von Marco H. (damarco)


Lesenswert?

Da ist doch ein debugger mit oben, einfach schauen wo er im Code hängen 
bleibt.

Möglicherweise hängt er im Bootlader. Reset an sich auslösen geht wohl 
nur im Zusammenhang mit einen Löschen des Flash.

Nicht unbedingt. Wenn der Flash leer ist landet er im Bootloader, da der 
M0 keinen ROM hat liegt dieser unterhalb des Programmcodes.

Jetzt müsste man in das Linker Script schauen aber ich glaube kaum das 
dieser überschrieben wird. Denn dann wäre das Board per Native USB Port 
nicht mehr programmierbar.

Der Debugger löst einen Hardreset und Erase aus und beschreibt dann den 
Flash. Womöglich oberhalb des Bootladers ;)

Offenbar hat das Debugger Interface zwei USB Treiber zur Verfügung. Den 
Serial Port und EDBG.


An den RX/TX LEDs am Board kann man ja schauen ob überhaupt Daten zu dem 
SAMD gehen. Wenn ja liegt es wirklich am Programm bzw. Bootloader.

: Bearbeitet durch User
von Draco (Gast)


Lesenswert?

Kann es sein das ein BrownOut Detection zuschlägt und somit ein Reset to 
Bootloader ausführt?

von Frank (Gast)


Lesenswert?

Oder er fängt sich beim Start des PC irgendwelche Zeichen ein die er 
nicht verträgt. Also im Bootloader oder im normalen Programm.

von Marco H. (damarco)


Lesenswert?

Nun ja der Bootloader schaut ob auf der Serial bzw. USB was kommt. Im 
Normalfall sollte der Bootloader nur starten wenn der Flash leer ist.

Es gibt einen Pin der den Flash löscht und dann nach dem Reset wird der 
Bootloader gestartet.

Da nach einen Reset es ja läuft ist er unwahrscheinlich das er im 
Bootloader verbleibt.  Ursache ist wahrscheinlich das die Serielle 
Schnittstelle nocht nicht richtig initialisiert wurde USB oder im M0.

Deswegen mal schauen ob sich an den RX/TX Leds was  bewegt.

: Bearbeitet durch User
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.