26
2008 1/26 AVR-Mikrocontrollertechnik Mikrocontrollerkurs auf weigu.lu Nach einem Klick auf den Buchstaben A befindet man sich auf der Seite http://www.weigu.lu/a

AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 1/26 AVR-Mikrocontrollertechnik

Mikrocontrollerkurs auf weigu.lu

Nach einem Klick auf den Buchstaben A befindet man sich auf der Seite

http://www.weigu.lu/a

Page 2: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 2/26 AVR-Mikrocontrollertechnik

Schülermaterial

● MODUL A Kurs

● USB-Stick

● ANHANG F

● Schnellheft mit gelösten Aufgaben

Page 3: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 3/26 AVR-Mikrocontrollertechnik

Eigenschaften der AVR-8Bit-RISC Mikrocontroller

Sehr hohe Effizienz durch:● RISC (Reduced Instruction Set Computing ):

einfache kurze Befehle in Hardware implementiert   schnell!→Meist nur ein Taktzyklus pro Befehl (1Mips/MHz)Effizienz durch 32 Arbeitsregister (ALU)Befehle sind registerorientiert, nur load und store greifen auf Speicher zu.

● Harvard­Architektur:Getrennter Befehls­ und Datenspeicher (unterschiedliche Breite möglich, gleichzeitiges Laden und Speichern, parallele Rechenwerke).

Page 4: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 4/26 AVR-Mikrocontrollertechnik

Eigenschaften der AVR-ControllerMikrocontroller beinhaltet CPU, Speicher und mehrere Ein-/Ausgabebausteine

Page 5: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 5/26 AVR-Mikrocontrollertechnik

● Viele unterschiedliche Controller und Gehäuseformen mit AVR­Kern: http://www.atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC

● Systemtakt bis 20MHz!

● Geringer Energieverbrauch:1,8V bis 5,5V, 6 verschiedene Schlafmodi, schnelles Erwachen, unterschiedliche Frequenzen

● Neu und Umprogrammierung während des Betriebes (Bootloader)

● In­System Programming (ISP)On­Chip Debugging and In­system verification (JTAG­Interface)

● Gratis  Entwicklungsumgebung Studio 4

Eigenschaften der AVR-Controller

Quelle: ATMEL

Page 6: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 6/26 AVR-Mikrocontrollertechnik

Verschiedene Controller

9 mm

Page 7: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 7/26 AVR-Mikrocontrollertechnik

Memory Map

Page 8: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 8/26 AVR-Mikrocontrollertechnik

Assemblerprogrammierung● Wort Assembler hat 2 Bedeutungen:

1. maschinennahe Computersprache2. Übersetzungsprogramm Assembler –Maschinensprache

● Assemblerprogramm = reine Textdatei(mit der Endung .asm). Wird durch den Assembler in die Maschinensprache (Hexdatei *.hex) übersetzt.

● strukturierter übersichtlicher Code durch:Assemblerdirektiven, Include Dateien, Unterprogramme, bedingte Adressierung und Makros.

● Assembler­Programmiervorlageum die Programmierung zu Beschleunigen wird mit beim Programmieren mit einer Vorlage (A2_template.asm) gearbeitet.

Page 9: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 9/26 AVR-Mikrocontrollertechnik

Assemblerprogrammierung

● Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich um die Zuweisung.

● Direktiven sind Pseudobefehle des AssemblerDiese Assembleranweisungen dienen der Steuerung des Übersetzungsvorgangs und werden nicht in Maschinencode übersetzt. Sie beginnen mit einem Punkt und stehen meist am Anfang der Zeile.

● Operanden sind von Befehlen oder Direktiven benötigte zusätzliche Informationen.

● Kommentare beginnen mit einem Strichpunkt.

[Label:]Direktive oder Befehl [Operanden] [;Kommentar]

Page 10: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 10/26 AVR-Mikrocontrollertechnik

Assembleranweisungen● .DEF Name = Register Bsp.: .DEF Tmp1 = r16

● .EQU Name = Ausdruck Bsp.: .EQU Tab = 0x1AF

● .SET Name = Ausdruck Bsp.: .SET Cnt = 20 (änderbar)

● .INCLUDE "Textdatei" Bsp.: .INCLUDE "m32def.inc"

● .ORG Adresse Bsp.: .ORG 0xD000

● .CSEG (.DSEG, .ESEG)

● .DB (.DW) Liste Bsp.: .DB 0,0xFF,'A', "Hallo",0b11001100

● .BYTE Anzahl Bsp.: .BYTE 5

● .EXIT

Page 11: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 11/26 AVR-Mikrocontrollertechnik

Assemblerbefehle● Besteht aus Opcode und Operand

Bsp: cli, ser r16, ldi r16,100

