Diese neue Microcontroller Familie
basiert auf einer Weiterentwicklung der Peripherie
der MCS51 Familie und einem neu entwickelten
Prozessorkern. Der Prozessor wurde auf optimale
Unterstützung durch die Programmiersprache C
optimiert, wird aber auch von Assembler
Programmierern als komfortabel empfunden.
Die AVR-RISC-Controller verfügen
über FLASH Programmspeicher und EEPROM
Datenspeicher. Sie können sowohl parallel mit einem
Programmiergerät als auch seriell IN CIRCUIT
programmiert werden. Beide Speichertypen und die
Bausteinoptionen können mit hed.chip
programmiert werden. Die Löschfunktion haben beide
Speichertypen gemeinsam. Das heißt, Löschen des
FLASH-Programmspeicher löscht automatisch auch den
EEPROM-Datenspeicher und umgekehrt.
Zur Zeit sind folgende Mitglieder
dieser Familie voll verfügbar: AT90S1200, AT90S2313, AT90S4414
und AT90S8515. Weitere Typen sind angekündigt. Zur Programmierung des
FLASH-Programmspeichers werden die Mnemonics /gavr20
(Bauform DIP20) bzw. /gavr40_2 (Bauform DIP40), für
den EEPROM-Datenspeicher die Mnemonics /gavr20e bzw.
/gavr40e_2 benutzt.
Der FLASH-Programmspeicher kann mit
Lockbits gegen Veränderung und Auslesen geschützt
werden. Mit zwei Fuses können weitere Optionen
eingestellt werden. Diese Fuses können nur mit einem
Programmiergerät, nicht IN CIRCUIT via SPI
programmiert werden. Der Parameter /s kann benutzt
werden, um im Anschluß an die Programmierung des
FLASH-Programmspeichers diese Optionen zu aktivieren.
| Parameter |
Lockbits |
Funktion |
| S1 |
1 |
schützt
FLASH Programmspeicher gegen weitere
Programmierung |
| S3 |
1 + 2 |
schützt
gegen Auslesen des Programmspeichers. S3
beinhaltet automatisch S1 |
| S4 |
RCEN |
AT90S1200/2313:
aktiviert den internen Oszillator des Watchdog
Timer als Taktquelle für den Prozessor. Dann
arbeitet der Controller ohne externen Quarz mit
einer Taktfrequenz von ca. 1MHz. |
| S4 |
SPI
disable |
AT90S4414/8515:
Schaltet die IN CIRCUIT Programmierbarkeit ab. |
| S8 |
SPI
disable |
AT90S1200/2313:
Schaltet die IN CIRCUIT Programmierbarkeit ab. |
| S8 |
FSTRT |
AT90S4414/8515:
verkürzt die RESET-Wartezeit nach einem PowerOn.
Sinnvoll bei schnell startenden Taktquellen, z.B.
Keramik-Resonatoren. |
Diese Optionen können in
beliebiger Kombination benutzt werden. Dabei kann man
entweder die Werte selbst addieren oder den Parameter
mehrfach in der Befehlszeile benutzen.
- hedchip /gavr20 /p/v/e
/s15 yourapp.bin ; Lockbits, SPI disable
und RCEN programmieren
- hedchip /gavr20 /p/v/e
/s3/s4/s8 yourapp.bin ; entspricht
Programmierung mit /s15
Wenn der FLASH Programmspeicher
ausgelesen wird, speichert hed.chip den
Zustand der Fuses (SPI disable und RCEN) als letztes
Byte in die Zieldatei. Bei der Programmierung eines
Bausteins mit einer solchen Datei werden also auch
die Fuses entsprechend programmiert.
Dieser Assembler für die
AT90S-Serie kann kostenlos von Atmel aus dem WWW
bezogen werden. Für die Programmierung der Bausteine
sind folgende Einstellungen zu wählen:
 |
Das
Format "Intel Intellec 8/MDS"
entspricht dem normalen Intel HEX Format.
Wenn im Assembler ein ".eseg"
Bereich erzeugt wird, gibt der Assembler auch
für das EEPROM des Controllers Daten aus.
Diese Datei bekommt automatisch und ohne
Einstellmöglichkeit die Namenserweiterung
".EEP". Das Datenformat entspricht
dem für das Programm eingestellten Format.
Bei der obigen Einstellung wird also eine
Datei im Intel Hex Format erzeugt, deren
Namen nicht auf ".HEX" endet. Damit
diese Datei bei der Programmierung korrekt
konvertiert wird, muß sie umbenannt werden. |
Beispiel:
Sie assemblieren die Datei
yourapp.asm. Daraus werden unter anderem folgende
Dateien erzeugt:
yourapp.hex ; in
FLASH-Programmspeicher programmieren
yourapp.eep ; umbenennen in
EEPROM.HEX und in
; EEPROM-Datenspeicher
programmieren
Mit yourapp.hex wird der
FLASH-Programmspeicher des Controllers programmiert.
Die Datei yourapp.epp wird umbenannt in eeprom.hex.
Die Änderungen des Namens ist notwendig, damit die
Datei als Intel Hex Datei erkannt wird. Dann wird die
Datei in den EEPROM-Datenspeicher des Controllers
programmiert. Dabei sollte die Option "vorher
löschen" nicht aktiviert werden. Achtung: Die
Löschfunktion löscht immer beide Speicher (FLASH
und EEPROM) des Controllers.
|