AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik...
Transcript of AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik...
![Page 1: AVR-Mikrocontrollertechnik - weigu.lu · 2008 9/26 AVR-Mikrocontrollertechnik Assemblerprogrammierung Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/1.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/3.jpg)
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.
● HarvardArchitektur: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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/4.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/5.jpg)
2008 5/26 AVR-Mikrocontrollertechnik
● Viele unterschiedliche Controller und Gehäuseformen mit AVRKern: 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)
● InSystem Programming (ISP)OnChip Debugging and Insystem verification (JTAGInterface)
● 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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/6.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/8.jpg)
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.
● AssemblerProgrammiervorlageum 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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/9.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/10.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/11.jpg)
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 r16r31
● Bitweise Adressierung der unteren 32 SFRegister 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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/12.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/13.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/14.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/15.jpg)
2008 15/26 AVR-Mikrocontrollertechnik
Programmer● Original ATMEL (kompatibel Studio 4 u. Bascom):
Parallel: STK200, STK300Seriell: STK500, AVRISP, AVRJTAGICE mkIIUSB : AVRISP mkII, AVR Dragon, AVRJTAGICE mkII
● Nachgebaut:Parallel: STK200kompatibel, SP12 Programmer Seriell: AVR910, SIProg, Sercon2USB: USB AVRISP, usbprog (elektor 10/07)
USBisp, USB avrisp, Evertool, USBasp,AvrUsb500, AVRDoper, USBtinyISP,UCOMIR,
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/16.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/18.jpg)
2008 18/26 AVR-Mikrocontrollertechnik
Software
● Entwicklungsumgebungen:Studio 4 (Win), WinAVR (AVRGCC), AVR Eclipse (Win + Linux), KontrollerLab (Linux), CodeVisionAVR C (Win, komm.), Bascom (Win)
● freie Assembler: tavrasm, avra, ava, avras, gavrasm ● freie Debugger: simulavr, AVRGDB● freie Ccompiler: avrgcc (avrlibc)● 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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/20.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/21.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/23.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/24.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/25.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022040419/5dd11603d6be591ccb642731/html5/thumbnails/26.jpg)
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