Mikrocontroller - Tipps & Tricks



Ähnliche Dokumente
Einführung in die Welt der Microcontroller

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

Atmel AVR für Dummies

Quanton Manual (de) Datum: URL: )

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

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

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Was unterscheidet Microcontroller von einem PC ( Laptop ) oder einem Handy

Zusatzplatine MP-Bus HZS 562

Elektrische Logigsystem mit Rückführung

Betriebsanleitung Modbus-Konverter Unigate-CL-RS

Grundlagen der Informatik 2. Grundlagen der Digitaltechnik. 5. Digitale Speicherbausteine

Mikrocontroller Grundlagen. Markus Koch April 2011

3.14 Die Programmieroberfläche Programmierung

Tag 2 Eingabe und Interrupts

Softwarelösungen: Versuch 4

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

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Grundtypen Flip-Flops

Schaltungen Jörg Roth 197

Interrupt-Programmierung

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Tech Note: SYSTEMVARIABLEN SIO_RJ11_BAUDRATE. Tel.: +43 (0) 3159/ Products: SLS Produkte A-8344 Bad Gleichenberg

Die AVR Mikrocontrollerfamilie

UART-Kommunikation mit dem Atmel AVR

Bau und Programmieranleitung für den IR - Booster. Vorbemerkungen

ateval-board Aufbauanleitung & Handbuch

1 Aufgaben zu Wie funktioniert ein Computer?

Vorläufiges. Handbuch

DST EINFÜHRUNG IN MRT (V2)

Produktinformation TROXNETCOM-AS-Interface Planung

AN025. Application Note 025 zu MODULAR-4 (ML3 und ML5) Messen der CPU-Auslastung im Echtzeitbetrieb

Zu DT Übung 11.1 FF oben links. (Lösungsvorschlag)

Beispiel: Siemens AG 900E03 9 Seiten Update:

AVR-Mikrocontroller mit dem GCC programmieren

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

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

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

Hardware Leitungscodierung und Protokoll

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

Programmierung mit NQC: Kommunikation zwischen zwei RCX

BERECHNUNG DER FRIST ZUR STELLUNGNAHME DES BETRIEBSRATES BEI KÜNDIGUNG

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

Programmierung Tiny45 für DCC Lokdecoder

Übersicht und Dokumentation der Reset- Funktionen der IO CONNECT

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

Network Controller TCP/IP

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

Round-Robin Scheduling (RR)

ecaros2 - Accountmanager

Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux. Kolloquium von Frank Schwanz

9 Flipflops (FF) Basis-FF. (Auffang-FF, Latch) praxis verstehen chancen erkennen zukunft gestalten 9-1

Interrupts. Funktionsprinzip. Funktionsprinzip. Beispiel in C

Prof.Dr. R. Kessler, C:\ro\Si05\Andy\tephys\Bahm2\PWM-Modul_Demodul2.doc, S. 1/7

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Anleitung zur Nutzung des SharePort Utility

Versuch 3: Sequenzielle Logik

Dokumentation IBIS Monitor

Virtuelle COM-Schnittstelle umbenennen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

Zähler- und Zeitgeber-Baugruppen

Zwischenablage (Bilder, Texte,...)

High Performance Datenerfassung Tests am Beispiel WEGA

Steuerung DLS ECKLITE SC und SC xx-enc

Fakultät für Technik Technische Informatik Entwicklung einer Kombinierte Hard-/Software- Schnittstelle zur Anbindung von einfachen Sensoren und

Clustering (hierarchische Algorithmen)

IPEmotion CAN Bus Traffic Speichern, Auswerten, Simulieren PM (V2.3)

VarioTAP Einführung Hosea L. Busse

Teil I: Wat isse ne Mikrokontroller?

COMET - Speed Seite 1

DSO. Abtastrate und Speichertiefe

Prozess-rechner. auch im Büro. Automation und Prozessrechentechnik. Prozessrechner. Sommersemester Prozess I/O. zu und von anderen Rechnern

Pflichtenheft. Projektteam. Rexford Osei - Frey Michael Weichert Thomas Thutewohl. Pflichtenheft Seite 1 von 7


Aufgabenstellung Praktikum Mikrorechentechnik Sommersemester 2014

10.0 Quick Start mit AT89LP2052 Elliptecmotor Kit

MIT DEM BUS IM REBREATHER

Ergänzungen zum Manual OS V 2.05/2.06

Elexis - Afinion AS100 Connector

Bei Verwendung der Kaskade dürfen nur am letzten Baustein die Ausgänge A1-A4 verwendet werden!

Modem: Intern o. extern

Installation & erste Schritte

OpenSunTracker Softwareinstallation

Simulation LIF5000. Abbildung 1

ATMega2560Controllerboard

ELVIS - d. Schwarzschrift Anzeige Gerät. für ELOTYPE 4 / 4E. Bedienungsanleitung. Stand: August 1999

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

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

