Boot Loader für AVR ATmega Controller



Ähnliche Dokumente
Stepperfocuser 2.0 mit Bootloader

Dokumentation IBIS Monitor

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

Installation des COM Port Redirectors

LPT1 Anschluss mit PCMCIA Karte

VB.net Programmierung und Beispielprogramm für GSV

Leitfaden zur Installation von Bitbyters.WinShutdown

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

ABB i-bus KNX. Software-Information. Melde- und Bedientableau. Typ: MT 701.2

Handbuch PCI Treiber-Installation

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

Datensicherung. Beschreibung der Datensicherung

Wir wünschen Ihnen viel Freude und Erfolg mit Ihrem neuen X-PRO-USB-Interface. Ihr Hacker-Team

Handbuch USB Treiber-Installation

Handbuch B4000+ Preset Manager

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software.

Installation / Aktualisierung von Druckertreibern unter Windows 7

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

UART-Kommunikation mit dem Atmel AVR

Virtuelle COM-Schnittstelle umbenennen

EasyWk DAS Schwimmwettkampfprogramm

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Microsoft Windows XP SP2 und windream

Tutorial -

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

ANLEITUNG. Firmware Flash. Seite 1 von 7

Allgemeine Anleitung Treiber für CP2102

Software WinProgTrans. Technische Dokumentation. Ausgabe: 10/2008 Art.-Nr.:

Kommunikations-Management

TechNote. Produkt: TWINFAX 7.0 (ab CD_24), TWINFAX 6.0 Modul: SMTP, T611, R3 Kurzbeschreibung: Briefpapier- und Mailbodyunterstützung

Kurzanleitung AquantaGet

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

EKF Software Server. Handbuch. Version 2.1. Hersteller: 2008 mesics gmbh Berliner Platz Münster info@mesics.de

Einbinden eines Mikrocontrollers in ein EtherCAT-Netzwerk mit Hilfe eines Anybus-S-Moduls für EtherCAT

1 Anschließen der Wiegeanzeige an den PC

FrontDoor/Monitor mehr sehen von FrontDoor

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

TrekStor - ebook-reader TrekStor (TS) Edition - Firmware-Update

AnNoText. AnNoText Online-Update. Copyright Wolters Kluwer Deutschland GmbH

Schrittweise Anleitung zur Installation von Zertifikaten der Bayerischen Versorgungskammer im Mozilla Firefox ab Version 2.0

Installation OMNIKEY 3121 USB

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

Dokumentation zum Spielserver der Software Challenge

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

INTERNETZUGANG WLAN-ROUTER ANLEITUNG FIRMWARE-UPDATE SIEMENS

Folgeanleitung für Fachlehrer

Anschluss des ISP-Programmieradapters. Erste Programmierung mit Bascom

Steganos Secure Schritt für Schritt-Anleitung für den Gastzugang SCHRITT 1: AKTIVIERUNG IHRES GASTZUGANGS

Whitepaper. Produkt: combit address manager STAMPIT der Deutschen Post nutzen. combit GmbH Untere Laube Konstanz

Die Dateiablage Der Weg zur Dateiablage

USB-Driver: Download-Link:

GS-Programme 2015 Allgemeines Zentralupdate

ARAkoll 2013 Dokumentation. Datum:

Artikel Schnittstelle über CSV

Inhaltsverzeichnis

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

TUSReport Installationsanleitung

Integration von SATA / RAID / SCSI Treibern in Windows XP Setup

Überprüfung der digital signierten E-Rechnung

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Installationshilfe und Systemanforderungen. Vertriebssoftware für die Praxis

Berührungslose Datenerfassung. easyident-usb Stickreader. Art. Nr. FS-0012

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Local Control Network Technische Dokumentation

Installationsbeschreibung Import / ATLAS / PV Zollsystem für die EDV-Abteilung

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

3. Klicken Sie im folgenden Fenster unbedingt auf "Installation fortsetzen", um die für das Update benötigten Treiber zu installieren.

Anleitung ftp-zugang Horn Druck & Verlag GmbH Bruchsal

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Universal Dashboard auf ewon Alarmübersicht auf ewon eigener HTML Seite.

Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0

Installationshilfe und Systemanforderungen

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

Die Zertifikatdienste auswählen und mit weiter fortfahren. Den Hinweis mit JA bestätigen.

Installieren von Microsoft Office Version 2.1

Mitarbeiter-Alarm. 1x Taster mit Kabel zum Anschluss an den seriellen Com-Port (optional) 1x Installationsprogramm auf CD 1x Lizenz

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Whitepaper. Produkt: address manager Outlook AddIn für den address manager Zuordnung. combit GmbH Untere Laube Konstanz

