AVR-Mikrocontrollertechnik



Ähnliche Dokumente
AVR-Mikrocontrollertechnik

Atmel AVR für Dummies

Makros sind Textersetzungen, welche vom Präprozessor aufgelöst werden. Dies Passiert bevor der Compiler die Datein verarbeitet.

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil IV: Programmieren an Beispielen

CU-R-CONTROL. Beschreibung zur Schaltung ATMega16-32+ISP MC-Controller Steuerung auf Basis ATMEL Mega16/32. Autor: Christian Ulrich

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

B1 Stapelspeicher (stack)

Einführung in die Welt der Microcontroller

Einführung in AVR-Assembler


Wer möchte, kann sein Programm auch auf echter Hardware testen

U5-2 Register beim AVR-µC

Rechnerarchitektur Atmega Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Assembler und Hochsprachen

Erstellen einer GoTalk-Auflage

Ein erstes Assembler-Projekt

Stepperfocuser 2.0 mit Bootloader

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

Mikrocontroller - Schnelleinstieg

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Hex Datei mit Atmel Studio 6 erstellen

Serielladapter SerCon V1.1

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Multitasking / virtuelle Maschinen mittels Atmel AVR- Mikrocontrollern (Simple & Stupid)

Einführungskurs MOODLE Themen:

Anschluss des ISP-Programmieradapters. Erste Programmierung mit Bascom

Eclipse. für die kleinen Dinge des (modernen) Lebens

Parallel-IO. Ports am ATmega128

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Produktinformation USB AVR Lab

Tag 2 Eingabe und Interrupts

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Prozessor HC680 fiktiv

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Die Mikroprogrammebene eines Rechners

QTrade GmbH Landshuter Allee München Seite 1

Fehlermonitor. Software zur seriellen Verbindung PC-Airdos Visualdatensignale und Fehlermeldungen-Ausagabe per SMS / Drucker

Die Tabellenvorlage im Katalog für Tabellen speichern... 2 Weiteres zu Schnellbausteinkatalogen EDV + Didaktik - Dr. Viola Vockrodt-Scholz