Anbindung LMS an Siemens S7. Information

Flipflops. asynchron: Q t Q t+t

K-TAG Master. Dateientschlüsselung/ Dateiverschlüsselung für Slaves. Version 1.0

ZVT TA7.0 Protokoll beim ICT250 aktivieren

10. Elektrische Logiksysteme mit

Fehlerdiagnose / Fehlerbehandlung

Local Control Network

Transkript:

Mikrocontroller - Tipps & Tricks Mikrocontroller vs. CPU CPU alles RAM, viel RAM Keine On-Chip Peripherie Viele Chips, Motherboard Mikrocontroller Wenig RAM, Flash im Chip mit drin Peripherie an Board (Timer, ADC, UART, etc) Ein Chip Software läuft aus dem Flash, sofort...

Mikrocontroller - Tipps & Tricks EEPROM vs FLASH EEPROM Flash Byteweise löschen / programmieren Einfache Schnittstelle (schreiben = programmieren) Sektorweise löschen, wortweise schreiben Flashbefehle über Adreß / Datenbus, Status zurück

Mikrocontroller - Tipps & Tricks FPGA vs CPLD FPGA CPLD RAM-basiert, Viel RAM, wenig Logikgatter, undefiniertes Timing, Look-up-tables im RAM Boot-ROM notwendig Flashbasiert, kein Boot-ROM Viele Logikgatter, schnelles wohldefiniertes Timing Wenig Speichermöglichkeiten

Mikrocontroller - Tipps & Tricks Timer/Counter Zählen von Ereignissen Flanken Spezialfall Quadruppel Eingang (Odometrie) Messen von Zeit Capture Eingang Freuenz messen Pulsweite messen Compare Ausgang PWM ausgeben Puls, definierter Länge ausgeben

Timer / Counter Eingang Zähler Steigende Flanken fallende Flanken Beide Flanken Vorteiler CPU-Takt / 2er-Potenz (8,32, 128) Takt durch variablen Timer (anderer Timerüberlauf)

Timer / Counter Timer Register 8, 16 oder 32 Bit Reload-Register Manuel laden Löschen Hochzählen Runterzählen 00 10 01 11

Timer / Counter Ereignisse Interrupts Überlauf (Raster Aufruf, Timeout) Compare (Compare-Update) Capture(Capture-Wert abholen) Start A/D-Wandler etc. Ausgaben Pin togglen, setzen oder löschen (Pulse, PWM, Frequenzausgabe)

Timer / Counter PWM ausgeben (z.b. Dimmer, Motor) Timerüberlauf = Frequenz Compare-Wert = Tastverhältnis

Timer / Counter PWM messen Capture-Event fotografiert Timer z.b. Timer Reset bei fallender Flanke, Foto, auslesen bei steigender Flanke Foto, auslesen Foto, auslesen

Timer / Counter Frequenzmessung (Radgeschwindigkeit) Durchschnitt vom Messraster Anzahl der Flanken / dt (Differenz der zuletzt gemessenen Zeitpunkte : Capture) (... / 2) Messraster Messraster dt

A/D - Wandler ADC Analog-Multiplexer Sample & hold Wandler Multiplexer Sample&Hold Wandler 1pF

A/D - Wandler Anforderungen am Eingang Signal muß niederohmig sein, wegen schneller Laden des Hold -Kondensator z.b. Kondensator (1nF) direkt am A/D-Eingang (Umladen 1nF => 1pF, Fehler max. 1/1000) Multiplexer Sample&Hold Wandler 1nF 1pF

A/D - Wandler ADC Abtasten - Theorie Filter mit Grenzfrequenz < halbe Abstastfrequenz Sonst Aliasing RC-Glied, PT1-Filter einfach aber schlecht Oversampling 5-10 fach Shannon, Nyquist

Mikrocontroller - Tipps & Tricks Schnittstellen U(S)ART (seriell) I2C (TWI) SPI CAN

UART (SCI) Baudrate auf beiden Seiten bekannt, gleich Baudratenteiler vom CPU-Takt abgeleitet, Fehler < 5% Kreuzung TX RX, bidirektionale Kommunikation Bis 115200 Baud RX RX TX TX

UART (SCI) 1 Startbit (Low), 7-8 Daten Bits, (Parität), 0-2 Stoppbits (High) Baudraten: 9600, 19200, 38400, 115200 Beispiel: 8n1, 8 Datenbits, keine Parität, 1 Stoppbit Start Stop D0 D1 D2 D3 D4 D5 D6 D7

UART (SCI) Nachteil: Anforderung an den Takt (Quartz) Hoher HW-Aufwand im Controller Kein Bus... i.d.r. Punkt zu Punkt Vorteil Frameüberwachung möglich Einfach und sicher Direkt an PC ist kein Problem Weit verbreitet, einfache Verdrahtung

I2C (TWI) Baudrate auf SCL vorgegeben Framing, Start-Condition, Stop-Condition Acknowledge Bus von je 2 Open-Collector Aus-/Eingängen Adressierung 4k7 4k7 SCL SDA

