Hier stelle ich einen universellen BasCom-Bootloader welcher basierend auf jenen von MCS ist. Die Datenübertragung wird über eine serielle Schnittstelle zwischen PC und der Hardware durchgeführt. Der Bootloader unterstützt die folgenden AVRs: AT90USB 162, AT90USB 1287, ATmega 8, ATmega 16, ATmega 32, ATmega 48, ATmega 64, ATmega 88, ATmega 128, ATmega 1284P, ATmega 128CAN, ATmega 161, ATmega 162, ATmega 164P, ATmega 165, ATmega 168, ATmega 169, ATmega 324, ATmega 325, ATmega 328, ATmega 328P, ATmega 329, ATmega 640, ATmega 644, ATmega 644P, ATmega 645, ATmega 649, ATmega 1280, ATmega 1281, ATmega 2560 und ATmega 2561.

Der Bootloader wird gemäß den folgenden Schritten erzeugt:

    • AVR auswählen
    • Status-LED (wenn vorhanden) definieren
    • Quarzfrequenz, Baud und Timeout definieren
    • Dieses Programm kompilieren
    • Mittels ISP die Fuse-Bits "Bootsize 1024 words" und "Reset vector is bootloader" sowie das Lockbit zum Schutz des Bootloader entspechend setzen
    • Das Ergebnis mittels ISP in den Chip schreiben
    • Z.B. den MCS Bootloader aus den Programmiergeräten auswählen
    • Ein neues Programm schreiben und kompilieren
    • F4 drücken und den µC resetten, das Programm wird in den Chip uploadet

Der Bootloader kann bei Bedarf auch ohne HW-Reset aufgerufen werden. Dazu wird der Befehl Goto &H1C00 im eigenen BASCOM-Programm entsprechend verwendet. Der Befehl GOTO wird aber nur mit der korrekten Bootloader-Adresse welche die selbe wie die der Konstante $loader ist funktionieren! 

BootUploadZusätzlich zu diesem Bootloader habe ich für die PC-Seite zwei Tools (eines als selbsterklärendes GUI, das andere als Kommandozeilenapplikation) programmiert.

Das Kommandozeilentool kann mittels verschiedener Errorlevels in eigenen Anwendungen ausgewertet werden und wird wie im folgenden Beispiel beschrieben aufgerufen:
BootUploadCMD /F=Flash-Datei /E=EEPROM-Datei /I=Inittext /C=Comport /B=Baudrate /R=Reportart [ENTER].

Flash-Datei ist der Name einer Intel-HEX-Datei für den Flashbereich
EEPROM-Datei ist der Name einer Intel-HEX-Datei für den EEPROM-Bereich
Inittext ist eine Zeichenkette welche im AVR-Programm zu einem Reset führt
Comport ist die COM-Schnittstelle am PC an welcher der AVR angeschlossen ist (Default COM1)
Baudrate ist die Übertragungsgeschwindigkeit der seriellen Schnittstelle (Default 9600)
Reportart gibt an wieviel Statusmeldungen ausgegeben werden (Default 2)

Mindestens eine der beiden Dateien müssen angegeben werden alle anderen Parameter sind optional, dann werden die Standardwerte verwendet.

Weiters stelle ich auch noch den Quelltext für AutoIt3 der eigentlichen Übertragungsfunktionen zur Verfügung um auch eigene derartige Tools zu ermöglichen. Um mit der seriellen Schnittstelle aus AutoIt heraus kommunizieren zu können wird noch eine DLL benötigt welche HIER heruntergeladen werden kann.

V1.0.0 Auslieferungszustand
V1.0.1 Abfragefehler im PC-GUI behoben




   
© 2013 - 2017 by Gameroom - Austria