Start
Experimente
Grundlagen
Produkte
- ES-M32
-- Erster Test
-- USB
-- Bascom
-- RAM
-- ADC
-- Ports
-- Relais -- Morsen -- Datenlogger -- SIOS -- ASCII -- mV-Logger -- I/O12/24 V - - Bootloader
Neues
Impressum
|
Bascom-Bootloader
Das ES-M32
besitzt sein eigenes Programmier-Interface und kann daher Hex-Files aus
allen Programmiersprachen laden. Dazu verwendet man neben dem Compiler
das Programm ESM32.exe zur Flash-Programmierung. Wenn man jedoch
ausschließlich mit Bascom arbeitet ist die Verwendung eines Bootloaders
bequemer, weil dann ein Klick auf den Programmier-Button reicht um das
Programm zu laden. Bascom unterstützt zahlreiche Programmiergeräte.
Besonders praktisch ist aber der Bascom-eigene MCS-Bootloader, der sich
leicht an unterschiedliche Controller anpassen lässt (siehe http://www.elektronik-labor.de/AVR/Bootloader.html) |
Download: ESM32V13.zip
Wichtig
ist die richtige Einstellung der Fuses, wobei ein Bereich von 1024
Words am oberen Ende des Flash-Bereichs für den Bootloader reserviert
wird und außerdem der Bootvektor passend eingestellt wird. Nach einem
Reset springt der Controller immer zuerst in den Bootloader und schaut
nach ob ein neues Programm geladen werden soll. Wenn das nicht der Fall
ist springt das Programm an die Adresse Null und startet das
Anwenderprogramm. Die Version 1.3 des Programms ESM32.exe
enthält nun die passende Option zur Einstellung der Fuses. Danach muss
der Bootloader MCSBootlLoader32_11.HEX (ebenfalls im Zip)
geladen werden. Es handelt sich dabei um eine Anpassung des
MCS-Bootloaders für den Mega32 und eine Quarzfrequenz von 11,0592 MHz
bei einer Übertragungsrate von 19,2 kBaud. |
In
Bascom muss man nun unter Options/Programmer den MCS Bootlaoder
auswählen und auf 19200 Baud einstellen. Hinter dem Reiter MCS Loader
hat man noch die Möglichkeit eine Reset-Option einzustellen, wobei z.B.
die Leitung DTR für einen Rerset-Impuls verwendet wird. Das
ES-M32 unterstützt diese Option nicht, kann aber leicht entsprechend
umgebaut werden (siehe unten). Im Normalfall muss man selbst auf die
Reset-Taste drücken.
|
|
In
Bascom lädt man nun z.B. den Quelltext ESM32Test1.bas, kompiliert ihn
und klickt dann auf "Program chip" oder drückt F4. Damit startet der
Ladevorgang und Bascom versucht Kontakt mit dem Bootloader aufzunehmen.
Ein kurzer Druck auf die Reset-Taste auf dem ES-M32 reicht um den
Vorgang zu starten. Das Bootloader-Fenster zeigt "Uploading.." und
einen Fortschrittsbalken (siehe Bild oben). Der MCS-Bootloader
funktioniert wahlweise über die RS232-Schnittstelle oder über USB. Will
man die Reset-Option über die DTR-Leitung verwenden ist eine kleine
Erweiterung nötig. Sie wird hier für die serielle Schnittstelle
gezeigt, wo sie relativ leicht durchführbar ist. Die DTR-Leitung (Pin 4
an der DB9-Buchse) wird mit dem noch freien RS232-Empfänger im Max232
verbunden. Der zugehörige Ausgang führt über einen 100-nF-Kondensator
an den Reset-Anschluss des Mega32, der an der Vierer-Jumper-Gruppe
am Rand der Platine zugänglich ist.
Eine steigende
Flanke an DTR führt nun zu einer fallenden Flanke und einem negativen
Reset-Impuls am Controller. Damit wird ein Reset ausgelöst, der den
Bootloader automatisch startet. Genau dieses Verfahren ist auch beim
Arduino üblich. Und tatsächlich lässt sich das ES-M32 auch über die
Arduino-IDE programmieren. Dazu in Kürze mehr... |
|
|