Installation des Bondruckers TM-T88xx, der mittels eines USB-Adapters (COM-to-USB) an der USB-Schnittstelle angeschlossen ist.

Installation und Sicherung von AdmiCash mit airbackup

lññáåé=iáåé===pìééçêíáåñçêã~íáçå=

tensiolink USB Konverter INFIELD 7

S O L U T I O N S ::::: CSE-H55 Ethernet/RS422 Wandler. Installationsanleitung

Addware Urlaubsmanager 3.22 Installations-Guide

! " # $ " % & Nicki Wruck worldwidewruck

Klassendiagramm der UML mit SiSy-AVR Schnelleinstieg am Beispiel myethernet-projekt

Herzlich willkommen bei der Installation des IPfonie -Softclients!

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Wissenswertes über LiveUpdate

Transkript:

Boot Loader für AVR ATmega Controller Copyright 2003 2014 MME Berlin Alle Rechte vorbehalten Dokumentation: blm, Revision 1.25 Einschränkung der Gewährleistung. Es wird keine Garantie für die Richtigkeit des Inhaltes dieses Datenblattes übernommen. Da sich Fehler, trotz aller Bemühungen, nicht immer vollständig vermeiden lassen, sind wir für Hinweise jederzeit dankbar. Die im Datenblatt verwendeten Soft und Hardwarebezeichnungen und Markennamen der jeweiligen Firmen unterliegen im allgemeinen warenzeichen, marken oder patentrechtlichem Schutz. MME Müller Mikroelektronik Hauptstraße 8, Gewerbehof 2a, 10827 Berlin (Schöneberg) Tel.: +49 30 787.09.450, FAX: +49 30 787.09.451 E Mail: info@mme berlin.de, Internet: http://www.mme berlin.de MME 1

Einführung/Leistungsmerkmale Ein Leistungsmerkmal der AVR ATmega Controller ist das sogenannte self programming. Ein ATmega Controller ist in der Lage, seinen eigenen Programmcode zu überschreiben. Hiermit können sehr komfortabel Firmware Updates (im System), ohne spezielle Programmier Hardware (ISP, JTAG), vorgenommen werden. Mit Hilfe des MME Boot Loaders ist es möglich, ROM oder HEX Intel Dateien über die serielle Schnittstelle (RS232 und RS485) in den AVR Controller zu laden. Der Boot Loader ist in der Lage, Anwender Programme über den UART seriell zu empfangen und diese in den internen FLASH Speicher zu programmieren. Auf der PC Seite wird das Download Programm CMDLoad32 zur Verfügung gestellt. Leistungsmerkmale des MME Boot Loaders: Zwei Boot Loader Varianten: Für RS232 sowie RS485 Schnittstellen Standard. Hohe Downloadgeschwindigkeit: Bis zu 7,3 KB/Sekunde bei 115200 Baud und 11,0592 MHz. Boot Loader belegt lediglich 2 KB im AVR. Die RS485 Variante belegt 4 KB. Kurzer Execution Overhead (Einsprung Boot Loader bis zur Programmausführung): Ca. 10 µs bei 11,0592 MHz. Keine Compilierung des Boot Loaders erforderlich. Der Boot Loader ist völlig unabhängig vom Anwenderprogramm. Definiertes Verhalten bei Abbruch eines Downloads. Programm und hardwaregesteuerte Aktivierung. Konfigurierbares Status Signal. Konfigurierbare Steuersignale für Sende und Empfangstreiber bei der RS485 Variante. Einfache Konfigurierbarkeit über Windows Software Boot Loader Manager. Windows Software CMDLoad32 zum Download des Anwenderprogramms. Firmware Update über Internet. Windows DLL DLLLoad zur Entwicklung von eigenen Download Programmen. Download über Pocket PC in Vorbereitung. Zur Zeit unterstützte Controller: ATmega128, ATmega32, ATmega16, ATmega8, ATmega88, ATmega168, ATmega328P, ATmega169, ATmega8535, ATmega644, ATmega644P und ATmega1284P. Der Boot Loader zeichnet sich durch eine hohe Datenübertragungsgeschwindigkeit aus. So werden z. B. bei einer Baudrate von 115,2 kbaud und einem 11,0592 MHz AVR ca. 7,3 KB/Sekunde erreicht. Ein Download von 30 Kilobyte dauert also lediglich ca. 4 Sekunden. Der Execution Overhead (Einsprung in den Boot Loader bis zur Ausführung des Anwenderprogramms) liegt bei ca. 10 µs (@ 11,0592 MHz AVR). Die Konfiguration des Boot Loaders erfolgt mit der Windows Software Boot Loader Manager, kurz BLM. Je nach AVR Taktfrequenz lassen sich folgende Baudraten einstellen: 300 Baud, 600 Baud, 900 Baud, 1200 Baud, 2400 Baud, 4800 Baud, 9600 Baud, 19200 Baud, 38400 Baud, 57600 Baud, 115200 Baud, 128000 Baud und 230400 Baud. Weiterhin kann konfiguriert werden, ob der Boot Loader nach einem Reset über eine Port Leitung des AVRs aktiviert werden soll. Port und Bit können eingestellt werden. Der softwaremäßige Einsprung in den Boot Loader, aus dem Anwenderprogramm heraus, ist ebenfalls möglich. Die Aktivität des Boot Loaders kann über eine konfigurierbare Port Leitung des AVRs signalisiert werden. Bei der RS485 Variante können zusätzlich noch die Steuersignale für die RS485 Sende und Empfangstreiber konfiguriert werden. Für die Entwicklung eigener Download Programme steht die Windows DLL DLLLoad zur Verfügung. Der Download wird vollständig von der DLL abgewickelt. Der Anwender legt lediglich die Konfigurationsparameter fest und ruft dann die Funktion zum Download auf. 2 MME

