Arduino startet nicht von alleine

Hallo,
ich programmiere meinen original Arduino Mini über den Mini USB-Serial Adapter.
Anschluß auf Steckbrett laut Anleitung, incl. des Kondensators für den automatischen Reset.
Spanungsversorgung via USB.
Wenn ich Sketche direkt kompiliere und uploade, läuft auch alles.

Aber wenn ich den unveränderten Aufbau mittels des USB Kabels an einem USB-Netzteil, also nicht an einen PC, verbinde, dann startet der Arduino nicht. Auch nicht beim drücken des Resetknopfes vom Mini.
Natürlich hatte ich vorher ein Sketch geladen, aber die Kiste läuft nur, wenn ich direkt kompiliere und starte, nicht mehr wenn der Mini einfach nur mit den 5V versorgt wird.

Was mach ich falsch ?

Wenn Du den Mini am PC anschliesst, aber keinen Sketch hochlädst, startet der Sketch dann auch?

Hast Du mal gemessen, welche Spannung Dein USB-Netzteil generiert? Was kriegst Du von 5V an GND?

Nach dem Tip von pylon hab ich mir das nochmal genauer angeschaut:

Wenn ich den Sketch hochlade, geht der Mini. (reset automatisch durch den Kondensator an RTS nach Ende der Übertragung, Standardschaltung nach Anleitung http://arduino.cc/en/Guide/ArduinoMini)
Dann stecke ich das USB-Kabel aus dem PC raus, und direkt wieder an den PC rein, und der Mini geht nicht. Auch nicht nach einem Reset am Mini. Auch nicht, wenn ich das USB-Kabel an einen extern spannungsversorgten USB-Hub stecke.
Also an der Spannungsversorgung an sich liegt es dann wohl eher nicht.
Ich vermute Probleme mit dem Resetsignal an sich. Wird durch den Kondensator an RTS, wenn da dann gar nichts kommt das Resetsignal blockiert ?
Hat da jemand eine Idee wie das zu umgehen ist ? Ich bin noch in der Testphase meiner Schaltungen, und will nicht meinen USB-Serial Adapter entfernen müssen.

Tütenflieger

Wie groß ist der Kondenstor zwischen Reset und RTS?
Mir scheint fast daß Du Probleme mit dem Upload hast und nicht mit dem Reset.
Versuch mal den Kondensator wegzulassen und den Upload manuell zu starten:
Resettaster am mini drücken und gedrückt halten, IDE Sketch kompilieren und uploaden; sobald in der IDE schreibt daß er hochlädt Reset loslassen.
siehe Arduino : How to program Bare Bone Arduino using USB-to-Serial - YouTube
Grüße Uwe

Hallo,
ist ein 100 nF. Direkt nach dem Upload läuft die Kiste ja auch problemlos. Das ist ja gar nicht das Problem.
Halt nur nicht mehr, wenn ich den Sketch nicht aktuell hochgeladen habe, sondern zu einem späteren Zeitpunkt.
Da ich nicht davon ausgehe, daß der interne Flashspeicher seinen Code vergisst wenn ich die Versorgungsspannung unterbreche (gerade so erscheint es aber), vermute ich halt Probleme mit dem Start (also dem Reset).

Gruß,

Tütenflieger

Tütenflieger:
ist ein 100 nF. Direkt nach dem Upload läuft die Kiste ja auch problemlos. Das ist ja gar nicht das Problem.
Halt nur nicht mehr, wenn ich den Sketch nicht aktuell hochgeladen habe, sondern zu einem späteren Zeitpunkt.
Da ich nicht davon ausgehe, daß der interne Flashspeicher seinen Code vergisst wenn ich die Versorgungsspannung unterbreche (gerade so erscheint es aber), vermute ich halt Probleme mit dem Start (also dem Reset).

Prüfe die angeschlossene Hardwareschaltung und den Sketch!

Der Fehler hört sich so an, als wenn Du in der Hardwareschaltung möglicherweise irgendwo PullUp-Widerstände vergessen hast und im Sketch deshalb eventuell "floatende" Eingänge ausgewertet werden, die verschiedene, zufällige Pegel aufweisen können, je nach Zustand des Controllers beim Programmstart.

Ich habe, um Softwarefehler zu vermeiden, nun den Standard Blink-Sketch genommen, und das Ausgangssignal an Pin 13 mit meinem Multimeter betrachtet. Gleiches Problem wie mit meinem vorherigen Sketch., also kein Start bei Versorgung an USB ohne direktem vorherigem Upload des Sketches.

Ich habe dann zusätzlich zum 100 nF Kondensator an RTS noch ein 10k Widerstand an +5V gehangen. Damit geht es sporadisch.
Falls es nicht geht. hilft auch ein Druck auf die Reset-Taste erstaunlicherweise nicht weiter!

Wenn ich dann den 100 nF Kondensator ganz wegnehme, und nur den 10k Pullup Widerstand von Reset an +5V einsetze, dann läuft das Sketch immer bei Anschluß an externes NT oder Hub oder PC.
Damit liegt das Problem m.E. eindeutig am fehlenden Start bzw. Reset Signal beim Anschließen der Versorgungsspannung

Gibt es keine Möglichkeit den USB-Seriell Adapter so mit dem Mini zu verbinden, daß ich ohne Hardwareänderungen entweder direkt ein Sketch uploaden kann und der Mini damit über den Kondensator den Reset bekommt, oder einfach nur eine 5V Versorgung via USB anschließe und der Mini dann auch Resettet wird ?

Tütenflieger

Versuch mal eine Diode (x-belibige Kleinsignaldiode) zwischen Reset und +5V (Katode gegen +5V, paralell zum Pullup-Widerstand) wie beim Arduino UNO vorhanden ist.
http://arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf (Diode D2)
Grüße Uwe

hi,

ist der kondensator denn wirklich notwendig?
wenn ich chips am breadboard programmiere, hab ich an reset auch nur einen 10k-widerstand gegen VCC. programmiere mit einem mkII. ist das mit dem FTDI anders?

gruß stefan

Der mkII ist das nicht ein ISP-Programmierer?
Der FT232 von FTDI ist ein USB-serial Umsetzer der mithilfe des Bootloaders Programme ins Flash schreibt. Der Bootloader muß erst durch einen Reset aktiviert werden.
Grüße Uwe

hi,

der reset ist mir schon klar. der muß ja auch vom mkII ausgelöst werden.

aber ich hab' da nie einen kondensator drin. wozu gehört das dingelchen? und wenn er, wie so oft in elektronischen schaltungen, nur drin ist, weil sonst manchmal irgendwas nicht geht, dann soll er ihn doch weglassen, wenn er stört.

sicherheitsrelevant ist er ja wohl nicht, also kaputt wird nix, wenn er fehlt...

gruß stefan

der reset ist mir schon klar. der muß ja auch vom mkII ausgelöst werden.

Programmierung über den ICSP ist etwas ganz anderes als über die serielle Schnittstelle. Bei der seriellen Schnittstelle soll nur kurz ein Reset ausgelöst werden, dann wird der Bootloader gestartet und dieser kümmert sich um die serielle Schnittstelle. Beim Programmieren mittels ICSP wird die Reset-Leitung durchgehend runtergezogen (während der Programmierung), also muss der Programmer genaue Kontrolle über die Leitung haben, das kurze runterziehen mittels Kondensator genügt nicht. Wäre beim seriellen Sketch-Upload kein Kondensator drin, wäre Reset durchgehend low und somit würde der Upload nicht klappen, weil der Bootloader gar nie gestartet würde.

@OP: Hast Du jetzt mal versucht, Deine Schaltung direkt an den PC anzuschliessen, aber keinen Upload zu tätigen? Was passiert dann? Startet der Sketch? Kannst Du ein Foto von Deiner (ganzen) Schaltung posten?

Ist evtl. der Kondensator kaputt ?
Hast du +5V an Reset, auch wenn der Kondensator noch dran ist, du aber USB nur zur Stromversorgung verwendest?
Wenn der Reset - Pin auf GND ist, ( trotz 10k nach +5V ) kann dein Mini natürlich nicht laufen.
Mein Verdacht ist, dass du das RTS ( oder DTR oder so ) Signal permanent brauchst, was aber ( durch den Kondensator ) nur als Puls kommen sollte...

Hast du mal ein anderes Netzteil versucht?
Es kann sein das es eine gepulste Spannung ausgibt und damit das Arduino nicht klar kommt.

woehrer:
Hast du mal ein anderes Netzteil versucht?
Es kann sein das es eine gepulste Spannung ausgibt und damit das Arduino nicht klar kommt.

Das muß dann aber sehr gepulst sein und das kann man einfach mit einem Multimeter im AC-Berich messen. Alles was über 100mV AC ist ist nicht normal.

Andererseits ein funktionierender Upload und ausführung des Sketsches sofort nach dem Upload würde gegen dieses Szenario sprechen.

Der Arduino UNO hatte mal die Eigenart den Sketch nach den ausschalten zu vergessen aber da war das Problem der Bootolader. Der Nano hat einen anderen, älteren Bootloader.

@michael_x
Wenn der Kondensator kaputt wäre dann müßte der Upload nicht funktionieren. Aber ein Einschalten ohne Kondensator bringt Gewissheit.

Grüße Uwe

Hallo,
da tut sich ja einiges an einem Arbeitstag ;^) Danke für die vielen Antworten!