● Bei zwei Operanden:  Befehl Ziel,Quelle  

● Arithmetische und logische Befehle (Arbeitsregister, beeinflussen Flags (SREG), add, eor, inc, sbiw, mul), Datentransferbefehle (mov, ldi, in, out, st, ld, sts, lds, push, pop, lpm)Sprungbefehle (rjmp, jmp, breq, call, reti),Bitorientierte Befehle (z.B. Flags, sec, lsl), Sonstige Befehle.(nop)

Besonderheiten:● unmittelbare Adressierung (ldi) nur bei Arbeitsregister r16­r31

● Bitweise Adressierung der unteren 32 SF­Register mit sbi und cbi und bitweise Abfrage mit sbic bzw. sbis.

Page 12: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 12/26 AVR-Mikrocontrollertechnik

A2_template.asm

http://www.weigu.lu/a/asm/A2_template.asm

http://www.weigu.lu/a/asm/m32def.inc

Page 13: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 13/26 AVR-Mikrocontrollertechnik

Benötigte Hardware

Page 14: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 14/26 AVR-Mikrocontrollertechnik

Benötigte Hardware

PCProgrammer ATmega32

USBEIA-232

IEEE 1284

ISP-Schnittstelle

Page 15: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 15/26 AVR-Mikrocontrollertechnik

Programmer● Original ATMEL (kompatibel Studio 4 u. Bascom):

Parallel: STK200, STK300Seriell: STK500, AVRISP, AVR­JTAGICE mkIIUSB : AVRISP mkII, AVR Dragon, AVR­JTAGICE mkII

● Nachgebaut:Parallel: STK200­kompatibel, SP12 Programmer Seriell: AVR910,  SI­Prog, Sercon2USB: USB AVR­ISP, usbprog (elektor 10/07)

USBisp, USB avrisp, Evertool, USBasp,AvrUsb500,  AVR­Doper, USBtinyISP,UCOM­IR, 

http://www.mikrocontroller.net/articles/AVR_In_System_Programmer

Page 16: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 16/26 AVR-Mikrocontrollertechnik

USB-AVR-ISP

Page 17: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 17/26 AVR-Mikrocontrollertechnik

ISP-Schnittstelle

RES

ET

SC

K

1

GND

VCC

23456

ISP 6p GLJD

MO

SI

MIS

O

Page 18: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 18/26 AVR-Mikrocontrollertechnik

Software

● Entwicklungsumgebungen:Studio 4 (Win),  WinAVR (AVR­GCC), AVR Eclipse (Win + Linux), KontrollerLab (Linux), CodeVisionAVR C (Win, komm.), Bascom (Win)

● freie Assembler: tavrasm, avra, ava, avr­as, gavrasm ● freie Debugger: simulavr, AVR­GDB● freie C­compiler: avr­gcc (avr­libc)● freie Programmer: avrdude

Page 19: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 19/26 AVR-Mikrocontrollertechnik

Studio 41. Doppelklick auf

Icon Studio 4oder"Start" "Programs" "Atmel AVR Tools" "Studio 4".

2. Für jede Aufgabe einneues Assemblerprojekt!

Projektname = Name der Aufg.(zB A303_dig_out_8bit).

Neues Unterverzeichnis undneue Datei erstellen.

Richtiges Verzeichnis(E:\T2EC_1 statt C\AVR-Assembler)in "Location" angeben dann"Next>>".

Page 20: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 20/26 AVR-Mikrocontrollertechnik

Studio 4

3. AVR Simulator und ATmega32 auswählen.Dann "Finish".

Page 21: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 21/26 AVR-Mikrocontrollertechnik

Studio 44. Klick "File" "Open File...". Datei "A2_template.asm"

öffnen. Inhalt nach A303_dig_out_8bit.asm kopieren.

Page 22: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 22/26 AVR-Mikrocontrollertechnik

Studio 45. Programm beliebig erweitern und abspeichern.

(Achtung: Richtige Pfadangabe für Definitionsdatei!)

Page 23: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 23/26 AVR-Mikrocontrollertechnik

Studio 46. Programm assemblieren mit "Build".

7. Falls Fehler debuggen.

Page 24: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 24/26 AVR-Mikrocontrollertechnik

Studio 48. "Connect"-Icon anklicken und

Programmiergerät auswählen.

Page 25: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 25/26 AVR-Mikrocontrollertechnik

Studio 49. Hexdatei auswählen und

"Program" anklicken.

Page 26: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich

2008 26/26 AVR-Mikrocontrollertechnik

Studio 4Zusammenfassung:

● Projekt öffnen● Vorlage (A2_template.asm)  in "Entry"­Datei 

kopieren und Programm erstellen● Assemblieren mit "Build"● Falls Fehler ev. Debuggen (Simulieren)● Programmieren