MezData-Logo Creative Commons License 512 :AVR: Experimentierboard STK200 und USB-Programmer

Schlüsselwörter: Atmel, AVR, Assembler, Mikrokontroller, C

Die Entwicklungsumgebung

Programmer: Orginal AVRISP mkII

Es wird eine Adapterplatine von 6 Pol auf 10 Pol benötigt:

Die richtige Reihenfolge beim Anschließen an den PC und Verbinden mit dem Board

Achtung: Zuerst muss eine Verbindung des Programmers mit dem PC bestehen und erst dann darf der Programmer mit dem STK200-Board verbunden werden. Sonst wird der Programmer nicht richtig initialisiert.

Programmer an PC anschließen

Programmer wird mit USB-Kabel an PC angeschlossen, blaue LED leuchtet. Im AVR-Studio den Programmer auswählen. Bei Erfolg mit Netzteil verbundenes und eingeschaltetes Board mittels 10 Pol. Flachbandkabel mit dem Programmer verbinden.

Überprüfen der Einstellungen

Der zu programmierende Controller muss richtig eingestellt sein.

Wir programmieren im ISP mode, die Daten werden seriell auf den im System steckenden Controller übertragen (In System Programing). Dabei darf die Übertragungsgeschwindigkeit (ISP Frequency) zu dem Controller nicht schneller als 1/4 seines Systemtaktes sein, sonst kommt er nicht mehr mit und es gibt eine Fehlermeldung:

ISP Frequency auf 125.0 kHz einstellen:

Fuses (Sicherungen)

Besondere Hardwareparameter werden mittels Fuses eingestellt.

Eine genaue Beschreibung ist in der jeweiligen Dokumentation des Controllers zu finden.

Warnung: Eine unbedachte Änderung kann dazu führen, daß eine Programmierung des Controllers nicht mehr möglich ist. Z.B. bei falscher Takteinstellung.

Bei Auslieferung bekommt der ATtiny2313 von einem internen 8MHz RC-Oszillator einen durch 8 geteilten Systemtakt, wird also mit 1 MHz betrieben.

Programmierung eines Controllers

Das richtige HEX-File auswählen!

Das Experimentierboard STK200

An PortB sind 8 Leuchtdioden (LED) über jeweils einen Widerstand gegen VCC (5V) angeschlossen. Sie leuchten wenn der jeweilige Pin PB7..PB0 eine logische Null (0V) führt.

An PortD sind 8 Taster mit GND (0V) verbunden. Wenn ein Taster gedrückt wird wird der jeweilige Pin PD7..PD0 auf Masse (0V) gezogen.

Befehle, die mit Ports zu tun haben

Befehl Operand Beschreibung Beispiel
IN Rd,P Einlesen eines Port in Register in R16,PIND
OUT P, Rd Ausgeben eines Register in Port out PORTB,R16
SBI P, b Setze Bit b in Port P sbi PORTB,2
CBI P, b Lösche Bit b in Port P cbi PORTB,2
SBIC P, b Überspringe, wenn Bit b in Port P gelöscht sbic PIND,4
SBIS p, b Überspringe, wenn Bit b in Port P gesetzt sbis PIND,4
rjmp testmode

Weitere Möglichkeiten des Entwicklungs-Boards

Einsetzbare Bausteine

Sockel Bausteine Bemerkung
20 Pol AT90S2313
ATtiny2313
AT90S2313 läßt sich mit unserem Programmer nicht programmieren
28 Pol ATmega8
ATmega48
40 Pol Analog AT90S8535
ATmega16
ATmega32
AT90S8535 läßt sich mit unserem Programmer nicht programmieren
40 Pol Digital

Belegung der I/O Ports

D0 1 2 D1
D2 3 4 D3
D4 5 6 D5
D6 7 8 D7
GND 9 10 VCC

Hinweis zu den Ausgängen an PORTB
: Weil an PB7..5 die Programmierschnittstelle angeschlossen ist wurden Schottky-Dioden zwischen dem µC und den Anschlüssen eingefügt. Diese Pins können dadurch nur Ströme aufnehmen aber keinen Strom liefern, eine gegen GND angeschlossene LED bleibt dunkel.

20Pol

Sockel AT90S2313 ATtiny2313

28Pol

Sockel ATmega8 ATmega48

40Pol Analog

Sockel AT90S8535 ATmega16

40Pol Digtal