Das merkwürdige ist, daß ein Betrieb ohne Upload sporadisch läuft, aber halt nicht immer. Das Steckbrett wird beim USB-Kabelumstecken nicht berührt, an einen Wackelkontakt glaube ich hier nicht.
Der Vollständigkeit halber sollte ich evtl. noch dazu schreiben, daß ich den Mini auf dem Steckbrett noch mit anderem Komponenten beschaltet habe, u.a. via I2C Bus. Drum nicht wundern bei dem Photo zum Schaltungsaufbau. Mein Ziel ist halt nicht “Blink”, sondern etwas mehr: Sensoren und Display, etc…

@uwefed: Eine 1N4148 von Reset nach Vcc bringt auch keine Änderung:
@uwefed: Das Netzteil ist ein altes 1A USB NT eines alten iphones. Aber gleicher Effekt ob am NT, an einem extern gepowertem USB Hub, oder direkt am PC.

@pylon: Wenn ich den Standard Blink-Sketch hochlade( 0,5Hz an Ausgang13), läuft alles (Mini über USB vom PC versorgt und mit dem seriell Adapter verbunden). Wenn ich den USB-Stecker dann vom PC abziehe, 5 Sekunden warte, und dann an den gleichen USB-Port des PCs wieder anschließe und nicht den Sketch hochlade, geht der der Sketch nicht mehr.
@pylon: Photos des Schaltungsaufbaus sind angehängt.

