- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 43

Thema: Probleme mit Bootloader Beispielquellcode

  1. #21
    Benutzer Stammmitglied
    Registriert seit
    06.09.2005
    Ort
    Wiesbaden
    Alter
    43
    Beiträge
    53
    Anzeige

    E-Bike
    .... es liegt wohl aber auch an den USB-Seriell-Adaptern. ICh habe zwei unterschiedliche Fabrikate. Mit dem einen funktioniert der AVRISP nicht richtig (kann Flash schreiben aber nicht verifizieren), dafür funktioniert der Bootloader mit 4800baud. Der andere funktioniert am AVRISP einwandfrei, aber der Bootloader läuft mit dem Ding gar nicht!

    Die Teile scheinen mir irgendwie nicht ausgereift zu sein. Hab letztlich auch ewig versucht ein Oszi per RS232 an den Laptop zu hängen. Mußte aufgeben!

    Es lebe das Experimentieren!!!

    Christoph

  2. #22
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    So,
    ich habe jetzt auch Programmdateien mit Hyperterminal in den Controller geladen!
    Dazu muß die Abfrage des Startbytes im Bootloader gegen eine andere (ich habe einfach eine Taste genommen) ersetzt werden.
    Im Hyperterminal dann "Datei senden" (Protokoll X-Modem einstellen), .bin-datei auswählen, Starten und beim Controller den Bootloader auslösen (bei mir eben Taste drücken)
    Und es geht auch mit Hyperterminal mit 57600 !!!

    Das ist COOOOOL

    EDIT:
    Geht auch mit 115200 , ist aber nicht schneller als mit 57600.
    Der Mega 32 ist bei 115200 und 57600 in jeweils etwa 14 Sekunden voll.

    Gruß
    Christopher

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    71
    Beiträge
    277
    Zitat Zitat von fuerstfanta
    .... es liegt wohl aber auch an den USB-Seriell-Adaptern.
    Da lag bei mir der Hund begraben. Unmittelbar am Comport: Keine Probleme. Wobei mein Reichelt einfach RS232->USB ansonsten auch mit hohen Übertragungsraten klaglos funktioniert.

    Gleichgültig: Nun läuft es.

    Viele Grüße
    Henrik

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    06.09.2005
    Ort
    Wiesbaden
    Alter
    43
    Beiträge
    53
    Hi Christopher,

    sag mal, welches Terminal-Programm benutzt Du denn, in dem man die Xmodem-Übertragung einstellen kann?

    LG

    Christoph

  5. #25
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    hatte ich doch geschrieben
    Hyperterminal (Windows Zubehör).
    Dort auf "Übertragung" gehen, dann "Datei senden"
    Dann kann man in einer Listbox verschiedene Übertragungsprotokolle auswählen (Xmodem,Xmodem1K, Ymodem,Zmodem, Kermit)
    Es sollte aber auch mit anderen Terminalprogrammen gehen, Xmodem beherrschen so ziemlich alle.
    Wichtig: die .bin Datei senden, nicht die .Hex-Datei.
    Problematisch ist nur, daß es keine Abfrage gibt, ob der Flash schon voll ist.
    Wenn man eine Datei sendet die größer ist (zB. die .hex), dann zerschießt man sich den Bootloader.
    Das muß ich noch irgendwie im Bootloader abfangen.
    Mal sehen, wann ich wieder mal Zeit habe dran zu basteln.

    Ich habe für die Tests übrigens auch die Reichelt Wandler benutzt, da mein Comport abgeraucht ist..

    Gruß
    Christopher

  6. #26
    Benutzer Stammmitglied
    Registriert seit
    06.09.2005
    Ort
    Wiesbaden
    Alter
    43
    Beiträge
    53
    Hi,...

    hab gerade den dritten USB-Seriell-Adapter getestet! Mit dem funktionierts auch mit 57600! Man glaubt es kaum...

    Jetzt funktioniert auch der Bootloader über RS485, fast [-X

    Der Sendevorgang wird vollständig und ohne Fehlermeldung ausgeführt, aber das PRogramm startet nicht. Es läuft fröhlich die Bootloader-Routine weiter? Woran könnte das hängen? Jemand ne Idee?

    Übringens funktioniert der "Config Print0" entgegen der Behauptung in der History.txt immer noch nicht richtig. Die letzten Bytes des Print-Befehls beim Senden über den RS485-Bus werden vom zu früh zurückgesetzten Enable-Bit abgeschnitten!!!


    lg

    Christoph

  7. #27
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    hab' jetzt mal eine "Sicherung" eingebaut.
    Wenn Page größer 239 ist (für den MEGA 32) sende ich einfach ein paar CANs (cancel transmission) und mache dann goto __reset
    Seit dem bricht Hyperterminal bei zu großen Dateien ab und der Bootloder ist geschützt.
    Code:
          
    If Page > 239 Then
           For N = 1 To 15
            Print Chr(can);
           Next N
           Print "MEMORY FULL !!!"
           Goto _reset
        End If

    Man kann natürlich auch die Lockbits für den Bootloader setzen.
    Allerdings gibt's dann eben keine Fehlermeldung im Hyperterminal.
    Und beim nächsten "chip erase" sind die lockbits ja wieder gelöscht.
    Das hat man schnell mal vergessen.

    Gruß
    Christopher

  8. #28
    Benutzer Stammmitglied
    Registriert seit
    06.09.2005
    Ort
    Wiesbaden
    Alter
    43
    Beiträge
    53
    Hi nochmal,

    also mit meinem AtMega8 funktioniert es einwandfrei. Aber mit dem Mega64 krieg ich es einfach nicht gebacken. Der Bootloader läuft, das Programm wird hochgeladen, und dann startet der Bootloader wieder??? ICh weiß nicht woran das liegt, vielleicht hab ich im Datenblatt irgendwas übersehen? Sowas wie das "sts rampz" beim Mega128? Kann mir jemand auf die Sprünge helfen?

    LG

    Christoph

  9. #29
    Benutzer Stammmitglied
    Registriert seit
    06.09.2005
    Ort
    Wiesbaden
    Alter
    43
    Beiträge
    53
    Hi,..

    hat jemand nen AtMega64 (vielleicht auch 12 zur Hand, der mal ausprobieren könnte, ob die Bootloader-Programme bei ihm funktionieren? Ich denke da ist ein Problem mit der M64Def.dat-Datei! Vielleicht kompiliert der Bascom das File nicht richtig. Sonst weiß ich echt keinen Rat. Ich komme einfach nicht weiter!!!!

    Christoph

  10. #30
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi
    ich habe es mit einem Mega 128 probiert.
    $regfile = "m128def.dat"
    $loader = $fc00

    Ich bekomme allerdings schon beim Kompilieren den Fehler:
    Error : 222 Line 129 Illegal character [expected (,got"], in File....
    Error : 222 Line 130 Illegal character [expected (,got"], in File....

    der Fehler befindet sich in den Zeilen:
    Bitwait Spmcsr.selfprgen , Reset
    Bitwait Eecr.eepe , Reset


    Wenn ich die Zeilen auskommentiere, dann geht's und ich kann den MEGA128 mit Hyperterminal flashen.
    Allerdings habe ich das erst nur mit einem recht kleinen Programm versucht.

    Gruß
    Christopher

Seite 3 von 5 ErsteErste 12345 LetzteLetzte

Berechtigungen

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

12V Akku bauen