Programmierung von Mikrocontrollern am Beispiel des ATMEL ATmega32



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

Einführung in die Welt der Microcontroller

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

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

Parallel-IO. Ports am ATmega128

Mikrocontroller Grundlagen. Markus Koch April 2011

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

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Programmieren in C Teil 3: Mikrocontrollerprogrammierung

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

AVR-Mikrocontroller mit dem GCC programmieren

Tag 2 Eingabe und Interrupts

Quanton Manual (de) Datum: URL: )

& & & & 7, * 5-6 & +&/ ++ ( ( +2:/ " ; + &/ < ' *6 " >. &/ , "? 2 > 4 " +" 3 &/ 3 + +? +&/ +? 2 &/ ! "# $% & ' ()* # +,- -)***.

Mikrocomputertechnik

Serielladapter SerCon V1.1

AVR Experimentierboard

ATMega2560Controllerboard

Mikrocontroller - Schnelleinstieg

BLIT2008-Board. Uwe Berger

Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014

VarioTAP Einführung Hosea L. Busse

BitRecords FPGA Modul XC6SLX25_V2.0, Mai2013 1

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Bedienungsanleitung Version 1.0

U5-2 Register beim AVR-µC

ateval-board Aufbauanleitung & Handbuch

Anschluss des ISP-Programmieradapters. Erste Programmierung mit Bascom

Microcontroller Programmierung. Ein PDV-Vertiefungsprojekt von: Chr. Schulz, P. Simon und D. Stein Sommersemester 2005 Version 1.0

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


Aufbauanleitung für das Atmega-Board Version 1.1

Programmierung Tiny45 für DCC Lokdecoder

Vierfach-Bluetooth Relais PL0051

IOBoard. Bedienungsanleitung. Version 1.2. November IOBoard-Bedienungsanleitung Neobotix GmbH alle Rechte vorbehalten 1 von 11

AT90USB Plug. Mini-Entwicklungswerkzeug. Nutzerhandbuch

Ingenieurbüro Bernhard Redemann Elektronik, Netzwerk, Schulung. -Datenblatt- Bernhard Redemann

Projekt 25 ASURO ARX-03

Inhalt. Pegelumsetzer USB/MP Interface zwischen einer USBund einer MP-Schnittstelle

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

Sensor board EB

UART-Kommunikation mit dem Atmel AVR

Bedienungsanleitung TIME IT. a Look Solutions 1 product

GOBio. Kontrolle mit Fingerabdrücken. 868 MHz Handsender mit biometrischer Aktivierung

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Digitalelektronik 4 Vom Transistor zum Bit. Stefan Rothe

Atmel AVR für Dummies

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Das Pollin Atmel Evaluationboard Ver unter Verwendung von MyAVR_Prog Tool und der Arduino IDE ein Kurztutorial

3,2" Touch-LCD-Farbgrafikdisplay mit High-Level-Grafikcontroller

ZIP-USB-MP Interface zwischen einer USB- und einer MP-Schnittstelle

Network Controller TCP/IP

Tickt ihr Board noch richtig? Frequenzmessung durch ChipVORX als Ergänzung zum Boundary Scan Test. Dipl.-Ing. (FH) Martin Borowski

Transparente Kommunikation zwischen SPS / PC und TOSHIBA Frequenzumrichtern

C und C++ für Embedded Systems

Interrupt-Programmierung

Anleitung TempCW 2011

I/O Erweiterungsmodule. Handbuch D16 D15 D14 D13 D12 D11 D10 D9 D17 D18 D1 D2 D3 D4 D5 D6 D7 D ma

Einfache Computersteuerung für Modellbahnen

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Inbetriebnahme grabbmodul-1 / minimodul-16x bzw. smarteye-1

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

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

Debug-Adapter für das UniDSP56

Einführung in AVR-Assembler

Fortbildungsmodule >> Elektrotechnik. Modulpräzisierung zu Modul 22 >> µc. Teilmodul 22.1 Grundlagen µcontroller 8051

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

32-Bit Microcontroller based, passive and intelligent UHF RFID Gen2 Tag. Zürcher Fachhochschule

LCA-2. Auszug aus unserem Online-Katalog: Stand:

Hex Datei mit Atmel Studio 6 erstellen

Inhaltsverzeichnis

ARAkoll 2013 Dokumentation. Datum:

Serie 8: Microcontroller 17./

Anleitung zur Nutzung des SharePort Utility

Produktinformation USB AVR Lab

LED DMX Modul MIDI / MAXI. Produktblatt Bestellnummer: /

Produktinformationen. Basis Set Atmel Atmega8 & ISP Programmer. Lieferumfang :

Debugging mit uclinux auf ARM-Prozessoren

Verbindung zwischen PC und Mikrokontroler Blue-Tooth-Modul Schaltung Parametrierung kein zusätzliches LF

Verwendung von SD-Speicherkarten über den SPI-Bus

Wie in der Skizze zu sehen ist, bleibt die Periodendauer / Frequenz konstant und nur die Pulsweite ändert sich.

Benutzung der LS-Miniscanner

Konfiguration des eigenen TUphone-Profils über TISS

2-Draht Netzwerkübertrager-Set mit POE

CARD STAR /medic2 und CARD STAR /memo3 Installation des USB-Treibers (Administrator-Tätigkeit) Stand

Handbuch USB-Isolator

TBE332 Controller. Produktbeschreibung

Kurzanleitung BKB-E-Banking-Stick

Programmierung von ATMEL AVR Mikroprozessoren am Beispiel des ATtiny13. Teil 8: Ein Sinusgenerator mit AVR-Timer

Kommunikation mehrerer PCs über Hubs

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

AVR-Mikrocontrollertechnik

Refresh vom Vortag. Kommunikation zur SPS (2) Hardwaretest Variablenfenster

Anleitung für DT-TPC Tel Modul

Version /08. DiMAX 100A PC Modul

Lötanleitung für das Atmega-Basis-Board Version 1.2

EURO5 PASSTHRU RE-PROGRAMMIERUNG VON STEUERGERÄTEN HINWEISE ZUR RE-PROGRAMMIERUNG VON STEUERGERÄTEN MIT OTC D650 (INSTALLATION OTC PASSTHRU SOFTWARE

Transkript:

Fakultät Elektrotechnik und Informationstechnik, Professur für Prozessleittechnik Prozessinformationsverarbeitung (PIV) Programmierung von Mikrocontrollern am Beispiel des ATMEL ATmega32 Professur für Prozessleittechnik Wintersemester 2008/2009

1. Architektur

1.1. Überblick Quelle: ATMEL Corp.

1.2. Allgemeine Merkmale 8-Bit-RISC-Prozessor Harvard-Architektur 32 Universal-Register Befehlssatz mit 131 Assembler-Befehlen Integrierte Multipliziereinheit Ausführungszeit zwischen 1 und 4 Takten Taktfrequenz bis 16 Mhz Umfangreiche Peripherie

1.3. Kernarchitektur 32K Byte Flash-Programmspeicher 1K Byte EEPROM Datenspeicher 2K Byte SRAM Speicher Interner und externer Taktgeber 21 Interne und externe Interrupt-Quellen 6 verschiedene Energiesparzustände JTAG-Schnittstelle mit Online-Debugging Bootloader-Unterstützung

1.4. Peripherie 32 Tri-Stated GPIO in vier Registern 8-Bit und 16-Bit Timer/Counter mit PWM 10-Bit ADC (Single-Ended/Differential) Analog-Komparator Programmierbare USART-Schnittstelle TWI-Schnittstelle (I²C-kompatibel) SPI-Schnittstelle (Master/Slave) Watchdog-Timer und Spannungsausfallerkennung

2. Grundlagen der Programmierung von AVRMikrocontrollern in C

2.1. Prinzipielle Vorgehensweise 1. Auswahl und Konfiguration von µc und Peripherie (Datenblatt) 2. Entwurf und Implementierung von Algorithmus und Kontrollstrukturen (beliebiger ANSI-C Compiler) 3. Portierung des Entwurfs auf den µc (Simulator) 4. Implementierung auf dem Zielsystem (JTAG) Dabei zunächst Recherche nach vorhandenen Quellen, danach Entwurf eigener Lösungen!

2.2. Besonderheiten der Konfiguration von µc Steuer- und Statusregister Konfiguration sämtlicher Laufzeitfunktionen Anzeige des aktuellen Systemstatus Fuse-Bits Konfiguration der Betriebsparameter vor Inbetriebnahme (abgelegt im EEPROM) z.b.: Taktgeber, JTAG-/Bootloader-Aktivierung Lock-Bits Schreib- und Leserestriktionen auf den Speicher

2.2. Besonderheiten der Konfiguration von µc Quelle: ATMEL Corp. Quelle: AVR-Studio

2.3. Interrupts 21 Interrupts für ATmega32 Interrupt-Behandlung ist Compiler-abhängig Aktivierung über Steuer-Register Behandlung durch Service-Routinen Aktivierte Interrupts müssen behandelt werden! Global Interrupt Enable Bit muss gesetzt werden! (Befehl: sei())

2.3. Interrupts Quelle: ATMEL Corp. Quelle: GNU C Library Documentation

2.4. Zugriffe auf IO-Ports GPIO-Pins sind Tri-Stated (High/Low/High-Res) und besitzen interne Pull-Up-Widerstände Steuerregister: DDRx (Data Direction Register) DDn = 1 ~ Ausgang, DDn = 0 ~ Eingang Steuerregister: PORTx (Data Register) DDn = 1: PORTxn = 0 ~ Low, PORTxn = 1 ~ High DDn = 0: PORTxn = 1 ~ Pull-Up aktiviert, PORTxn = 0 ~ Ausgang tri-stated Statusregister: PINx (Port Input Register) Aktuelle Pinbelegung (Register ist Read-Only)

2.5. Der JTAG-Standard Joint Test Action Group IEEE 1149.1 Verfahren zum Programmieren und Testen von Programmen direkt in der Schaltung Boundary Scan Test Debugger hat Zugang zu sämtlichen Speichern, allen Registern, der Peripherie und dem Programmzähler Ermöglicht Einzelschritt-, Brakepoint-, On-Change-Debugging Benötigt JTAG-Schnittstelle (Test Access Port TAP) 4 Pins zzgl. Spannungsversorgung, aktivierbar via Fuse-Bit Benötigt ein separates JTAG-Programmiergerät

2.6. Der AVR-Bootloader Fähigkeit des Systems, sich über jede beliebige Datenschnittstelle selbst zu programmieren Spezielles Programm, dass Daten aus einer beliebigen Quelle lesen und parallel in den Flash-Speicher schreiben kann Residiert in einem separaten, konfigurierbaren Bereich des FlashSpeichers (der ebenfalls beschrieben werden kann!) Konfigurierbar über Fuse-Bits Schutz durch Lock-Bits möglich Ermöglicht Updates, Rekonfigurationen und Versionierung der Systeme

Entwicklungswerkzeuge

3.1. Die avr-gcc Toolchain AVR-GCC: Frontend der GCC (GNU-CompilerCollection) für die AVR-Plattform Treiber-Programm für andere Teilprogramme GNU Binutils: Binary Utilities Assembler (as), Linker (ld) und andere Programme avr-libc Standard-C-Bibliothek für AVR-Prozessoren Teile der ANSI-C sowie AVR-spezifische Funktionen

3.1. Die avr-gcc Toolchain AVR-DUDE: In-System-Programmer AVR-GDB: Kommandozeilen-Debugger AVaRICE: Backend-Programm für GDB zur Verwendung der JTAG-Schnittstelle SimulAVR: Backend-Programm für GDB zur Simulation von AVR-Prozessoren Make: Interpreter für Makefile-Skripte zahlreiche Alternativen verfügbar

3.2. AVR-Studio und WinAVR WinAVR: Werkzeugsammlung für MS Windows AVR-Studio: Graphische IDE von ATMEL Assembler, Programmer, Simulator, Terminal C-Compiler unter Nutzung von WinAVR Graphische Projektkonfiguration Voll kompatibel zu allen ATMEL-Entwicklungswerkzeugen

3.3. Weitere Entwicklungsumgebungen Eclipse-AVR-Plugin Kostenfrei, plattformunabhängig nutzt avr-gcc Toolchain CodeVision-AVR Kostenpflichtige IDE Nutzt eigene C-Bibliothek, aber AVR-Studio-Simulator IAR-Workbench Professionelle, kostenpflichtige IDE

3.4. Die STK500 Plattform Quelle: ATMEL Corp.

3.4. Die STK500 Plattform Entwicklungsplatform für AVR-Prozessoren Sockel für DIP8, DIP20, DIP28 und DIP40 Gehäuse Einstellbare Board- und Referenzspannung von 0-6 Volt Einstellbarer Boardtakt von 0-3,686 MHz Parallele und serielle Programmierung RS232-Schnittstelle zur Konfiguration und Programmierung RS232-Schnittstelle zur Kommunikation mit dem Prozessor Je acht Taster und acht LEDs zur Benutzerinteraktion Verschiedene Takt- und Resetquellen verfügbar Keine JTAG-Unterstützung

3.5.Hinweise zur Verwendung der STK500Plattform 12-15 Volt Betriebsspannung, verpolungstolerant Anschluss des Boards an PC mittels RS232 Auswahl des Zielsockels mittels 6-pol. Flachbandkabel Anschluss der Peripherie über Flachbandkabel Auswahl der Takt-, Spannungs- und Resetquelle über Jumper Konfiguration von Spannung und Takt über AVR-Studio Beschriftung auf der Unterseite des Boards beachten

3.5.Hinweise zur Verwendung der STK500Plattform Auswahl des Sockels: Anschluss über Flachbandkabel Bei internem Sockel Farbcodierung beachten Bei externem Sockel Polung beachten! Quelle: ATMEL Corp.

3.5.Hinweise zur Verwendung der STK500Plattform Auswahl der Spannungsquellen: VTARGET verbindet interne Spannungsversorgung Niemals interne und externe Spannung gleichzeitig! AREF verbindet interne Referenzspannungsquelle Referenzspannung muss immer kleiner Versorgungsspannung sein! Quelle: ATMEL Corp.

3.5.Hinweise zur Verwendung der STK500Plattform Einstellung der Taktquelle: XTAL1 aktiviert interne Quelle OSCSEL wählt zwischen einstellbarer Quelle und Quarzsockel Konfiguration des Controllers beachten! Quelle: ATMEL Corp.

3.6. STK500 und AVR-Studio Einlesen der Signatur Wichtig zur Überprüfung der Konnektivität Einstellen der Programmiergeschwindigkeit Bei Instabilität schrittweise reduzieren Quelle: AVR-Studio.

3.6. STK500 und AVR-Studio Einstellen der Spannungen ARef ist immer kleiner VTarget Einstellen der Taktfrequenz Nur bei Auswahl der einstellbaren Taktquelle von Belang Quelle: AVR-Studio

3.7. Die STK600 Plattform Quelle: AVR-Praxis GmbH

3.7. Die STK600 Plattform Nachfolger des STK500 Kompatibel zu allen Controllern der Reihen ATmega, Atmega32 und Xmega Anschluss über die USB-Schnittstelle ISP- und JTAG-Programmierung interner und externer Ziele RS232-, USB-, CAN- und LIN-Schnittstelle Je acht Taster und acht LEDs zur Benutzerinteraktion Einstellbare Spannung und Taktfrequenz Konfiguration des Boards über (separat erhältliche) Aufsätze Separate Sockel- und Routingaufsätze ermöglichen die Verwendung der Sockel auch für nicht pinkompatible Controller