Problem mit Mega2560-R3-Board

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

    • Problem mit Mega2560-R3-Board

      Hallo,
      es gibt schon etliche Threads zum Mega2560, die mir nicht weitergeholfen haben. Deshalb diesen neuen Thread. Ich benutze ein Mega2560-R3-Board von Elego. Die USB-Verbindung regelt ein ATMEGA 16U2. Mit dem Arduino-Editor habe ich dafür unter Win7 den nötigen Treiber installiert. Das Board lässt sich mit dem Editor über USB ansprechen und programmieren. Der Kontakt von Bascom zum Board gelingt mit der Einstellung Arduino STK500V2, wie im Forum beschrieben. Das Programmiergerät ist ein Diamex USB ISP-Programmer für Atmel AVR, Rev.2, der laut Beschreibung für alle AVR-Controller, die die SPI-Programmierschnittstelle unterstützen, zu gebrauchen ist.
      Das Board wird unter Bascom erkannt. Im Menü gibt es die üblichen Bottons, allerdings ohne die Option Fuses. Ich kann den Buffer löschen und mit einer .bin- oder .hex-Datei laden. Die Anweisung Buffer in den Chip übertragen wird anscheinend ausgeführt. Danach reagiert das Board nicht mit dem neuen Programm (ganz einfaches, nur Port blinken). Die Kontrolle mit "Buffer vom Chip füllen" ergab nichts, aber nach dem Verlassen des Flash-Versuch erschien die Meldung:
      "There was an error during the execution of this program.
      The application might become unstable and even useless.
      It's recommended that you save your work and close this application.
      Access violation at address 00403713 in module 'bascavr.exe'. Write of address 7EF0AE18."
      Demnach sollte ich die Adresse 7EF0AE18 beschrieben haben. Eigentlich wollte ich ja wie erfolgreich üblich mit dem Uno-Board (Atmega 328p) den Bascom Bootloader für Mega2560 über ISP mit der Einstellung STK500 native Driver aufspielen und dann die USM-Schnittstelle nutzen. Wenn das nicht geht, würde ich mich ja auch mit der ISP-Programmierung begnügen.
      Nun bin ich mit meinem Latein am Ende und hoffe auf Eure Hilfe. Hat jemand erfolgreich dieses Board unter Bascom programmiert - und wie.
      Mit freundlichen Grüßen
      Bert
    • Hm, normalerweise verwendet man den auf dem board vorhandenen bootloader um ein compiliertes bascom-Programm zu flashen. Dazu ist kein programmer nötig, nur die USB-Verbindung. Es stimmt, dabei kommt man an die fuses nicht ran, die sind aber auch für den bootloader eingestellt und sollten in wichtigen Punkten nicht verändert werden, sonst geht der bootloader nicht mehr. Wenn du das board über Spi und einem Programmer flasht, dann ist der bootloader futsch und du musst auch die fuses auf die Verwendung ohne bootloader einstellen.
      Raum für Notizen

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

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

      The post was edited 1 time, last by tschoeatsch: Statt 'ein' jetzt ein 'kein'. Jetzt ist es so, wie ich es schreiben wollte. ().

    • Noch nicht weiter

      Ich benutze den Diamex-Programmer über ISP. Ich glaube nicht, dass der originale Bootloader zerstört ist. Ich kann den Chip über USB mit dem Arduino-Editor ansprechen und programmieren. Mit dem Uno-Board konnte ich über ISP und Diamex mittels STK500 native Driver programmieren, den Bascom-Bootloader aufspielen und kam auch an die Fuses ran. Die brauchte ich eigentlich nicht, da die Fuses bereits beim Hersteller für einen Bootloader eingestellt waren. Das neue Board reagiert aber mit dem STK500 native driver überhaupt nicht, auch der sonst übliche MCS Bootloader mittels USB funktioniert nicht. Nur der Arduino STK500V2 mittels ISP funktioniert teilweise. Er erkennt zwar den Chip, ich kann ihn aber nicht programmieren.
      Neu ist an dem Board, dass der übliche CH340-Treiber o.ä. durch den ATMEGA 16U2 ersetzt ist. Macht der das Problem für Bascom?
      MfG Bert
    • Wenigstens ISP geht jetzt

      Danke an alle, die sich einen Kopf gemacht haben! Ich habe ein neues Board genommen, dort funktionierte der STK500 native Driver. Tschoeatch hatte recht, dass ich beim Aufspielen eines Programms den ursprünglichen Bootloader lösche. Das ist mir auch passiert, als ich den passenden Bascom-Bootloader aufspielen wollte. Kurioserweise konnte ich beobachten, dass beim Laden in den Buffer von 0 bis 256 kB durchweg nur FF geladen wurde. Die Hex-Datei ist aber ok. Das heißt, ich habe keinen Bootloader mehr drauf. Aber: Gott sei Dank kann ich über ISP programmieren. Ist zwar langsamer als über USB, aber es geht.
      In den nächsten Tagen kommt ein 1,8-Zoll-Display. Dafür ist das neue Board gedacht. Mal sehen, ob das Display mit dem Code von Hkipnik funktioniert. Wenn ja, schon mal herzlichen Dank. Der Code ist zwar für den m1280, der Mega2560 dürfte aber ebenso gehen. Hat ja den doppelten Flash. Die Pins müssten wohl auch stimmen.
      Noch einen schönen (Wahl-)Sonntag
      Bert
    • Ja, Du hast recht!
      Nun noch etwas eigenartiges. Ich habe mir aus dem Internet die Arduino 2560 Bootloader-Hex-Datei besorgt. Die konnte ich beim besten Willen nicht aufspielen. Mit Tricks habe ich aus einem Board mit intaktem Bootloader die Hex-Datei ausgelesen und wieder als Hex-Datei auf dem PC gespeichert. Beim Öffnen mit dem PC war der Hex-Code zu sehen. Dann beim flashen über ISP wurde diese Datei nicht eingelesen. Alles nur FF. Es ist, als ob das Board den Bootloader-Bereich blockiert. Das kenne ich z.B von der 6808-CPU, mit der man einen geschützten Bereich anlegen konnte.

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

    • Hallo schoeatsch!
      Das habe ich gemacht, aber es brachte ja nichts. Jetzt habe ich einen weiteren Trick angewendet. Vom Board mit intaktem Bootloader wurde mit ISP der Code in den Buffer geladen. Dann habe ich "heimlich" den ISP-Stecker gelöst und auf das andere Board gesteckt. Nun wurde mit "Buffer in den Chip laden" der originale Bootloader samt Blinkprogramm übertragen. Geduld zahlt sich eben aus. Meinst Du, dass ich jetzt mit Arduino STK500V2 das Board mit Bascom über USB flashen kann? Nicht, dass dann wieder ein Malheur geschieht!
      MfG Bert
    • MCS-Bootloader geht

      Danke für diesen Tipp. Aber bisher gelang es mir ja nur, den Arduino Bootloader neu zu installieren. Um unter Bascom mit dem MCS Booloader zu arbeiten, muss der Bascom MCS-Bootloader aufgespielt werden. Ich habe noch einmal meine Vorgehensweise überdacht und einen Fehler in der Datei gefunden, den ich selbst verursacht habe.
      ' (c) 1995-2015, MCS
      ' Bootloader.bas
      ' This sample demonstrates how you can write your own bootloader
      ' in BASCOM BASIC
      ' VERSION 2 of the BOOTLOADER. The waiting for the NAK is stretched
      ' further a bug was resolved for the M64/M128 that have a big page size

      Mit diesem Programm kann man den Bascom Bootloader installieren und damit wie gewohnt mit USB arbeiten. Alle anderen Varianten mit dem Arduino-Bootloader funktionieren nicht, auch nicht mit dem Uno-Board. Bascom will den MCS-Bootloader, Arduino den seinen.

      Mit freundlichen Grüßen und Erleichterung
      Bert
    • Bert wrote:

      Um unter Bascom mit dem MCS Booloader zu arbeiten, muss der Bascom MCS-Bootloader aufgespielt werden.
      Muss er nicht. Es geht auch mit dem Arduino-Bootloader. Ich habe auch ein Mega2560 R3 Board und es geht auch mit dem originalen Bootloader und Bascom.
      Allerdings muss bei manchen Boards von dem flashen RESET gedrückt werden.
      Eine Lösung habe ich nicht, aber mir gefällt Ihr Problem.