Funktionsweise Nach einem Reset wird der Boot Loader "angesprungen. Dieser untersucht jetzt, ob ein externes Ereignis vorliegt (falls konfiguriert), um in den Download Modus zu schalten. Ist dies nicht der Fall, wird anhand des Reset Vektors überprüft, ob ein Anwenderprogramm vorhanden ist. Ist dies der Fall, wird das Anwenderprogramm "angesprungen und kommt zur Ausführung. Andernfalls wird ein Download über die serielle Schnittstelle erwartet (Download Modus). Ein AVR Anwenderprogramm kann auch "programmgesteuert den Boot Loader aufrufen, um so einen Download einzuleiten. Die Einsprungadresse des RS232 Boot Loaders liegt immer 2 KB vor dem Ende des FLASH Speichers, die des RS485 Boot Loaders 4 KB. Die Einsprungadresse variiert also bei unterschiedlichen AVR Typen. Nachfolgend einige Beispiele, wie der programmgesteuerte Aufruf des Boot Loaders aus einer Hochsprache heraus realisiert werden kann: RS232 Boot Loader Aufruf mit Embedded Pascal (http://users.iafrica.com/r/ra/rainier/): procedure EnterBootLoaderFromApplication; ATmega128 oder ATmega1284P Controller (128 KB Flash). begin DI; Interrupts sperren _MCUCSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $1F800 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin procedure EnterBootLoaderFromApplication; ATmega644 oder ATmega644P Controller (64 KB Flash). begin DI; Interrupts sperren _MCUSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $F800 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin procedure EnterBootLoaderFromApplication; ATmega32 oder ATmega328P Controller (32 KB Flash). begin DI; Interrupts sperren _MCUSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $7800 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin procedure EnterBootLoaderFromApplication; ATmega16, ATmega168 oder ATmega169 Controller (16 KB Flash). begin DI; Interrupts sperren _MCUSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $3800 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin MME 3