Bedienungsanleitung Programmiersoftware Save `n carry PLUS. Inhaltsangabe

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand:

Einrichten einer Toolchain zur Programmierung des Nibo 2 Roboters mit Atmel Studio 6

Installation OMNIKEY 3121 USB

Mikrocontrollertechnik. F5 Erstes Programm. AVR Studio 4

TR75E002-A FA / Bedienungsanleitung Industrie-Handsender-Verwaltung IHV DEUTSCH

Anleitung für die Hausverwaltung

Programmierung Tiny45 für DCC Lokdecoder

Befehlssatz AVR RISC Controller

Microcontroller Kurs Programmieren Microcontroller Kurs/Johannes Fuchs 1

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

S7-Hantierungsbausteine für R355, R6000 und R2700

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Lösungen zum Kurs "Mikrocontroller Hard- und Software

Anleitung zum GUI Version 2.x

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Zertifikat in dakota einlesen Wie lese ich mein Zertifikat in dakota.le ein?

Benutzung der LS-Miniscanner

Mikrocontroller Grundlagen. Markus Koch April 2011

Dokumentation IBIS Monitor

Johann Wolfgang Goethe-Universität

Arbeiten mit UMLed und Delphi

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

XY-Plotter. Hardware. Software µp. Software PC. von Thomas Wagner

Kurzbedienungsanleitung DALI-TOOL

Eigene Dokumente, Fotos, Bilder etc. sichern

Starten Sie Eclipse: Hier tragen sie Ihr Arbeitsverzeichnis ein. Zu Hause z.b. c:\workspace.

BANKETTprofi Telefonschnittstelle

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

Assembler/C Programmierung eines Mikrocontrollers

mosquito GDT-Schnittstelle

Ausbildungsunterlage für die durchgängige Automatisierungslösung Totally Integrated Automation (T I A)

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

Programmieren für Ingenieure Sommer Ein Rechner. Rechner sind überall. Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet.

ANWENDUNGSHINWEISE ZU SYMBOLSTIX

Datenexport aus JS - Software

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

CardioChek Link Benutzerhandbuch

Anleitung zur Installation des Printservers

Datenbanken Kapitel 2

Stand: Adressnummern ändern Modulbeschreibung

Microsoft Visual Studio Community 2015

Audiospektrum- Analyse mit Mikrocontrollern

TISIS - Industrie 4.0. Ereignis, Ort, Datum

Objektorientiertes Programmieren mit Suse Linux

7. Arduino-Stammtisch: Tool-Chain und eigene Bibliotheken

Tutorial -

W&W Einwohnerkontrolle. EKI Version mit Objektregister (Datenimport)

Hilfe Bearbeitung von Rahmenleistungsverzeichnissen

White Paper - Umsatzsteuervoranmeldung Österreich ab 01/2012

Einrichtung des DFÜ-Netzwerkes

Inventarverwaltung mit Access 2007/10

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Elexis - Afinion AS100 Connector

Transkript:

1/31 Ziele der Weiterbildung Vermitteln von Grundlagen zu den AVR Controllern Vermitteln von Assembler Grundlagen Vorstellen der benötigten Hard und Software Eigenständiges Programmieren der Controller Vermitteln von weiterführendem Wissen anhand praktisch durchgeführter Beispiele (Tabellen, Interrupts, serielle Schnittstelle)

Weiterbildung Eigenschaften der Mikrocontroller Speicheraufteilung (Memory Map) Assemblerdirektiven (Assemblervorlage) Benötigte Hard und Software Praktische Aufgabe: "Hello World in Assembler" 2/31

3/31 Mikrocontrollerkurs auf weigu.lu Nach einem Klick auf den Buchstaben A befindet man sich auf der Seite http://www.weigu.lu/a

4/31 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).

5/31 Eigenschaften der AVR-Controller Mikrocontroller beinhaltet CPU, Speicher und mehrere Ein-/Ausgabebausteine

6/31 Eigenschaften der AVR-Controller 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 Quelle: ATMEL 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

Verschiedene Controller 9 mm 7/31

Memory Map 8/31

9/31 Assemblerprogrammierung Wort Assembler hat 2 Bedeutungen: 1. maschinennahe Computersprache 2. Ü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 Programmiervorlage um die Programmierung zu Beschleunigen wird mit beim Programmieren mit einer Vorlage (A2_template.asm) gearbeitet.

10/31 Assemblerprogrammierung [Label:]Direktive oder Befehl [Operanden] [;Kommentar] Label sind erfundene Namen für Speicheradressen Der Assembler kümmert sich um die Zuweisung. Direktiven sind Pseudobefehle des Assembler Diese 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.

11/31 Assembleranweisungen.DEF Name = Register Bsp.:.DEF Tmp1 = r16.equ Name = Ausdruck Bsp.:.EQU Tab = 0x1AF.SET Name = Ausdruck Bsp.:.SET Cnt = 20.INCLUDE.ORG.CSEG (.DSEG,.ESEG).DB (.DW) Liste Bsp.:.DB 0,0xFF,'A', "Hallo",0b11001100.BYTE Anzahl Bsp.:.BYTE 5.EXIT "Textdatei" Adresse (änderbar) Bsp.:.INCLUDE "m32def.inc" Bsp.:.ORG 0xD000

12/31 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.

A2_template.asm http://www.weigu.lu/a/asm/a2_template.asm http://www.weigu.lu/a/asm/m32def.inc 13/31

Benötigte Hardware 14/31

Benötigte Hardware USB EIA-232 IEEE 1284 PC ISPSchnittstelle Programmer ATmega32 15/31

16/31 Programmer Original ATMEL (kompatibel Studio 4 u. Bascom): Parallel: Seriell: USB : STK200, STK300 STK500, AVRISP, AVR JTAGICE mkii AVRISP mkii, AVR Dragon, AVR JTAGICE mkii Nachgebaut: Parallel: Seriell: STK200 kompatibel, SP12 Programmer AVR910, SI Prog, Sercon2 USB: 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

USB-AVR-ISP 17/31

6 5 RESET MISO MOSI SCK ISP-Schnittstelle 4 ISP 6p GLJD 3 2 1 VCC GND 18/31

19/31 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

20/31 Digitale Ein- und Ausgabe ATmega32: 4 Ports A D mit je 8 Pins (Bit) = 32 individuell ansteuerbare E/A Pins. Jeder dieser Pins kann als Eingang oder Ausgang konfiguriert werden. Als Eingang kann ein interner Pull Up Widerstand dazugeschaltet werden. Achtung: alle Pins sind mindestens doppelt belegt. Für die Programmierung eines Pins n stehen drei Bits in drei Registern (x = Portname A D) zur Verfügung:

21/31 Digitale Ein- und Ausgabe Datenrichtungsregister DDRx (Data Direction Reg.) Legt (meist im Initialisierungsteil) fest ob ein Pin als Ein oder Ausgang verwendet wird. 0 = Eingang (default) 1 = Ausgang Unbenutzt sollte ein Pin immer als Eingang deklariert werden. Beispiele: ldi out r16,0xf0 DDRD,r16 ;obere 4 Bit Ausgang, untere ;4 Bit als Eingang(unbenutzt) sbi cbi DDRA,3 DDRA,4 ;Pin 3 (PORTA3,PA3) = Ausgang ;Pin 4 (PORTA3,PA3) = Eingang

22/31 Digitale Ein- und Ausgabe Datenausgaberegister PORTx (PORTx Data Reg.) Über das Datenausgaberegister werden die Daten an die einzelnen Pins ausgegeben (les und schreibbar). Ist ein Pin als Eingang initialisiert dann besitzt dieses Register eine andere Funktion! Mit einer Eins kann dann ein interner Pull Up Widerstand zum Eingangspin zugeschaltet werden. Beispiele: ldi out sbi Tmp1,'A' PORTD,Tmp1 PORTB,7 ;ASCII-Code von 'A' auf LEDs ; ;oberste LED PB7 einschalten cbi sbi DDRD,0 PORTD,0 ;PD0 = Eingang ;internen Pull-Up-Widerstand zuschalten

23/31 Digitale Ein- und Ausgabe Dateneingaberegister PINx (PORTx INput Pins Adress) Über das Dateneingaberegister PINx werden Daten eingelesen. Es ist nur lesbar (an sich ist PINx kein klassisches Register, denn die Bits folgen augenblicklich dem Zustand der Pins). Beispiele: Tmp1,PINA Tmp1,0x80 SW_ON ;PORTA (8 Bit) einlesen ;maskiere oberstes Bit ;falls Null dann nach SW_ON SW_ON: in andi breq...... PINA,7 ;ueberspringe naechste ;Zeile falls PA7=0 SW_OFF: sbis......

Studio 4 1. Doppelklick auf Icon Studio 4. 2. Projektname = A303 Verzeichnis in "Location" angeben dann "Next>>". 3. AVR Simulator und Baustein auswählen dann "Finish". 24/31

Studio 4 4. Klick "File" "Open File...". Datei "A2_template.asm" öffnen. Inhalt nach A303_dig_out-8bit.asm kopieren. 25/31

Studio 4 5. Programm beliebig erweitern und abspeichern. (Achtung: Richtige Pfadangabe für Definitionsdatei!) 26/31

Studio 4 6. Programm assemblieren mit "Build". 27/31

Studio 4 7. "Connect"-Icon anklicken und Programmiergerät auswählen. 28/31

Studio 4 8. Hexdatei auswählen und "Program" anklicken. 29/31

30/31 Erstes Programm: A303_dig_out_8bit.asm Das erste Programm soll acht LEDs gleichzeitig einschalten. Dazu sind acht LEDs mit den acht Pins von PORTD zu verbinden. Erstelle das Programm indem du die Vorlage ergänzt. Speichere das Programm mit dem Namen "A303_dig_out_8bit.asm" ab. Teste das Programm! Simuliere das Programm im Studio 4 (Funktion "Debug")

31/31 Zweites Programm: A304_dig_out_1bit.asm Schreibe das Programm so um, dass nur die LED an Pin 5 aufleuchtet. Dabei soll nur die Initialisierung so verändert werden, dass alle nicht benötigten Pins als Eingänge konfiguriert sind. Speichere das Programm mit dem Namen "A304_dig_out_1bit.asm" ab. Teste das Programm!