@michael_x: Den 100nF Kondensator habe ich mir gerade von einem Bauteiletester bestätigen lassen, und auch durch einen anderen ausgetauscht.

Ich sehe Du hast einen Zweiten Arduino Mini. Macht der Dir die gleichen Probleme?
Wenn nein, ohne noch lange herumzuprobieren, reklamiere das Teil bei Deinem Händler und lasse es Dir umtauschen
Grüße Uwe

Ich stimme uwefed grundsätzlich zu. Das Problem dürfte ein verschossener Bootloader sein, der sich nicht nach ca. 2 Sekunden selbst beendet und den hochgeladenen Sketch startet. Wenn Du also das mit dem Umtausch vermeiden willst, würde ich es mit einem Neubrennen des Bootloaders versuchen. Hast Du einen ICSP-Programmer? Zur Not könntest Du den anderen Mini dafür verwenden, wenn Du einen entsprechenden Sketch hochlädst.

Hallo,

ich habe nun den 2. Arduino Mini eingesetzt. Prinzipiell läuft er damit, auch beim Einsatz mit einem Netzteil
Trotzdem ist etwas faul: Er startet zuweilen erst nach ca. 15 Sekunden nach dem Anschließen (gleich ob PC, Hub oder NT).
Ich habe mir darauf das Resetsignal auf dem Oszi angeschaut:
Beim Sketchupload wird Reset für ca. 2 ms auf ca. 1 V gezogen, so soll es wohl auch sein.
Wenn ich ihn nur an eine Spannungsversporgung ohne Upload einsetze, dann gibt es sporadische kurze Spannungsdrops auf der Resetleitung zu sehen. Siehe Screenshot
Damit wird der Mini wohl während des Abarbeitens von void Setup mehrfach neu gestartet, und erst wenn die erratischen Drops vorbei sind, läuft er.
Hat da jemand eine Erklärung ?
Natürlich ist das nur ein unabgeschirmter Steckbrettaufbau, aber ich habe hier keine besondere EMV-Quelle, Sender (WLAN ist 2 Etagen obendrüber), oder sonstige potentielle Störquellen.
Ich werde jetzt nochmal den Arduino Mini zurücktauschen, und mir bei dem ersten problematischeren Gerät das dortige Resetsignal anschauen.

Mit diesem Ergebnis vermute ich die potentielle Problemquelle wohl eher nicht im Bootloader, kann das aber mal ausprobieren, wenn der längst bestellte ICSP mal aus China eintreffen sollte…

Tütenflieger

Hallo,
ich habe nun die beiden Arduino Minis wieder zurückgetauscht.
Gleiches Problem wie vorher,. bei Betrieb ohne Sketchupload startet er nur in ca. 1 von 10 Versuchen.
Auf dem Reset-Pin sehe ich wie vorher gelegentlich die erratischen Spannungs-Drops.
Aber anscheinend keine Korrelation zu dem Nicht-Starten Effekt. Auch wenn es keine Drops gibt, startet er nicht.

Wenn niemand eine bessere Idee hat, rupfe ich den ganzen Aufbau wieder auseinander, und mache einen Neuaufbau wobei ich mir die Hardware vorher nochmal genau anschaue, und soviel wie möglich gegen anderes aus meinem Fundus austausche (Steckbrett, Kabel, NT, etc.)

Kopfschüttelnde Grüße,

Tütenflieger