Arduino Nano über USB programmieren

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Es geht um den bootloader. Wenn der mal weg ist, zB wegen ISProgrammierung, dann kann man sich den mit der Arduino-IDE wieder über ISP auf den Arduino aufspielen. Dann kann man den Arduino wieder direkt mit bascom über seinen Usb-Anschluß flashen.

      Ah, jetzt weiß ich, was du meinst. Probier mal als ersten Befehl in deinen Programm ein wait 1.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • warum so kompliziert über Arduino-Plattform ( heisst das so ) den Bootloader Brennen. Das kann unser Compiler auch.
      Ich mache dies so. Erstelle ein Programm mit dem 328p (Deklaration , Hardwarestack, Softwarestack , Framesize)
      und eine Do Loop Schleife , fertig.

      '*********************************************
      'Controller - Arduino Nano v.3.0

      $regfile = "m328pdef.dat"
      $crystal = 16000000
      $hwstack = 100
      $swstack = 100
      $framesize = 100
      '----------------------------------------------
      Do
      Loop
      '----------------------------------------------
      End
      '**********************************************

      Rufe per ISP die Brennfunktion auf. Der 328p sollte nun angezeigt werden ( wird grün angezeigt ). Lösche die Eintragung im SRAM mit diesem Radiergummi (Clear buffer ).
      Und rufe dann die BIN-Datei des Bootladers auf mit dem Ordnersymbol ( Load file into buffer ).
      Dann schreiben wir den Bootloader in den Chip mit dem rotem Pfeil ( Write buffer to chip ) oder mit dem grünem Symbol ( Erase and program chip ).
      Jetzt sollte am Arduino Nano 3 mit etwas 1,5 Sekundentakt der Ausgang Pinb.5 blinken.
      So, nun haben wir den Bootlader wieder wo er sein sollte.
      Jetzt den Programmer wieder mit der Arduino Umgebung Einstellen: Com-Port , Baudrate (57600 ist es bei mir) usw .
      (Einstellung ist hier in Threat mehrmals beschrieben worden )

      Ich benutze übrigens den Diamex-Programmer Stick.

      Im Anhang mein ausgelesener Bootloader . Die Endung " .txt " bitte löschen ( Umbenennen ).

      Gruß Mike
      Files

      The post was edited 1 time, last by Helimike0705 ().

    • Der Bootloader ist die Grundvoraussetzung damit er überhaupt via USB/Seriell programmiert werden kann. Wenn der weg ist muß er über die Isp (externer Programmer) wiederhergestellt werden erst dann wird es wieder möglich. Von "natur" aus sprechen AVRs nicht seriell sondern nur ISP(/parallel), seriell müssen sie erst lernen (Bootlaoder).
    • Guten Morgen Helimike,
      ich benutze Bascom (Vollversion) und als Programmer "mySmartUSB light STK500 mode", meine Programme kann ich damit auf den Nano flashen.
      Mit dieser Einstellung wollte ich "Arduino-Bootloader.bin" auch draufspielen, so wie du beschrieben hast habe ich lediglich die Bezeichnung ".txt" entfernt und in Bascom geladen, alle Einstellungen beibehalten.
      Beim flashen kam dann diese Fehlermeldung:
      Files
    • tschoeatsch wrote:

      Ah, jetzt weiß ich, was du meinst. Probier mal als ersten Befehl in deinen Programm ein wait 1.
      Weißt Du wirklich :) ?
      Also, es funktioniert eigentlich bei mir nicht, mit dem Bascom-Programmer zu flashen.
      Es passiert immer das gleiche:
      Habe ich aus der Arduino-IDE geflasht, kann ich mit dem Bascom-Programmer "Chip identify" machen, und das geht meistens. Wenn ich dann "Write Buffer to Chip" mache, hängt das Programmerfenster und ich muss den Stecker ziehen (danach wird's wieder aktiv). Dann wieder ins Arduino gehen, irgendwas flashen, und dann kann ich (meistens) mit Bascom flashen.

      "Probier mal als ersten Befehl in deinen Programm ein wait 1."
      Was hat das Wait 1 mit dem flashen zu tun?
    • Meine Theorie! Zum flashen muß der bootloader erreichbar sein. Es kann ja nach dem Anstöpseln an den Usb ein Programm auf dem Arduino laufen. Ich kann dann trotzdem mein neues Programm flashen. Also komme ich an den bootloader ran, ohne ein reset am Arduino auszulösen. Das klappt aber nur, wenn die serielle nicht zu stark 'arbeitet'. Wenn ich zB in einer Schleife ständig Daten aus der seriellen schiebe, dann tu ich mich sehr schwer, ein neues Programm zu flashen. Auch ein reset klappt da nicht auf Anhieb, wenn sofort die serielle wieder los arbeitet. Mit einer einprogrammierten kleinen Pause nach dem reset, klappt es.
      Ok, jetzt hast du es im Vergleich mit deinem post#64 genauer beschrieben. Da passt meine Theorie nicht mehr so recht, geb' ich zu.
      Deinen Effekt kenn ich bei mir nicht. Da weiß ich jetzt nicht viel dazu, hast du mal ein anderes Usb-Kabel probiert? Ok,hilft auch nicht, wenn es mit der Arduino-Ide geht.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • tschoeatsch wrote:

      Zum flashen muß der bootloader erreichbar sein. Es kann ja nach dem Anstöpseln an den Usb ein Programm auf dem Arduino laufen. Ich kann dann trotzdem mein neues Programm flashen. Also komme ich an den bootloader ran, ohne ein reset am Arduino auszulösen.
      Ich glaube du hast hier einen Denkfehler. Wenn man mit dem Boodlader arbeiten will, muß das Fusebit SELFPRGEN gesetzt sein. Das bewirkt dass nach reset sofort an den Anfang des bootladersectors gesprungen wird. Der dort befindliche bootlader testet nun ob neu geflasht werden soll oder zum userprogramm gesprungen werden kann, dein wait ist da außen vor. Ausgelöst wird bei den Arduino nano's V3 der reset durch DTR--> low bzw. bei V4 durch DTR oder DTS --> low (von den Wandlern usb/ser ttl FT232/CH340). Dein wait 1 wird erst nach dem flashen beim Starten des eigentlichen Anwenderprogramms wirksam.
    • Hm, kann sein, wenn ich aber zB im Arduino ein
      do
      print "123"
      loop
      laufen habe, dann tue ich mir sehr schwer, was anderes zu flashen.
      Ein
      wait 1
      do
      print"123"
      loop
      macht keine Probleme.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo zusammen,
      das Laden des Bootloaders hat anscheinend funktioniert, war alles grün, wenn ich jetzt den Programmer "AVR-ISP" entferne dann muss ich in Bascom in dem Register "Programmer" unter Programmer "External programmer", in dem Feld "Programm "C:\avrdude\avrdude.exe" und unter Parameter

      "-C c:\avrdude\avrdude.conf -p m328p -P com12 -c arduino -b 57600 -U flash:w:{FILE}:i"

      eingeben, der Gerätemanager zeigt mir den Nano an COM12 an.

      Wenn ich jetzt den Nano über die serielle Schnittstelle anstecke, tut sich nichts, ich kann auch nicht mehr "Manuell Programmieren" auswählen.
      was habe ich da wieder falsch gemacht?
    • Hallo,
      die Parameter habe ich geändert, wenn ich jetzt über USB flashen möchte bekomme ich diese Fehlermeldung, hier habe ich auch nochmal meine Einstellungen abgebildet.
      Files