I2C (TWI) Startcondition, 7 Adress-Bits, R/W-Bit, Acknowlegde, Daten, Stopcondition SDA A6 A5 A4 A3 A2 A1 A0 RW ACK Startcondition Stopcondition SCL

I2C (TWI) Verwendung Sensoren (Naviboard2...) AD-Wandler Speicher (EEPROM) Latches etc.

I2C (TWI) Nachteil: Störanfällig ungwollte Start/Stopconditions Auf Lowziehen eines Teilnehmers legt den Bus lahm (Freitakten auch nicht möglich wenn SCL auf low) Vorteil Bus, Acknowlegdes, Überwachbarkeit Geringer HW Aufwand Multimaster, Adressierung sehr flexibel Weit verbreitet, einfache Verdrahtung

SPI Takt kommt vom Master CS, zum Aktivieren/Deaktivieren des Slaves Gleichzeitige bidirektionale Kommunikation Prinzip Shift-Register, extrem einfache Controller HW Master SCLK MOSI MISO CS Slave

SPI Start mit Chipselect CS SCLK MOSI B0 B1 B2 B3 B4 B5 B6 B7 MISO B0 B1 B2 B3 B4 B5 B6 B7 MISO MOSI CLK

SPI Nachteile Störanfällig auf der SCLK-Leitung (kurz halten!) Klare Master/Slave Einteilung CS notwendig per Slave Vorteile Billig in HW CS kann genutzt werden um Slave zu deaktivieren Kann teilweise sehr hoch getaktet werden Weit verbreitet

SPI Verwendung SD / MMC-Karte Sensoren Speicher Latches AVR-ISP (in system programming) etc.

CAN CAN Entwickelt von Bosch (1987) 2 Draht Bus, Differenzsignal Automotiv, robust Alle hören alles (jedes Bit) Länge < 32m, Baudrate <=1MBaud Eingebaute Diagnose, mit heilen, und abschalten Abschlusswiderstände 120 Ohm an jeder Seite (2x)

CAN CAN Message-Konzept: Message Filterung Mailbox-Konzept CAN Id (11 oder 29 Bit) Bis zu 8 Byte Daten CRC16 Checksumme Acknowlegde Alle dürfen meckern...

Interrupts Interrupts Unterbrechung des normalen Programmablaufs, auf ein Ereignis (HW oder SW) - IR-Vektor Sichern aller gebrauchten Register Ausführen der Routine Zurückschreiben der Sicherung, Rücksprung Andere Regeln während der Interruptausführung, kurz halten, keine Routinen die Interrupts sperren oder freigeben Programm Interrupt Programm

Interrupts Nesting Interrupts können auch während Interrupts kommen Programm Interrupt1 Interrupt2 Programm Interrupts können Interrupts unterbrechen bei höherer Priorität - Nesting Programm Interrupt1 Interrupt2 Interrupt1 Programm

Interrupts Nesting - Techniken Software (z.b. AVR) Sperren aller Interrupts Sperren nieder priorer Features Interupts freigeben, am Ende restaurieren Hardware (z.b. Cortex-M, C167) Prozessor(IR-Controller) hat im eigenen Status die aktuelle Priorität auf der gerade ausgeführt wird Nur höhere Prios werden sofort ausgeführt, andere hinten angestellt

DMA Reduktion von Interrupts durch DMA Abholen von n AD-Werten in eine Tabelle Empfang von n Bytes über SCI/SPI/I2C Sendem von n Bytes über SCI/SPI/I2C Stört den Programmablauf nur wenig Interrupts benötigen meist viel Zeit, gerade bei großen, modernen Prozessoren (Cache, FPU, etc)

Scheduling Scheduler Routine, die Taskkontexte (Stack, Register) wechselt, bei Bedarf nach Prioritäten und Status der Tasks Wird Aufgerufen von: SW selber, ich will jetzt die Kontrolle aufgeben, Warten auf Resource Zeitscheibe (Timerinterrupt) Am Ende eines Tasks

Scheduling Echtzeit-Scheduler Sehr harte Timing-Anforderungen, z.b. Verbrennungsmotorsteuerung(Zünden, Einspritzen) Garantierte Reaktionszeiten (keine langen Interrupt sperrzeiten, keine langen atomaren Operationen) Bei kleinen Mikrokontrollern Bearbeitung direkt im Timerinterrupt, ist immer Alternative zum Betriebssystem

Scheduling Prioritäten-Inversion - Beispiel 2 Tasks, Messdaten aufzeichnen (Prio hoch), Syslogs speicher (Prio niedrig) Beide speichern auf Dateisystem, das Schreiben eines Sektors ist atomar Syslog-Task beghinnt Sektor zu schreiben, und wird von Messtask unterbrochen, der auch schreiben will => Entkopplung nötig zur Vermeidung der Prioritäteninversion