Funktionsweise RS485 Boot Loader Aufruf mit Embedded Pascal (http://users.iafrica.com/r/ra/rainier/): procedure EnterBootLoaderFromApplication; ATmega128 oder ATmega1284P Controller (128 KB Flash). begin DI; Interrupts sperren _MCUCSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $1F000 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin procedure EnterBootLoaderFromApplication; ATmega644 oder ATmega644P Controller (64 KB Flash). begin DI; Interrupts sperren _MCUSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $F000 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin procedure EnterBootLoaderFromApplication; ATmega32 oder ATmega328P Controller (32 KB Flash). begin DI; Interrupts sperren _MCUSR:= 0; Boot Loader soll Download Modus aktivieren asm jmp $7000 Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin RS232 Boot Loader Aufruf mit Codevision C (http://www.hpinfotech.ro): ATmega128 oder ATmega1284P Controller (128 KB Flash). #asm("cli") Interrupts sperren MCUCSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $0FC00 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin ATmega644 oder ATmega644P Controller (64 KB Flash). #asm("cli") Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $07C00 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin 4 MME

Funktionsweise ATmega32 oder ATmega328P Controller (32 KB Flash). #asm("cli") Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $03C00 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin ATmega16, ATmega168 oder ATmega169 Controller (16 KB Flash). #asm("cli") Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $01C00 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin RS485 Boot Loader Aufruf mit Codevision C (http://www.hpinfotech.ro): ATmega128 oder ATmega1284P Controller (128 KB Flash). #asm("cli") Interrupts sperren MCUCSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $0F800 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin ATmega644 oder ATmega644P Controller (64 KB Flash). #asm("cli") Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $07800 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin ATmega32 oder ATmega328P Controller (32 KB Flash). #asm("cli") Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren #asm jmp $03800 Sprung in den Boot Loader #endasm; Hier kommen wir schon nicht mehr hin MME 5

Funktionsweise RS232 Boot Loader Aufruf mit AVR GCC: ATmega128 oder ATmega1284P Controller (128 KB Flash). cli(); Interrupts sperren MCUCSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0xFC00"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin ATmega644 oder ATmega644P Controller (64 KB Flash). cli(); Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0x7C00"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin ATmega32 oder ATmega328P Controller (32 KB Flash). cli(); Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0x3C00"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin ATmega16, ATmega168 oder ATmega169 Controller (16 KB Flash). cli(); Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0x1C00"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin RS485 Boot Loader Aufruf mit AVR GCC: ATmega128 oder ATmega1284P Controller (128 KB Flash). cli(); Interrupts sperren MCUCSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0xF800"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin ATmega644 oder ATmega644P Controller (64 KB Flash). cli(); Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0x7800"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin 6 MME

Funktionsweise ATmega32 oder ATmega328P Controller (32 KB Flash). cli(); Interrupts sperren MCUSR= 0; Boot Loader soll Download Modus aktivieren asm volatile("jmp 0x3800"); Sprung in den Boot Loader Hier kommen wir schon nicht mehr hin In dem MCUCSR/MCUSR Register wird u. A. die Ursache für einen Reset festgehalten. Wird dieses Register auf 0 gesetzt und anschließend in den Boot Loader gesprungen, so schaltet sich dieser in den Download Modus. Bei einem "echten" Reset würde das MCUCSR/MCUSR Register einen Wert ungleich von Null enthalten. Der Boot Loader würde dann das Anwenderprogramm starten. Hinweis: MME AVR Boot Loader mit einer Version kleiner als 1.4 (ausgeliefert bis 2013) setzten das UART Register UCSRnC nicht in den Ursprungszustand zurück. Dies hatte zur Folge, daß u. U. ein Download über den Boot Loader nicht möglich war, wenn der Anwender das UCSRnC Register verändert hatte. Aktuelle Boot Loader, mit einer Version ab einschließlich 1.4, handhaben das UCSRnC Register korrekt. MME 7

Boot Loader Manager Der Boot Loader Manager (BLM) ist ein 32 Bit Windows Programm, welches unter den Windows Versionen 9X/ME/NT/2000/XP/Vista/7/8.x ablauffähig ist. Mit dem BLM werden AVR Boot Loader konfiguriert und als ROM und HEX Intel Datei bereitgestellt. Installation Das Programm kann in ein beliebiges Verzeichnis auf der Festplatte kopiert werden und von dort gestartet werden. Zu dem BLM gehört mindestens ein AVR Boot Loader. Dieser muß sich im gleichen Verzeichnis befinden wie BLM.EXE und hat die Dateierweiterung.ROM. Mitgelieferte Dateien BLM.EXE CMDLoad32.EXE MxxCMDLoad_U.ROM BLM.TXT DEMO_PC\DLLLoad.dll DEMO_PC\DemoDLLLoad1.DPR DEMO_PC\DemoDLLLoad1.EXE DEMO_PC\uDemo1.PAS DEMO_PC\uDemo1.DFM DEMO_PC\DemoDLLLoad2.DPR DEMO_PC\DemoDLLLoad2.EXE DEMO_PC\uDemo2.PAS DEMO_PC\uDemo2.DFM Boot Loader Manager Download Programm AVR Boot Loader für den jeweiligen ATmega Controller Textdatei mit Erläuterungen DLL zur Einbindung in eigene Download Programme (optional) Delphi Projekt für erstes Demo Erstes Demo als ausführbares Programm Delphi Source für erstes Demo Delphi Formular Datei für erstes Demo Delphi Projekt für zweites Demo Zweites Demo als ausführbares Programm Delphi Source für zweites Demo Delphi Formular Datei für zweites Demo Hinweis: Die Download DLL DLLLoad gehört nicht zum Standardlieferumfang und muß gesondert geordert werden. Programmablauf Hauptfenster des BLM Nach dem Start von BLM.EXE werden alle AVR Boot Loader aufgelistet. Verfügbare Boot Loader werden grün markiert. Durch Doppelclick auf einen Eintrag (oder Betätigen des Buttons "Bearbeiten ) wird ein Dialog Fenster geöffnet. In diesem Dialog können Anpassungen an den Boot Loader vorgenommen werden. Nachdem die Anpassungen vorgenommen worden sind, kann der modifizierte Boot Loader auf die Festplatte geschrieben werden. Hierzu ist der Button "Anpassen zu betätigen. Der Boot Loader wird als binäres Image (ROM Datei) sowie als HEX Intel Datei erzeugt. Der Boot Loader wird dann mit einem AVR Programmiergerät (z. B. ATMEL STK500) in einen AVR Controller geflasht. 8 MME

Anpassung des RS232 Boot Loaders Dialog zur Anpassung des RS232 Boot Loaders. Die Download Baudrate kann konfiguriert werden. Folgende Baudraten sind einstellbar: 300 Baud, 600 Baud, 900 Baud, 1200 Baud, 2400 Baud, 4800 Baud, 9600 Baud, 19200 Baud, 38400 Baud, 57600 Baud, 115200 Baud, 128000 Baud sowie 230400 Baud. Nach Vorgabe der AVR Taktfrequenz werden die AVR Register "UBRR sowie "U2X errechnet. Zusätzlich wird noch der "Baudratenfehler angegeben. Bei einem Fehler von größer 1 % wird eine Warnung ausgegeben. Eine serielle Kommunikation ist dann eventuell nicht fehlerfrei möglich. Hinweis: 230400 Baud lassen sich nicht bei allen PCs einstellen. Weiterhin kann konfiguriert werden, ob der Bootloader nach einem Reset eine bestimmte Port Leitung überwachen soll, um dann gegebenenfalls in den Download Modus zu schalten. Wenn dies gewünscht ist, dann sind das Port sowie das entsprechende Port Bit festzulegen. Wird die Port Leitung vom JTAG Interface belegt, dann muß dieses abgeschaltet werden. Hinweis: Ein externer Pullup Widerstand von ca. 10 Kiloohm ist erforderlich, damit nach dem Einschalten ein sicherer High Pegel erkannt wird. Die Aktivität des Boot Loaders kann über eine zu konfigurierende Port Leitung signalisiert werden. Wird diese Leitung vom JTAG Interface belegt, dann muß dieses abgeschaltet werden. Programmieren des RS232 Boot Loaders in den AVR Der Boot Loader wird mit einer geeigneten Programmier Hard und Software in den AVR geladen. Z. B. mit dem ATMEL STK500 Board. Der Boot Loader liegt als binäres Image vor (z. B. M128CMDLoad_0U.rom) sowie in Form von einer HEX Intel Datei (z. B. M128CMDLoad 0U.hex). Nachfolgende Anweisungen müssen unbedingt berücksichtigt werden, da sonst der Boot Loader im AVR nicht (zuverlässig) arbeitet. Ladeadresse Bei der Verwendung der HEX Intel Datei wird die korrekte Ladeadresse automatisch berücksichtigt. Der gesamte AVR (128 Kilobyte) wird geflasht. Wenn die ROM Datei verwendet wird, dann ist die Position des Boot Loaders im AVR zu berücksichtigen. Die Startadresse liegt immer 2048 Byte vor dem Ende des FLASH Speichers. Sie beträgt z. B. beim ATmega128 $1F800 und beim ATmega168 $3800. AVR Fuses beim ATmega128 und ATmega1284P (128 KB FLASH) BOOTSZ1 = 1 und BOOTSZ0 = 0 (Boot Size 2048 Byte = 1024 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. AVR Fuses beim ATmega644 und ATmega644P (64 KB FLASH) BOOTSZ1 = 1 und BOOTSZ0 = 0 (Boot Size 2048 Byte = 1024 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. MME 9

Anpassung des RS232 Boot Loaders AVR Fuses beim ATmega32 und ATmega328P (32 KB FLASH) BOOTSZ1 = 0 und BOOTSZ0 = 1 (Boot Size 2048 Byte = 1024 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. AVR Fuses beim ATmega16, ATmega168 und ATmega169 (16 KB FLASH) BOOTSZ1 = 0 und BOOTSZ0 = 0 (Boot Size 2048 Byte = 1024 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. 10 MME

Anpassung des RS485 Boot Loaders Einstellungen speichern Einstellungen laden Dialog zur Anpassung des RS485 Boot Loaders. Die Download Baudrate kann konfiguriert werden. Folgende Baudraten sind einstellbar: 300 Baud, 600 Baud, 900 Baud, 1200 Baud, 2400 Baud, 4800 Baud, 9600 Baud, 19200 Baud, 38400 Baud, 57600 Baud, 115200 Baud, 128000 Baud sowie 230400 Baud. Nach Vorgabe der AVR Taktfrequenz wird der "Baudratenfehler" angegeben. Bei einem Fehler von größer 1 % wird eine Warnung ausgegeben. Eine serielle Kommunikation ist dann eventuell nicht fehlerfrei möglich. Hinweis: 230400 Baud lassen sich nicht bei allen PCs einstellen. Da die Datenübertragung über RS485 im Halbduplex Betrieb (es kann nicht gleichzeitig gesendet und empfangen werden) erfolgen kann, muß der AVR an dem angeschlossenen RS485 Treiberbaustein den Sende und Empfangstreiber aktivieren/deaktivieren. Dies erfolgt mindestens über eine Port Leitung. Besonders die galvanisch getrennten RS485 Treiberbausteine benötigen nach dem Umschalten der Sendeund Empfangstreiber noch eine gewisse Verzögerungszeit, bis Daten fehlerfrei übertragen werden können. Diese Verzögerungszeit läßt sich mit dem Parameter "TX/RX Enable Time" einstellen und ist dem Datenblatt des verwendeten RS485 Treibers zu entnehmen. Weiterhin kann konfiguriert werden, ob der Bootloader nach einem Reset eine bestimmte Port Leitung überwachen soll, um dann gegebenenfalls in den Download Modus zu schalten. Wenn dies gewünscht ist, dann sind das Port sowie das entsprechende Port Bit festzulegen. Wird die Port Leitung vom JTAG Interface belegt, dann muß dieses abgeschaltet werden. Hinweis: Ein externer Pullup Widerstand von ca. 10 Kiloohm ist erforderlich, damit nach dem Einschalten ein sicherer High Pegel erkannt wird. Die Aktivität des Boot Loaders kann über eine zu konfigurierende Port Leitung signalisiert werden. Wird diese Leitung vom JTAG Interface belegt, dann muß dieses abgeschaltet werden. Die Boot Loader Einstellungen können unter einem frei auswählbaren Projektnamen gespeichert und geladen werden. Hinweis: Wenn der Empfangstreiber des RS485 Treiberbausteins abgeschaltet ist, dann befindet sich dieser im Tri State Zustand. Damit der RX Eingang des AVR dann nicht "floatet", aktiviert der Boot Loader den entsprechenden internen Pullup Widerstand. 11 MME

Anpassung des RS485 Boot Loaders Programmieren des RS485 Boot Loaders in den AVR Der Boot Loader wird mit einer geeigneten Programmier Hard und Software in den AVR geladen. Z. B. mit dem ATMEL STK500 Board. Der Boot Loader liegt als binäres Image vor (z. B. M328PCMD Load_RS485_U.rom) sowie in Form von einer HEX Intel Datei (z. B. M328PCMDLoad_RS485_U.hex). Nachfolgende Anweisungen müssen unbedingt berücksichtigt werden, da sonst der Boot Loader im AVR nicht (zuverlässig) arbeitet. Ladeadresse Bei der Verwendung der HEX Intel Datei wird die korrekte Ladeadresse automatisch berücksichtigt. Der gesamte AVR (128 Kilobyte) wird geflasht. Wenn die ROM Datei verwendet wird, dann ist die Position des Boot Loaders im AVR zu berücksichtigen. Die Startadresse liegt immer 4096 Byte vor dem Ende des FLASH Speichers. Sie beträgt z. B. beim ATmega128 $1F000 und beim ATmega32 $7000. AVR Fuses beim ATmega128 und ATmega1284P (128 KB FLASH) BOOTSZ1 = 0 und BOOTSZ0 = 1 (Boot Size 4096 Byte = 2048 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. AVR Fuses beim ATmega644 und ATmega644P (64 KB FLASH) BOOTSZ1 = 0 und BOOTSZ0 = 1 (Boot Size 4096 Byte = 2048 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. AVR Fuses beim ATmega32 und ATmega328P (32 KB FLASH) BOOTSZ1 = 0 und BOOTSZ0 = 0 (Boot Size 4096 Byte = 2048 Word) BOOTRST = 0: Ein Reset führt direkt zur Ausführung des Boot Loaders. MME 12

Download Programm CMDLoad32 CMDLoad32 während des Downloads. Mit dem Download Programm CMDLoad32 werden AVR Anwendungen vom PC über die serielle Schnittstelle in den AVR geladen. Das Programm kann sowohl binäre Images (ROM Dateien) als auch HEX Intel Dateien verarbeiten. CMDLoad32 wird über die Kommandozeile gestartet. Der Aufruf lautet: CMDLoad32 <romfile.rom hexfile.hex> [/B<baudrate>] [/COM<n>] [ Anwenderparameter] Beispiel: CMDLoad32 test.hex /B19200 /COM2 würde die HEX Datei test.hex mit einer Baudrate von 19200 Baud über die serielle Schnittstelle COM2 übertragen. CMDLoad32 test.rom /B38400 /COM3 würde die ROM Datei test.rom mit einer Baudrate von 38400 Baud über die serielle Schnittstelle COM3 übertragen. Ab der Version 1.9 von CMDLoad32 können auch ROM Images über das Internet geladen werden. Hierzu ist es erforderlich, daß der PC mit dem Internet verbunden ist. Es wird das HTTP Protokoll verwendet. Gegebenenfalls ist eine vorhandene Firewall zu konfigurieren. Soll z. B. das ROM Image myimage.rom von dem Webserver www.myserver.de geladen werden, so lautet der Aufruf: CMDLoad32 http://www.myserver.de/myimage.rom Hinweis: Zur Zeit können noch keine HEX Intel Dateien über das Internet geladen werden. Anwenderparameter Mit den sogenannten Anwenderparametern ist es möglich, vor dem eigentlichen Download eine bestimmte Zeichenkette zu senden, so daß eine AVR Anwendung hierauf einen Download einleiten kann. /AZ<text> text ist die Zeichenkette, die vom Download Programm gesendet wird, um den AVR in den Download Modus zu schalten. Steuerzeichen werden mit # und dem dreistelligen ASCII Code gekennzeichnet. Wenn z. B. die Zeichenkette FEUER! mit anschließendem Carriage Return und Line Feed gesendet werden soll, dann lautet der Parameter: /AZFEUER!#013#010 MME 13

Download Programm CMDLoad32 /AB<baudrate> Hiermit wird die Baudrate angegeben, mit der die Anwenderzeichenkette gesendet wird. Um also z. B. die Anwenderzeichenkette mit 300 Baud zu senden, würde der Parameter lauten: /AB300 /AD<##> Hiermit wird eine Verzögerungszeit in Sekunden angegeben, die das Download Programm nach dem Senden der Anwenderzeichenkette wartet, bis der eigentliche Download gestartet wird. RS485 Betrieb Für die Datenübertragung über eine RS485 Schnittstelle ist auf der PC Seite ein Konverter erforderlich. Dieser sollte die Datenrichtungssteuerung automatisch vornehmen können. Geeignet wäre z. B. der Konverter Transio A52/53 der Firma Moxa. 14 MME

Download DLL DLLLoad.dll Mit dieser DLL können eigene Windows Download Programme geschrieben werden. Die beigefügten Delphi Demos zeigen, wie die DLL in eigene Programme eingebunden wird. Ab der Version 1.3 der DLL kön nen auch ROM Images aus dem Internet geladen werden. Siehe dazu auch die Hinweise auf Seite 13. Die DLL exportiert folgende Funktionen: function LOAD_GetVersion(pcVersion: PChar): DWord; stdcall; function LOAD_GetLicense(pcLicense: PChar): DWord; stdcall; function LOAD_GetVersionAsNumber: DWord; stdcall; function LOAD_IntoController(pcLoadParameter: PChar): DWord; stdcall; function LOAD_IntoControllerExtended(pcLoadParameter: PChar; DLLLoadCallback: TDLLLoadCallback): DWord; stdcall; function LOAD_Cancel: DWord; stdcall; Beschreibung der exportierten DLL Funktionen: function LOAD_GetVersion(pcVersion: PChar): DWord; stdcall; Diese Funktion liefert die Versionskennung der DLL als nullterminierten String (PChar) zurück. Also z. B.: "DLLLoad Version 1.9 Copyright (C) 2006 2014 MME Berlin. function LOAD_GetLicense(pcLicense: PChar): DWord; stdcall; Diese Funktion liefert den Lizenznehmer der DLL als nullterminierten String zurück. Also z. B.: "Lizensiert für Megasoft GmbH, SN: 1234. function LOAD_GetVersionAsNumber: DWord; stdcall; Diese Funktion liefert die Versionsnummer der DLL als DWord Variable zurück. Also z. B. 100 für die Version 1.00, 110 für 1.10, 190 für 1.90 usw. function LOAD_IntoController(pcLoadParameter: PChar): DWord; stdcall; Diese Funktion wickelt den vollständigen Download in den AVR ab. In pcloadparameter werden die Parameter als nullterminierten String übergeben. Die Parameter sind kompatibel zum Download Programm CMDLoad32. Also: <romfile.rom hexfile.hex> [/B<baudrate>] [/COM<n>] [Anwenderparameter] Beispiele siehe Seite 9, Download Programm CMDLoad32. Siehe auch beigefügte Demo Programme. Der Rückgabewert der Funktion hat folgende Bedeutung: 0: Download erfolgreich. 1: Es sind keine Parameter angegeben worden. 2: Ungültiger Parameter. 3: Ungültiger Dateiname. 4: Ungültiger COM Port. 5: Ungültige Baudrate. 10: COM Port läßt sich nicht öffnen. 11: Datei nicht gefunden. 12: Datei läßt sich nicht öffnen. 13: Leseversuch fehlgeschlagen. 14: Datei läßt sich nicht aus dem Internet laden. 15: Nicht genügend freier Speicher vorhanden. 16: Controller meldet sich nicht. Download abgebrochen. 17: Controller sendet nicht. Download abgebrochen. 18: Controller Firmware korrupt. Download abgebrochen. MME 15

Download DLL DLLLoad.dll 19: Zeitüberschreitung. Download abgebrochen. 20: Checksumme falsch. Download abgebrochen. 21..29 Fehlercodes werden nicht verwendet. 30: ROM Datei zu groß. Die maximale Größe für den ATMEGA163 beträgt <nnn> Byte. 31: ROM Datei zu groß. Die maximale Größe für den ATMEGA32 beträgt <nnn> Byte. 32: ROM Datei zu groß. Die maximale Größe für den ATMEGA128 beträgt <nnn> Byte. 33: ROM Datei zu groß. Die maximale Größe beträgt 129024 Byte. 34: ROM Datei zu groß. Die maximale Größe für den ATMEGA8 beträgt <nnn> Byte. 35: ROM Datei zu groß. Die maximale Größe für den ATMEGA8535 beträgt <nnn> Byte. 36: ROM Datei zu groß. Die maximale Größe für den ATMEGA88 beträgt <nnn> Byte. 37: ROM Datei zu groß. Die maximale Größe für den ATMEGA168 beträgt <nnn> Byte. 38: ROM Datei zu groß. Die maximale Größe für den ATMEGA328P beträgt <nnn> Byte. 39: ROM Datei zu groß. Die maximale Größe für den ATMEGA169 beträgt <nnn> Byte. 40: ROM Datei zu groß. Die maximale Größe für den ATMEGA644P beträgt <nnn> Byte. 41: ROM Datei zu groß. Die maximale Größe für den ATMEGA1284P beträgt <nnn> Byte. 42: Fehlercode wird nicht verwendet. 43: HEX INTEL Datei enthält ungültige Zeichen. 44: HEX INTEL Datei enthält nicht unterstütztes Feld: RECTYPE. 45: HEX INTEL Datei kann nicht aus dem Internet geladen werden. 46: Aus dem Internet geladenes ROM Image ist korrupt. function LOAD_IntoControllerExtended(pcLoadParameter: PChar; DLLLoadCallback: TDLLLoadCallback): DWord; stdcall; Diese Funktion wickelt den vollständigen Download in den AVR ab. In pcloadparameter werden die Parameter als nullterminierten String übergeben. Die Parameter sind kompatibel zum Download Programm CMDLoad32. Der Rückgabewert der Funktion hat die gleiche Bedeutung wie bei der Funktion LOAD_IntoController. Zusätzlich kann der Funktion noch eine sogenannte Callback Funktion übergeben werden, welche von der DLL während des Downloads aufgerufen wird, um über den Zustand des Downloads zu informieren. Die Callback Funktion hat folgendes Format: TDLLLoadCallback = Function(dwAction: DWord; pcparameter: PChar): DWord; stdcall; Mit der DWord Variablen waction informiert die DLL den Aufrufer darüber, welche Funktion sie gerade ausführt. In dem nullterminierten String pcparameter werden zusätzliche Informationen übergeben. waction kann folgende Werte annehmen: 0: Serielle Schnittstelle wird geöffnet. 1: Es wird überprüft, ob die zu ladende Datei vorhanden ist. 2: AVR wird initialisiert. 7: Fortschritt beim Download. Die Datenmenge wird in pcparameter mitgeteilt. 8: Ende des Downloads. Die Übertragungszeit (in Sekunden) und Datenrate (in Byte/s) wird in pcparameter angegeben. Die Angabe 00:01.882;7294 würde z. B. bedeuten, daß die Übertragung 1.882 Sekunden gedauert hat. Die Datenrate betrug dabei 7294 Byte pro Sekunde. 11: Download wird gestartet. In pcparameter wird die Dateilänge in Byte angegeben. 17: Datei wird aus dem Internet geladen. 18: Der Ladevorgang aus dem Internet war erfolgreich. function LOAD_Cancel: DWord; stdcall; Mit dieser Funktion kann ein Download abgebrochen werden. 16 MME