- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Arduino Nano (mit Bootlader) per USB aus BASCOM brennen /RN-Wissen-Artikel

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.04.2005
    Ort
    Hamburg
    Alter
    86
    Beiträge
    64

    Arduino Nano (mit Bootlader) per USB aus BASCOM brennen /RN-Wissen-Artikel

    Anzeige

    Powerstation Test
    Hallo zusammen,
    ich experimentiere seit Wochen mit Arduino-Modulen,um mich in C/C++ einzuarbeiten. Aktuell will ich aber ein BASCOM-Programm per USB und unter Verwendung des Bootladers auf den Arduino Nano mit ATMEGA 328p flashen.
    Heute habe ich nun folgenden Artikel in RN-Wissen gefunden:


    ----------------------------
    Aus RN-Wissen
    „Arduino“
    Man kann aber auch in Bascom ohne Programmer per USB programmieren

    Es lässt sich jedoch auch der ganz normale „Bootloader“ nutzen, der bereits in Arduino kompatiblen Boards schon vorhanden ist. Dazu ist es lediglich notwendig, einmalig einige Einstellungen vorzunehmen.
    Zunächst benötigt man das Programm avrdude. Auf der Robotikhardware.de-DVD ist das bereits fertig entpackt und mit der zugehörigen USB-DLL libusb0.dll zusammengestellt, man braucht also nur den Ordner kopieren! Ansonsten kann man es auch über das Internet laden (link unten), man muss aber darauf achten das man auch die zugehörige Datei libusb0.dll nicht vergisst, man kann sie in das gleiche Verzeichnis von avrdude kopieren.
    1. Zunächt kopiert man den Ordner „avrdude“ mit allen Dateien auf die Festplatte unter C:\
    2. Danach wählt man in Bascom unter Optionen/Programmer die Einstellung:
    Extern Programmer
    Unter Programm wählen man den Pfad, also:
    C:\avrdude\avrdude.exe
    Und unter Parameter geben Sie folgende Zeile an:
    -C c:\avrdude\avrdude.conf -p m328p -P com9 -c arduino -b 115200 -U flash:w:{FILE}:i
    Wenn das Arduino Board nicht an COM9 hängt, muss gegebenenfalls einen anderen COM-Port innerhalb dieser Zeile angeben werden. COM9 muss dann durch z.B. COM3, COM4 usw. ersetzt werden. Das war es, ab nun lassen sich auch unter Bascom die Arduino kompatiblen Boards genauso einfach programmieren wie aus der Arduino IDE.
    --------------

    Das passt nun genau zu meinem Problem. Leider funktioniert aber rein gar nichts..
    Auf der Robotik-DVD finde ich nur eine veralteten avrdude.exe. Die Config-Datei kennt die neueren Prozessoren noch gar nicht.
    Aus dem Internet habe ich dann den neuesten avrdude geladen (avrdude.exe und avrdude.conf, die libUSB0.dll war nicht dabei !).
    Ich habe dann den conf-File mit dem Editor geöffnet. Im Gegensatz zu der Uralt-Version war die Ausgabe nicht zeilenweise strukturiert (kein LF und CR oder Trennzeichen), sondern eine Datei ohne Zeilenbruch. Diese Datei soll man ja ggf. "von Hand" anpassen können. Mit dem normalen Editor geht das auf keinen Fall. Ist das normal, oder ist die Datei kaputt? Ich habe den Download der zip-Datei wiederholt, aber es hat nicht geholfen. Mit Suchen haben ich dann immerhin feststellen können, dass der m328p dabei ist.

    Das Brennen mit F4 führt zum Aufruf von avrdude.exe und Fehlermeldng. Das avrdude-Fenster öffnet sich ganz kurz. Ich kann mit viel Mühe gerade den Hinweis erkennen: Zugriff verweigert. Zum Schluss aber auch: avrdude .... ? done. Wie kann man das sofortige Schließen dieses Fensters (so ein altes DOS-Fenster mit schwarzem Hintergrund) verhindern?

    Kann mir da jemand Nachhilfe geben ? Wo bekomme ich aktuell avrdude-Dateien einsch. libUSB0.dll ?

    Dank im voraus
    jguethe
    Geändert von jguethe (10.01.2015 um 01:05 Uhr) Grund: Fehlermeldung präzisieren

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Zitat Zitat von jguethe Beitrag anzeigen
    Ich kann mit viel Mühe gerade den Hinweis erkennen: Zugriff verweigert.
    Unter Windows ab Vista (Vista ,W7, W8.x) mal prüfen ob im entsprechendem Programmverzeichniss für die Gruppe Users das Recht modify gesetzt ist. Die Execution prevention setzt standartmäßig read, list, execution. Programme die Ihre Config im Programmverzeichniss haben anstelle in "Appdata" in den Userprofilen.

    Zitat Zitat von jguethe Beitrag anzeigen
    Im Gegensatz zu der Uralt-Version war die Ausgabe nicht zeilenweise strukturiert (kein LF und CR oder Trennzeichen)
    Das fehlen von LF und CR wurde mit einem Hexeditor überprüft?

    Der selbe Effekt tritt nämlich auch manchmal auf wenn man eine ANSI Textdatei mit einem ASCII Editor öffnet.
    Unter Windows die Datei mal mit Notepad/Editor (ASCII) und Wordpad (ANSI) öffnen, eventuell wird sie mit einem richtig dargestellt.

    Wenn das der Fall ist, dann die kann man noch versuchen im Editor alles zu makieren und über die Zwichenablage in eine neue Notepad Datei zu kopieren um eine ANSI Datei in eine ASCII Datei umzuwandeln.
    Zum checken, einfach ein Umlaut (Ä,Ö,Ü,ä,ö,ü) mit abspeichern und in einem Hexeditor den Code des Zeichens prüfen.

    Bsp.:
    ASCII "ä" = d132
    ANSI "ä" = d228

    ASCII Tabelle:
    http://www.chip.de/ii/1/2/5/4/9/5/8/...e7009f26b0.png

    ANSI Tabelle:
    http://www.uniplot.de/documents/de/_images/ANSI.png
    Geändert von i_make_it (10.01.2015 um 08:47 Uhr)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.04.2005
    Ort
    Hamburg
    Alter
    86
    Beiträge
    64
    Vielen Dank i_make_it.

    mit Notepad kann ich die avrdude.conf lesbar öffnen. Sie dürfte also technisch ok sein.

    Ich habe mich dann der Einfachheit halber als Administrator angemeldet. Damit war das Zugriffsproblem gelöst. Danke dafür.

    Nun öffnet sich das Fenster mit folgender Fehlermeldung:
    avrdude.exe: stk500_recv(): Programmer is not responding
    avrdude.exe: stk500_getsync(): attempt 1 of 10: not in sync: resp= 0x00
    (wiederholt sich 10x).

    Ich habe es auch mit einem ganz neuen Modul versucht: Ergebnis wie vor

    Kennt sich da wer aus ??

    jguethe

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Als nächste Tests, könnte man mal aus RN-Wissen das Testprogramm für die serielle Ausgabe per ISP laden und dann testen ob über USB (und virtuellen COM Port) in diese Richtung Daten am PC ankommen.
    Dabei kann man dann die COM Ports sowie die Baudrate mal durchprobieren bei der Daten kommen.
    Eventuell ist da eine Abweichung zur im Beispiel genannten Einstellung vorhanden. das müsste man dann in der conf Datei anpassen.

    Da ich mit Arduino noch nicht gearbeitet habe, kann ich leider nicht sagen ob die Einstellung das nach einem STK500 board gesucht wird so richtig ist.
    Beim STK500 handelt es sich ja um ein AVR-Starterkit von Atmel.

    Aber prinzipiell ist der Versuch erst mal eine Ausgabe vom Controller zum PC hin zu bekommen ganz gut, da man damit erst mal die grundlegende Kommunikation testet. Wenn das dann geht, kann man einen ganzen Block an potentiellen Fehlerquellen ausschließen.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    54
    Beiträge
    2.807
    Alternativ kannst Du das in Bascom kompilierte Hex-File anschliessend manuell mit dem Programm Xloader übertragen:
    http://www.hobbytronics.co.uk/arduino-xloader

    Gruß
    Andree

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    12.04.2005
    Ort
    Hamburg
    Alter
    86
    Beiträge
    64
    Danke für Eure Reaktionen.

    @i_make_it
    wenn ich über ISP Programme lade, wird der Bootlader überschrieben. Ob ich diesen wieder laden kann ist fraglich.
    Ich habe schon versucht mit der Arduino-Software den vorhandenen Bootlader zu überschreiben. Offenbar funktioniert das nicht.
    Vielleicht habe ich auch nicht den richtigen Programmer dafür. Ein Nano-Modul ist durch meine diversen Versuche schon unbtauchbar geworden.


    Die Grundsatzfrage bleibt aber: Warum funktioniert der externe Programmer unter Bascom nicht, obwohl ich inzwischen alles 1:1 so umgesetzt habe, wie es im Wiki und auch auf
    der Robotik-DVD detailliert beschrieben ist. Dass in der Fehlermeldung auf das St500 verwiesen wird, ist m.E. kein Fehler. Entscheidend ist wohl,dass die Software die Schnittstelle auf dem Nano nicht erkennt.


    @Andree
    Danke für den Hinweis. Den Xloader hatte ich auch schon mal bemüht, allerdings ohne Erfolg. Nun habe ich es noch eimal probiert und jetzt geht es. Hatte wohl was falsch gemacht.
    Viele Dank für den Hinweis. Dann habe ich versucht, über das Monitorprogramm der Arduino-IDE einen Print-Befehl auszugeben. Das funktioniert nur dann leidlich, wenn ich in der Arduino-Software 38.400 Baud einstelle (im Bascom-Programm 9.600). Die Ausgabe ist aber nicht ganz stabil und verlässlich, zum Debuggen deshalb nur bedingt geeignet. Habe diesbezüglich noch nicht
    gegoogelt. Trotzdem meine Frage: Gibt es ein stand-alone-Monitor-Tool, das man - wie das Nano-Modul - über ein USB-Kabel anschließen kann ?


    gruss an alle
    jguethe

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Andree-HB
    Registriert seit
    10.12.2004
    Ort
    Bremen
    Alter
    54
    Beiträge
    2.807
    ...da sollte jedes Terminalprogramm geeignet sein, z.B.:
    http://www.der-hammer.info/terminal/

    Wenn die Baudrate nicht funktioniert, dann stimmt übrigens mit Sicherheit die Kombination Prozessortakt/Fuseienstellungen nicht!

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    12.04.2005
    Ort
    Hamburg
    Alter
    86
    Beiträge
    64
    @Andree
    inzwischen ist es mir gelungen, den Bootlader wieder auf den Nano (atmega328p) zu brennen.


    Baudrate:
    Unter Bascom habe ich schon öfter die Fuses gesetzt. Habe im Moment aber keinen Programmer, der mit Bascom arbeitet und mir überhaupt mal ausliest, wie die aktuellen Einstellungen sind.
    Aber es muss an den Fuses liegen, denn mir ist aufgefallen, dass der Wait -Befehl unter Bascom sehr ungewöhnliche Ergebnisse ergibt. Also habe ich eine neue Baustelle mit den Fuses. Aber danke für den Tipp
    gruss
    jguethe

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    13.08.2005
    Alter
    59
    Beiträge
    26
    Hallo zusammen, der
    Arduino NANO muss mit 57600 baud
    eingestellt werden.
    Bascom hat jetzt auch intern einen ARDUINO Programmer. Aber ebenfalls umstellen.
    Der Ardruino UNO braucht 115200 baud
    Gruss Robokalle

Ähnliche Themen

  1. Arduino-Bootlader für ATMega16/32
    Von oderlachs im Forum Arduino -Plattform
    Antworten: 14
    Letzter Beitrag: 09.07.2013, 16:55
  2. Syncfehler mit Arduino Nano ATmega328
    Von Sokapex im Forum Arduino -Plattform
    Antworten: 4
    Letzter Beitrag: 26.05.2013, 13:32
  3. Atmega8 Bootloader (USBAsp) brennen mit Arduino Fehler
    Von Black Math im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 24.02.2012, 10:17
  4. USB am Arduino fällt aus; Stromversorgungsproblem?
    Von bjoerng im Forum Elektronik
    Antworten: 12
    Letzter Beitrag: 02.11.2010, 19:44
  5. CCRP5-Artikel auf RN-Wissen
    Von pischke im Forum Robby CCRP5
    Antworten: 3
    Letzter Beitrag: 09.01.2007, 12:36

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen