Arduino Uno mit Bascom über Bootloader nutzen

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

    • Arduino Uno mit Bascom über Bootloader nutzen

      Das hier soll kein "BASCOM ist besser als Arduino" oder umgekehrt werden sondern einfach nur zeigen wie man einen Arduino UNO mit Bascom nutzen kann. Gerade vielleicht für Leute interessant die Bascom einfach einmal probieren wollen ohne grossartig zu investieren. So ein UNO R3 mit gesockeltem Amega328P und ATmega16U2 als USB wandler bekommt man ab ca 6 EUR, ein Programmer ist nicht notwendig. Vorteil ist auch das man sich nicht mit den Fuses beschäftigen muss, die kann man über den Bootloader nicht ändern. Den Atmega328P auf dem UNO bekommt man mit der Beschränkung auf 4K Programm der Demo nicht voll.
      Getestet mit der aktuellen Bascom Demoversion 2.0.7.5 , einem frisch erworbenem UNO und frischem Windows7.

      Zuerst Installieren wir Bascom und die Arduino Programmierumgebung von hier: arduino.cc/en/Main/Software . Ich empfehle die: Windows ZIP file for non admin install, gebraucht wird eigentlich nur der Unterodner drivers. Zip entpacken reicht bei der non admin Version.
      Jetzt erst Arduino UNO am PC anschliessen, Windows wird einen Treiber suchen und keinen finden, Treiber dann manuell installieren, liegen unter ...\arduino-1.6.13\drivers .
      Im Gerätemanager nachschauen unter welchem COM port sich der UNO installiert hat, den COM port merken. Auf dem UNO ist standardmässig ein Blinkprogramm installiert, die LED mit der Bezeichnung L blinkt im Sekundentakt sobald Strom (z.b.per USB) anliegt.
      3. Bascom starten, unter Options\programmer braucht der UNO dies hier:
      bild4.PNG


      Nun ein kleines testprogramm, kopieren und kompilieren.


      BASCOM Source Code

      1. $regfile = "m328pdef.dat"
      2. $crystal = 16000000
      3. $hwstack = 40
      4. $swstack = 16
      5. $framesize = 32
      6. baud = 4800
      7. Config Portb.5 = output 'Konfigurieren des Ausgangs der Onboard LED
      8. dim Durchlauf as Byte 'Variable fuer Durchlaufe setzen
      9. Durchlauf = 0 'Durchläufe auf null setzen, default ist 255
      10. Print "Bascom Test auf Arduino UNO R3"
      11. Wait 1
      12. DO 'start der schleife
      13. Print "durchlauf Nr "; durchlauf
      14. print "LED an"
      15. portb.5 = 1 'LED einschalten
      16. print "Warten 1 sekunde"
      17. wait 1
      18. print "LED aus"
      19. portb.5 = 0 'LED ausschalten
      20. wait 2
      21. print "Warten 2 sekunden"
      22. incr durchlauf
      23. loop 'ende der Schleife, zurueck zum anfang der Schleife
      Display All



      Nun sollte sich das Programm mit der Brennfunktion von Bascom Brennen lassen.
      Erster unterschied ist das die LED jetzt nun 1 Sekunde an ist und 2 Sekunden aus bleibt. Zweiter test ist die serielle ausgabe der print befehle.
      Dazu in Bascom den Terminal Emulator starten, den gemerkten COM Port vom Gerätemanager einstellen und die serielle Geschwindigkeit passend zum Programm (4800) einstellen:
      bild5.PNG



      Jetzt sollte der UNO auch mit uns kommunizieren:
      bild6.PNG

      Somit einfach und günstig das erste "Hello World" mit Bascom produziert.

      Eigentlich macht sich sowas besser im Wiki, da kann man sowas bestimmt noch genauer erklären. Was nicht ist kann noch werden, hab noch ähnliches für den Mega2560, der ist ein bisschen anders.
      Wenn thematisch nicht ins Programmerforum passt bitte verschieben.

      Tobias

      The post was edited 1 time, last by stefanhamburg: BASCOM und Arduino kann man ruhig ausschreiben. Muss nicht mit B... und A... abgekürzt werden. ().

    • Drei Dumme - ein Gedanke...
      Die Arduino-Clones sind mittlerweile richtig preiswert zu bekommen.
      Und sooo klein!
      Wer den Platz des Bootloaders dennoch braucht, kann den via ISP und einem anderen Programmer überschreiben.
      Dann ist aber kein Zugriff via Arduino-Programmer mehr möglich!
      Heisenberg bei einer Radarkontrolle:
      Polizist: "Wissen Sie, wie schnell Sie waren?"
      Heisenberg: "Nein. Aber ich weiß genau, wo ich jetzt bin!"

      The post was edited 1 time, last by stefanhamburg: Arduino kann man ruhig ausschreiben. Muss man nicht mit A... abkürzen. ().

    • Mechanic wrote:

      Ich habe gerade einen China-Clone des Uno benutzt. Der hatte auch den Arduino-Bootloader, man musste ihn aber mit 57600 Baud ansprechen.
      Ja, in der Übertragungsgeschwindigkeit differieren die CN-Clones häufig. Kleines Problenchen im Vergleich mit der Ersparnis.
      Heisenberg bei einer Radarkontrolle:
      Polizist: "Wissen Sie, wie schnell Sie waren?"
      Heisenberg: "Nein. Aber ich weiß genau, wo ich jetzt bin!"

    • Wie geht das mit den Mega 2560 Arduinos?
      Ich habe ein "einwandfrei funktionierendes Gerät" auf Com3 -
      nur Bascom will nicht mal den µC identifizieren.
      Alle Baudraten gecheckt.
      Heisenberg bei einer Radarkontrolle:
      Polizist: "Wissen Sie, wie schnell Sie waren?"
      Heisenberg: "Nein. Aber ich weiß genau, wo ich jetzt bin!"

    • Ich hab' die Erfahrung gemacht, wenn das nicht auf Anhieb geht, bascom mal beenden und neu starten, dann ging es mit einer Einstellung, die beim Probieren auch schon mal verwendet wurde. Also immer bascom beenden und nach dem Neustart die Einstellung ändern und testen, oder einstellen - beenden - Neustart und testen. Zuviel verändern bringt was durcheinander.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Hallo Mike,

      ich war artig, nicht hektisch - quasi die Ruhe selbst. Ooommmmmmmm.....
      Nochmals das Gerät neu installiert:

      Ardu_Com-Port.jpg

      Sieht gut aus. Warum jetzt der COM-Port von 3 auf 4 gewechselt hat - I don't know.

      In Bascom als Programmer "ARDUINO" ausgewählt und sämtliche Baudraten getestet.
      Mit Bascom-Neustarts.

      Ergebnis:

      Ardu_Fehlermeldung.jpg

      Ich bin ziemlich ratlos.

      LG
      Mathias
      Heisenberg bei einer Radarkontrolle:
      Polizist: "Wissen Sie, wie schnell Sie waren?"
      Heisenberg: "Nein. Aber ich weiß genau, wo ich jetzt bin!"

    • Jetzt hab' ich mal eine Frage: wenn ich einen Arduino mit bootloader habe, die bauds durch probieren herausgebracht habe, kann ich jetzt an dessen Rxd und Txd ein entsprechen konfiguriertes bluetooth modul anflanschen und mein Programm einfach darüber in den Kontroller kriegen? Die Verbindungen zum Usb-Teil müsste evtl, gekappt werden?
      Raum für Notizen

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

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

      Jetzt hab' ich mal eine Frage: wenn ich einen Arduino mit bootloader habe, die bauds durch probieren herausgebracht habe, kann ich jetzt an dessen Rxd und Txd ein entsprechen konfiguriertes bluetooth modul anflanschen und mein Programm einfach darüber in den Kontroller kriegen? Die Verbindungen zum Usb-Teil müsste evtl, gekappt werden?
      Im Prinzip ja... ABER, wenn auch nur ein Byte bei der Übertragung falsch oder fehlerhaft ist, war es das...
      Zu Neuflashen musst du den Bootloader anspringen. das kann man per Software im laufenden Programm auslösen. Wenn das System aber nicht mehr arbeitet, durch vorangegangene fehlerhafte übertragung, ist es vorbei.
      Ich habe ein neues System immer erst in einen Speicherbaustein reingeschoben und per Prüfsummen gecheckt. Wenn alles ok war, wurde das dann vom externen Speicher (z.B. External Serail Flash) ge-flasht.
      Code first, think later - Natural programmer :D
    • Ist das nicht bei jedem flash-Verfahren so?
      Wäre es denkbar, im Programm eine Routine einzubauen, die den flash zu eine Prüfsumme zusammen führt und mit der übertragenen, vorher berechneten vergleicht? Wenn alles passt, kurzes Ledgeblinke, ansonsten Dauerlicht.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • So wie es wohl bei den kommerziellen Geräten gemacht wird. Wenn man aber die popeligen bootloader verwenden will, dann muss man wohl mit Misserfolgen rechnen. Aber kaputtmachen, kann man ja nix, muss man halt neu flashen.
      Raum für Notizen

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

      -----------------------------------------------------------------------------------------------------
    • Wie meinst du das mit 'aufhängen'? Kann der bootloader durch das Programm beschädigt werden? Kann das kaputte Programm den reset außer Kraft setzen?
      Raum für Notizen

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

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