Inhaltsverzeichnis Vorwort..........1 3.7 clearMemoryLayout..22 4 Target schreiben und Verpackungsinhalt......2 verifizieren mit Hex-Dateien Beschreibung.........3 ..........23 Ablauf/Verwendung.....4 4.1 EraseFlash.....23 1 Vorbereitung der microSD- 4.2 writeFileToFlash...24 Karte am PC 4.3 verifyFileToFlash..25 (z. B. in der Entwicklung)...4 4.4 writeVerifyFileToFlash26 2 Flashen der Targets 4.5 writeFileToEeprom..27 (z.
Seite 3
1 Versionsnummern etc..47 Bedeutungen von LED-Codes..55 2 Farben für LEDs....47 1 Normaler Betrieb....55 3 Signaturen verschiedener 1.1 Keine microSD-Karte Controller......47 gefunden......55 1.2 Exception aufgetreten..55 Exceptions........51 2 roloFlash-Aktualisierung..56 1 Exceptions des roloBasic..51 2.1 Aktualisierung läuft..56 2 Exceptions des Dateisystems 2.2 Aktualisierung mit ..........51 Erfolg abgeschlossen..57 3 Exceptions des roloFlashs...52...
AVR Vorwort ORWORT • Mit roloFlash können Sie mobil und unabhängig vom PC Ihre Produkte mit Atmel-AVR-Mikrocontroller flashen. • Sie können ungelerntes Personal oder Kunden Ihre Produkte flashen lassen, da Fehlbedienungen prinzipbedingt ausgeschlossen sind. • Dazu sind kein PC und keine spezifischen Tool-Chains (z. B. von Atmel) nötig.
AVR Verpackungsinhalt ERPACKUNGSINHALT Bitte überprüfen Sie sorgfältig den Lieferumfang: • roloFlash AVR • microSD-Karte - vorbereitet für den Einsatz in Ihrem roloFlash, mit Dokumentati- on, Beispielen, Firmware und roloBasic-Compiler - zum Einlegen in roloFlash • Adapter für microSD-Karte - zur Verwendung an PCs, die nur über einen SD-Karten- schluß...
AVR Beschreibung ESCHREIBUNG ISP-Buchse: Diese Buchse wird auf den ISP-Stecker des zu programmierenden Targets gesteckt. Die Spezifikation des ISP-Steckers finden Sie in den Dokumenten von Atmel (z. B. Beschreibung für STK500). Abb.: Draufsicht Pinbelegung ISP-Stecker auf der Target-Platine LEDs: Fünf programmierbare zweifarbige (rot und grün) LEDs.
AVR Ablauf/Verwendung BLAUF ERWENDUNG Der Ablauf gliedert sich in zwei Teile: • Vorbereitung der microSD-Karte am PC (z. B. in der Entwicklung) • Flashen der Targets (z. B. ungeschultes Personal in der Produktion, Kunde oder Techniker im Feldeinsatz) 1 Vorbereitung der microSD-Karte am PC (z.
AVR Ablauf/Verwendung Sie können die Dateien mit den Skripten („.BAS“), die kompilierten Datei- en („.BIN“) und den Compiler nach eigenem Ermessen auf dem PC und/oder auf der microSD-Karte speichern. Für den roloFlash ist lediglich die Datei „RUN.BIN“ (sowie die durch den Code referenzierten Dateien) relevant.
AVR Aktualisieren von roloFlash KTUALISIEREN VON ROLO LASH roloFlash verfügt selbst über eine eigene Firmware, die aktualisiert wer- den kann. Starten der Aktualisierung • Zum Aktualisieren muß sich die Firmware-Datei „RFAVRBAS.HMP“ im Hauptverzeichnis der microSD-Karte befinden. • Das Aktualisieren wird ausgelöst, wenn...
Seite 10
AVR Aktualisieren von roloFlash • Bei Erfolg leuchten anschließend LED 1 und 2 grün. • Der roloFlash bleibt in diesem Zustand, bis er abgezogen wird. • Die aktualisierte Firmware steht jetzt zur Verfügung. Falls die Aktualisierung nicht erfolgreich gewesen sein sollte, verwenden Sie bitte eine frisch unter Windows 7 mit FAT32 formatierte microSD-Kar- te, auf der sich ausschließlich die Datei „RFAVRBAS.HMP“...
AVR Liste der mitgelieferten roloBasic-Skripte ISTE DER MITGELIEFERTEN ROLO ASIC KRIPTE NORMAL.BAS • Prüft, ob der Controller die richtige Signature hat • Prüft den Spannungsbereich • Löscht den Chip • Setzt die Fuses • Beschreibt und verifiziert das Flash mit IMAGE.HEX •...
AVR Liste der Prozeduren und Funktionen ISTE DER ROZEDUREN UND UNKTIONEN Prozeduren: Prozeduren haben keinen Rückgabewert. Die übergebenen Parame- ter müssen ohne Klammern angegeben werden. Beispiel: setProgrammingSpeed 1000 Funktionen: Funktionen haben einen Rückgabewert. Die übergebenen Parameter müssen in Klammer gesetzt werden.
AVR Liste der Prozeduren und Funktionen Target läuft ganz normal, als ob roloFlash nicht angeschlossen wäre. ProgramMode Target kann programmiert werden. Manche Prozeduren wechseln den Mode (programTarget und run- Target). Andere Prozeduren bzw. Funktionen sind auf einen bestimmten Mode an- gewiesen.
AVR Liste der Prozeduren und Funktionen - keine Rückgabewert: 0 = kein Target gefunden 1 = Target gefunden Exceptions: - keine 1.2 programTarget programTarget • Stoppt das Target. • Setzt das Target und den roloFlash in den ProgramMode. Vorbedingung:...
AVR Liste der Prozeduren und Funktionen 1.3 runTarget runTarget • Startet das Target. • Setzt roloFlash in den RunMode. Vorbedingung: - keine Parameter: - keine Rückgabewert: - keiner (Prozedur) Exceptions: - keine 1.4 restartTarget restartTarget Das Target wird neu gestartet, der Reset-Zyklus wird durchlaufen. Wenn das Target im ProgramMode war, wird der ProgramMode wieder herge- stellt.
AVR Liste der Prozeduren und Funktionen nes Quarzes auf der Targetplatine, was dann anschließend eine höhere Programmiergeschwindigkeit ermöglicht. Ein häufiger Ablauf: writeFuses(f) ! zum Aktivieren des Quarzes restartTarget setSpeed 1000 ! 1 MHz writeFileToFlash 0, "IMAGE.HEX" Vorbedingung: - keine...
AVR Liste der Prozeduren und Funktionen Parameter: speed Angabe in kHz. Unterstützte Werte sind: 4000, 2000, 1000, 500, 250, 125 kHz speed_min: Setzt die kleinste Geschwindigkeit (also 125 kHz). Falls die angegebene Frequenz nicht in dieser Liste ist, dann wird auf den nächsten möglichen Wert abgerundet.
AVR Liste der Prozeduren und Funktionen Exceptions: - keine 2 Target-Fuses & -Lock-Bits 2.1 readBits values = readBits(index) Liest die angegebenen Fuses bzw. Lock-Bits aus. Vorbedingung: Das Target muß im ProgramMode sein. Parameter: index Gibt an, welche Fuses bzw. Lock-Bits gelesen werden sollen. Es gibt dazu die Konstanten fuses_low, fuses_high, fuses_ext und lock_bits.
AVR Liste der Prozeduren und Funktionen Ausgelesene Fuses bzw. Lock-Bits. Exceptions: targetWrongMode Target ist nicht im "ProgramMode". targetCommunication Die Kommunikation mit dem Target funktioniert nicht. rangeValue Unzulässiger Wert für index. typeFault Unzulässiger Typ für index. 2.2 writeBits writeBits index, values Schreibt die angegebenen Fuses bzw.
AVR Liste der Prozeduren und Funktionen Bei Controllern, die keine Extended-Fuses haben, findet bei fuses_ext kein Schreibvorgang statt (es wird keine Exception er- zeugt). values Zu schreibende Werte. Rückgabewert: - keiner (Prozedur) Exceptions: targetWrongMode Target ist nicht im "ProgramMode".
AVR Liste der Prozeduren und Funktionen troller nicht bekannt ist, dann liefert getFlashLayout die Exception "unknownMemoryLayout". Vorbedingung: Das Target muß im ProgramMode sein. Parameter: - keine Rückgabewert: Ausgelesene Signature. Die Signature wird in einem Byte-Array mit 3 By- tes geliefert.
AVR Liste der Prozeduren und Funktionen Parameter: - keine Rückgabewert: Array mit 2 Elementen: a[0] = Größe des Flashs in Bytes a[1] = Größe einer Page im Flash in Bytes Exceptions: targetWrongMode Target ist nicht im "ProgramMode". 3.3 setFlashLayout setFlashLayout <size, pagesize>...
AVR Liste der Prozeduren und Funktionen Größe einer Page im Flash in Bytes. Rückgabewert: - keiner (Prozedur) Exceptions: targetWrongMode Target ist nicht im "ProgramMode". 3.4 getEepromLayout a = getEepromLayout() Liefert die Größe des EEPROMs und die Größe einer Page im EEPROM.
AVR Liste der Prozeduren und Funktionen 3.5 setEepromLayout setEepromLayout <size, pagesize> Die Größe des EEPROMs und die Größe einer Page im EEPROM werden gesetzt. Die Werte müssen passend zum Controller der Atmel-Dokumen- tation entnommen werden. Falls der verwendete Controller bekannt ist, dann werden die passenden Werte beim Aufruf von getSignature() automatisch ermittelt.
AVR Liste der Prozeduren und Funktionen Für Controller mit 256 kB Flash oder mehr ist der normale Befehlssatz zum Programmieren über das ISP-Interface nicht mehr ausreichend. Es wird dann ein extended address mode benötigt. Falls der verwendete Controller bekannt ist, dann wird der passende Wert beim Aufruf von getSignature() automatisch ermittelt.
AVR Liste der Prozeduren und Funktionen Vorbedingung: - keine Parameter: - keine Rückgabewert: - keiner (Prozedur) Exceptions: - keine 4 Target schreiben und verifizieren mit Hex-Dateien 4.1 EraseFlash eraseFlash Löscht das gesamte Flash des Targets. Je nach Einstellung in den Fuses (EESAVE) wird dabei das EEPROM auch gelöscht (default) oder nicht.
AVR Liste der Prozeduren und Funktionen Exceptions: targetWrongMode Target ist nicht im "ProgramMode". targetCommunication Die Kommunikation mit dem Target funktioniert nicht. 4.2 writeFileToFlash writeFileToFlash <filesystem, filename> Schreibt eine Hex-Datei ins Flash des Targets. Vorbedingung: Das Target muß im ProgramMode sein.
AVR Liste der Prozeduren und Funktionen <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 4.3 verifyFileToFlash verifyFileToFlash <filesystem, filename> Vergleicht eine Hex-Datei mit den Daten im Flash. Vorbedingung: Das Target muß im ProgramMode sein. Parameter: filesystem Der Parameter wird ignoriert und sollte mit 0 angegeben werden.
AVR Liste der Prozeduren und Funktionen typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 4.4 writeVerifyFileToFlash writeVerifyFileToFlash <filesystem, filename> Schreibt eine Hex-Datei ins Flash des Targets und vergleicht das Geschrie- bene mit der Hex-Datei.
AVR Liste der Prozeduren und Funktionen targetWrongMode Target ist nicht im "ProgramMode". targetCommunication Die Kommunikation mit dem Target funktioniert nicht. typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 4.5 writeFileToEeprom writeFileToEeprom <filesystem, filename>...
AVR Liste der Prozeduren und Funktionen typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 4.6 verifyFileToEeprom verifyFileToEeprom <filesystem, filename> Vergleicht eine Hex-Datei mit den Daten im EEPROM. Vorbedingung: Das Target muß im ProgramMode sein.
AVR Liste der Prozeduren und Funktionen funktioniert nicht. typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 4.7 writeVerifyFileToEeprom writeVerifyFileToEeprom <filesystem, filename> Schreibt eine Hex-Datei ins EEPROM des Targets und vergleicht das Ge- schriebene mit der Hex-Datei.
AVR Liste der Prozeduren und Funktionen hexFileCRC targetWrongMode Target ist nicht im "ProgramMode". targetCommunication Die Kommunikation mit dem Target funktioniert nicht. typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 5 Dateien Dateinamen: • Dateinamen müssen der 8.3-Regel folgen: „XXXXXXXX.YYY“.
AVR Liste der Prozeduren und Funktionen Erzeugt die angegebene Datei. Die Datei ist danach noch immer geschlos- sen. Falls die Datei schon existiert, dann hat die Prozedur keine Wirkung. Wenn man eine Datei erzeugen und in diese etwas schreiben möchte, dann muß...
AVR Liste der Prozeduren und Funktionen Vorbedingung: - keine Parameter: filesystem Der Parameter wird ignoriert und sollte mit 0 angegeben werden. filename Es gelten die Bedingungen für Verzeichnis- bzw. Dateinamen, siehe Kapitel 5 “Dateien“. Rückgabewert: - keiner (Prozedur) Exceptions: fileNotFound Die angegebene Datei existiert nicht.
AVR Liste der Prozeduren und Funktionen Parameter: filesystem Der Parameter wird ignoriert und sollte mit 0 angegeben werden. dirname Es gelten die Bedingungen für Verzeichnisnamen, siehe Kapitel 5 “Dateien“. Rückgabewert: - keiner (Prozedur) Exceptions: typeFault Unzulässiger Typ für dirname.
AVR Liste der Prozeduren und Funktionen Rückgabewert: 0 = Datei existiert nicht 1 = Datei existiert Exceptions: typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 5.5 fsFilesize size = fsFilesize(filesystem, filename) Ermittelt die Größe der angegebenen Datei.
AVR Liste der Prozeduren und Funktionen typeFault Unzulässiger Typ für filename. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 5.6 fsOpen filehandle = fsOpen(filesystem, filename) Öffnet die angegebene Datei. Vorbedingung: Die Datei muß bereits existieren. Soll eine neue Datei geöffnet werden, dann muß...
AVR Liste der Prozeduren und Funktionen 5.7 fsRead a = fsRead(filehandle, position, count) Liest die angegebene Anzahl an Bytes aus der Datei. Vorbedingung: - Gültiges Filehandle mittels fsOpen. Parameter: filehandle Das von fsOpen erhaltene Filehandle. position Die Byte-Position, von der gelesen werden soll.
AVR Liste der Prozeduren und Funktionen 5.8 fsWrite fsWrite <filehandle, position, array> Schreibt die übergebenen Daten in die Datei. Sollte die Position außerhalb der momentanen Dateigröße sein, dann wird die Datei bis zu dieser Position mit zufälligen Werten aufgefüllt.
AVR Liste der Prozeduren und Funktionen 5.9 fsTruncate fsTruncate <filehandle, len> Kürzt die Datei auf die angegebene Länge. Falls die Datei schon kleiner ist, dann ist die Prozedur ohne Wirkung. Vorbedingung: - Gültiges Filehandle mittels fsOpen. Parameter: filehandle Das von fsOpen erhaltene Filehandle.
AVR Liste der Prozeduren und Funktionen Vorbedingung: - Gültiges Filehandle mittels fsOpen. Parameter: filehandle Das von fsOpen erhaltene Filehandle. Rückgabewert: - keiner (Prozedur) Exceptions: rangeValue Unzulässiger Wert für filehandle. typeFault Unzulässiger Typ für filehandle. <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“.
AVR Liste der Prozeduren und Funktionen Rückgabewert: - keiner (Prozedur) Exceptions: <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 6 LEDs Immer nur eine LED an: • Es ist aus roloBasic heraus nicht möglich, mehr als eine LED gleichzeitig einzuschalten.
AVR Liste der Prozeduren und Funktionen 6.1 ledOn ledOn <index, color> Schaltet die LED auf die angegebene Farbe. Vorbedingung: - keine Parameter: index Nummer der LED color color_green bzw. color_red Rückgabewert: - keiner (Prozedur) Exceptions: rangeValue Unzulässiger Wert für index oder color.
AVR Liste der Prozeduren und Funktionen Parameter: - keine Rückgabewert: - keiner (Prozedur) Exceptions: - keine 6.3 ledBlink ledBlink <index, color, speed> Die LED blinkt mit der angegebenen Geschwindigkeit. Vorbedingung: - keine Parameter: index Nummer der LED color color_green bzw. color_red...
AVR Liste der Prozeduren und Funktionen Rückgabewert: - keiner (Prozedur) Exceptions: rangeValue Unzulässiger Wert für index, color oder speed. typeFault Unzulässiger Typ für index, color oder speed. 6.4 ledRunningLight ledRunningLight <from, to, color, speed> Läßt ein Lauflicht laufen. Vorbedingung:...
AVR Liste der Prozeduren und Funktionen Exceptions: rangeValue Unzulässiger Wert für from, to, color oder speed. typeFault Unzulässiger Typ für from, to, color oder speed. 6.5 ledRunningLightOutstanding ledRunningLightOutstanding <from, to, color, speed, outstandingLedNumber> Läßt ein Lauflicht laufen, bei der eine bestimmte LED die andere Farbe aufweist.
AVR Liste der Prozeduren und Funktionen - keiner (Prozedur) Exceptions: rangeValue Unzulässiger Wert für from, to, color, speed oder outstandingLedNumber. typeFault Unzulässiger Typ für from, to, color, speed oder outstandingLedNumber. 7 Sonstige 7.1 print print a, b, ... Es werden die Parameter a, b etc. ausgedruckt. Die Anzahl der Parame- ter ist beliebig.
AVR Liste der Prozeduren und Funktionen - keiner (Prozedur) Exceptions: <diverse Exceptions des Siehe Kapitel „Exceptions des Dateisystems“. Dateisystems> 7.2 delay delay <duration> Es wird die angegebene Zeitdauer in ms abgewartet. Erst danach kehrt die Funktion zurück. Vorbedingung: - keine...
VIII VIII ONSTANTEN 1 Versionsnummern etc. Name Wert / Bedeutung companyName „halec <http://halec.de>“ deviceName „roloFlash AVR, base version“ softwareVersion Versionsnummer der Firmware hardwareVersion Versionsnummer der Hardware bootloaderVersion Versionsnummer des Bootloaders imageVersion roloFlash erwartet das vom Compiler erzeugte Image in dieser Version. Bitte verwenden Sie daher den zur Firmware des roloFlashs passenden Compiler.
AVR Exceptions XCEPTIONS Im Handbuch für das roloBasic finden Sie die genaue Beschreibung, wie Exceptions ausgelöst und wieder gefangen werden können. Wird eine Ex- ception nicht gefangen, dann wird die Exception mittels der LEDs ange- zeigt. Falls dabei die Exception keine Zahl darstellt, dann wird die Exception „exceptionNotANumber“...
AVR Exceptions Name Nummer Bedeutung deviceError Es konnte nicht auf der microSD-Karte gelesen/geschrieben werden badCluster Probleme innerhalb des Dateisystems. Das Dateisystem sollte auf dem PC auf Konsistenz geprüft werden. notMounted Es wurde versucht, auf die microSD-Karte zuzugreifen, obwohl sie nicht angemeldet ist.
Seite 56
AVR Exceptions exceptionIsNotANumber Es wurde eine Exception erzeugt und innerhalb des Basics nicht mehr gefangen, die keine Zahl ist. In diesem Fall wird die Original-Exception verworfen und durch diese Exception ersetzt. Das kann nur durch vom Benutzer erzeugte Exceptions auftreten, da alle anderen Funktionen ausschließlich die hier beschriebenen numerischen...
AVR Exceptions Controllern geschieht dieses automatisch beim Aufruf von getSignature(). Ansonsten kann das mittels setExtendedAddressMode() manuell gesetzt werden. targetVerify Beim Zurücklesen von Daten wurde ein Unterschied festgestellt. hexFileSize Die Größe der angegebenen Hex-Datei ist nicht plausibel. Eventuell ist die Hex-Datei nicht in Ordnung.
AVR Bedeutungen von LED-Codes LED-C EDEUTUNGEN VON ODES 1 Normaler Betrieb 1.1 Keine microSD-Karte gefunden LEDs: 1: rot Bedeutung: Keine microSD-Karte gefunden, bzw. ist nicht mit FAT32 formatiert. 1.2 Exception aufgetreten Wenn eine Exception aufgetreten ist und diese nicht aufgelöst (gefangen) wurde, dann wird die Nummer der Exception durch einen Blinkcode aus- gegeben.
AVR Bedeutungen von LED-Codes 5: rot: blinkend, Anzahl entspricht 1-er der Exception Bedeutung: Zählen Sie, wie oft die einzelnen LEDs aufblinken, und Sie erhalten den Code der Exception. Dieser Code kann entstanden sein, indem • im Skript eine entsprechende „throw“-Anweisung ausgeführt wurde.
AVR Bedeutungen von LED-Codes Bedeutung: Datei RUN.BIN nicht gefunden. Bitte führen Sie die Schritte unter IV.1 „Vorbereitung der microSD-Karte am PC (z. B. in der Entwick- lung)“ durch. 2.2 Aktualisierung mit Erfolg abgeschlossen LEDs: 1: grün 2: grün Bedeutung: Die Aktualisierung wurde mit Erfolg abgeschlossen.