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...