PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino Nano Neustart Bootloader Problem



fucktheking
04.04.2016, 12:26
Hallo zussammen,

bin neu hier auf dem board und finde das forum toll und würde gerne info erhalten und sobald ich erfahrener bin auch gerne weiterhelfen.

ich hab mir mal die Beiträge hier durchgelesen aber konnte zu meinem Problem noch nicht das richtige ergebnis finden.

Ich habe mir einen Arduino Nano Clone bestellt und habe nach USB Treiberinstallation auch den entsprechenden Port zugewiesen bekommen und konnte den Arduino "sehen".
Darauf hin habe ich mit der Arduino IDE ein kleines Programm LED 13 Blinkprogramm geschrieben, wie es auch in dem Sketchbook Beispiel gibt.
Zusätzlich zum blinkenloop habe ich noch in der setupfunktion ein kurzes blinken (andere frequenz) aufgerufen, um zu sehen, dass die setup() ausgeführt wurde.
Über die IDE kompiliert und hochgeladen. Es kamen irgendwelche Fehler (habe ich nicht gespeichert). Das Programm lief wurde kurz und wurde dann wieder abgebrochen.

Das passierte nach jedem hochladen... da ich auch in dem Mikrocontroller Thema neu bin dachte ich, ok.. vllt. ein Bootloader Problem und habe mir einen Usbasp Programmer gekauft, weil ich davon ausgegangen bin, dass alles Neu geflashed wird und ich dadurch mit einem gesäuberten Arduino wieder von vorne beginnen kann. Habe nun also mit dem Programmer über die IDE neu gebrannt.

Jedoch gibt es nun das Problem, sobald ich den Arduino mit usb verbinde, startet das Programm wie ich es damals geschrieben habe mit setup blinken und void loop blinken (andere frequenz).
Dann habe ich ein ganz anderen programm geschrieben, welche mir über den RX eingang verschiede daten liest und mit kurzem aufleuchten der LED 13 reagiert.
1. Arduino per USB angesteckt, setup geladen, arduino befindet sich im loop und die LED 13 blinkt.
2. Ich lade das neue programm (LED 13 RX eingang blink) über die Arduino IDE hoch und nach kurzem erfolgreichen hochladen ist die LED aus und der loop wartet auf die RX Daten. Sobald Daten kommen arbeitet alles richtig und die gelesenen Daten werden in ein kurzes aufblinken umgewandelt.
3. ich trenne die usb verbindung und stecke wieder neu an.
UND jetzt kommt das komische
4. Der Arduino startet, das setup blinken kommt, und er geht in den loop. Jetzt blinkt die LED im takt wie bei dem ersten Programm. Sobald ich dann über den RX eingang signale anlege werden diese auch richtig gelesen und die LED reagiert mit aufleuchten.

Es sieht so aus, als ob beide Programme miteinander verbunden wurden.
Ich habe leider keine Ahnung, was genau hier vorgegangen ist. Finde auch keinen Beitrag wo ich verstanden habe wie man den kompletten Speicher dauerhaft flashed.

Wenn mir jemand helfen könnte, oder eine Ahnung hat was hier vorgegangen ist, würde ich mich sehr freuen :rolleyes:

Rabenauge
04.04.2016, 20:16
Erstens: versuch es mit richtigen Sätzen, so ganz schlau werd ich aus dem Kauderwelsch nicht.
Zweitens: Als Anfänger FINGER WEG vom Bootlader!
Pfusch da nicht rum, die Chance, den Arduino damit ins Jenseits zu befördern ist grösser als die, irgendwas zu retten.
Drittens: der Nano ist als Einstieg, sagen wir mal, suboptimal. Besorg dir erst mal nen UNO.

Drittens: die Programme bitte- meine Glaskugel sagt nämlich: wird schon irgend was sein....

stecdose
05.04.2016, 13:42
So schwarz wie Rabenauge sehe ich das nicht. Er hat ja einen richtigen ISP Programmer besorgt. Sobald man den und einen Quarz/Taktegeber hat, kann sich praktisch nicht aus einem AVR aussperren und zum Laufen hat er den nano ja auch gebracht.

Du solltest dich erstmal vergewissern, dass der Chip wirklich leer ist. Lösche ihn komplett und mach einen Verify (wenn der Programmer das nicht automatisch macht).

Dann schreib ein ganz einfaches LED-Testprogramm, welches du mit dem ISP draufschreibst.



#include ...
#include <util/delay.h>

int main() {

DDRx = (1<<Pxx); // LED Pin auf Ausgang stellen

for(;;) { // endlosschleife
_delay_ms(50);
PORTx |= (1<<Pxx); // pin = 1
_delay_ms(50);
PORTx &= ~(1<<Pxx); // pin = 0
}

}


Dann suchst du dir im Netz ein passendes Nano-Bootloader-Image und schreibst das per ISP. Dann versuchst du dich mit dem Bootloader zu verbinden.

Ich empfehle avrdude direkt zu verwenden zum Fehler suchen, man weiss was passiert und kann vieles direkt ausschliessen. Doku gibt's genug, solltest du damit nicht weiterkommen, kann ich dir dazu auch Tipps geben.

fucktheking
06.04.2016, 15:23
EDIT---
Ok leute,, ich glaube ich werde mir in ein paar sekunden selbst eine klatschen :-D

habe gerade wieder den usbasp + NANO angeschlossen, der ja den nano nur mit 5V versorgt und hier funktioniert das programm sowie der arduino einwandfrei.
ich habe es nicht gecheckt, dass wenn ich direkt per USB anschließe, er anscheinend immer in einen "anderen modus" geht und erstmal die LED blinkt und der Arduino auf uploads oder ähnliches wartet. (keine Ahnung) vielleicht kann dass einer hier kurz erklären ?

ohhhhh wehhhh.. ich noch viel lernen muss...

danke schonmal für die antworten und die hilfe...

Rabenauge
06.04.2016, 20:12
Er geht in keinen anderen Modus- erstartet nur zuerst den Bootlader und wartet, ob ihn jemand neu programmieren will.

fucktheking
07.04.2016, 09:31
i see... danke!!!!

:p