Programování mikrokontrolerů

Podobné dokumenty
Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D.

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D.

Rozhraní mikrořadiče, SPI, IIC bus,..

Rozhraní mikrořadiče, SPI, IIC bus,..

A4B38NVS, 2011, kat. měření, J.Fischer, ČVUT - FEL. Rozhraní mikrořadiče, SPI, IIC bus,.. A438NVS, kat. měření, ČVUT - FEL, Praha. J.

PK Design. MB-ATmega16/32 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (21.12.

Praktické úlohy- 2.oblast zaměření

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12)

5. A/Č převodník s postupnou aproximací

Mikrokontroléry. Doplňující text pro POS K. D. 2001

ATAVRDRAGON-návod k použití

Arduino digitální multimetr

Microchip. PICmicro Microcontrollers

PŘÍLOHY. PRESTO USB programátor

Boundary Scan JTAG (Joined Test Action Group) IEEE 1149.X Zápis do rozhraní

Komunikace modulu s procesorem SPI protokol

Jednočipové mikropočítače (mikrokontroléry)

Vestavné systémy BI-VES Přednáška 5

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Návrh konstrukce odchovny 2. dil

PK Design. MB-ATmega128 v2.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (23.09.

Paměti Flash. Paměti Flash. Základní charakteristiky

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Ústav radioelektroniky

EduKitBeta Uživatelská příručka

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky NAIL028

PRESTO. USB programátor. Uživatelská příručka

Mikrokontrolery. Úvod do obvodů Atmega 328 a PIC16F88

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI

Modul LCD displeje se čtyřmi tlačítky. Milan Horkel

Manuál přípravku FPGA University Board (FUB)

Arduino Martin Friedl

Uživatelská příručka

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

Programovatelné relé Easy (Moeller), Logo (Siemens)

FVZ K13138-TACR-V004-G-TRIGGER_BOX

Struktura a architektura počítačů (BI-SAP) 7

Principy komunikace s adaptéry periferních zařízení (PZ)

Mikropočítačová vstupně/výstupní jednotka pro řízení tepelných modelů. Zdeněk Oborný

MSP 430F1611. Jiří Kašpar. Charakteristika

ČEMU ROZUMÍ MIKROPROCESOR?

PK Design. MB-ATmega128 v4.0. Uživatelský manuál. Základová deska modulárního vývojového systému MVS. Verze dokumentu 1.0 (10.10.

Příklady popisu základních obvodů ve VHDL

MIKROPROCESOROVÁ TECHNIKA

Číslicový zobrazovač CZ 5.7

Témata profilové maturitní zkoušky

Přednáška , kat. měření, ČVUT - FEL, Praha J. Fischer. A4B38NVS, 2012, J.Fischer, kat. měření,, ČVUT - FEL 1

Měřič krevního tlaku. 1 Měření krevního tlaku. 1.1 Princip oscilometrické metody 2007/

V PRAZE Fakulta elektrotechnická Katedra teorie obvodů. Úvod do mikrokontrolérů ATMEL AVR Konkrétn. ATmega. Martin Pokorný 31SCS 2004

Návod k obsluze výukové desky CPLD

Metody připojování periferií

Základy digitální techniky

Systém řízení sběrnice

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Použití programovatelného čítače 8253

Zadání semestrálního projektu PAM

APLIKACE MIKROKONTROLÉRŮ PIC32MX

Znakové. Zapojení vývodů. standard. vývod. popiss napájení GND G napájení +5V =data) Data Bus 0

Jízda po čáře pro reklamní robot

A/D a D/A PŘEVODNÍK 0(4) až 24 ma DC, 16 bitů

Nejčastěji pokládané dotazy

Příloha č. I: Schéma zapojení vývojové desky PVK-PRO

A0M38SPP - Signálové procesory v praxi - přednáška 10 2

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

11. Logické analyzátory. 12. Metodika měření s logickým analyzátorem

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

DESKA ANALOGOVÝCH VSTUPŮ ±24mA DC, 16 bitů

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

Integrovaná střední škola, Sokolnice 496

Kompaktní mikroprocesorový regulátor MRS 04

ŘÍDÍCÍ DESKA SYSTÉMU ZAT-DV

Albatros MultiV ALBATROS MultiV ALBATROS MultiV-R Datový převodník LG PI485 / MODBUS TCP LG PI485 / MODBUS RTU s možností rozpočítávání spotřeby elekt

Vývojové kity Mega48,

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

9. Rozšiřující desky Evb_Display a Evb_keyboard

Programovatelné relé Easy (Moeller), Logo (Siemens)

Modul univerzálních analogových vstupů R560. Shrnutí

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

Pohled do nitra mikroprocesoru Josef Horálek

Binární data. Číslicový systém. Binární data. Klávesnice Snímače polohy, dotykové displeje, myš Digitalizovaná data odvozená z analogového signálu

Metody připojování periferií BI-MPP Přednáška 2

Rozhraní mikrořadiče, SPI, IIC bus,.. Přednáška 11 (12) A4B38NVS, kat. měření, ČVUT - FEL, Praha. J. Fischer

Uživatelský manuál. KNXgal

MI1249. Video rozhraní pro vozidla Citroen C5 a Peugeot 508

Co je uvnitř - senzory a přístrojová technika v NXT robotech. Pavel Ripka katedra měření ČVUT

Miroslav Flídr Počítačové systémy LS /21- Západočeská univerzita v Plzni

Pokojový termostat řízený pomocí SMS zpráv v síti GSM

Přednáška - Čítače. 2013, kat. měření, ČVUT - FEL, Praha J. Fischer. A3B38MMP, 2013, J.Fischer, ČVUT - FEL, kat. měření 1

PK Design. EVMS-mega128. Uživatelský manuál. v1.0. Výuková deska s mikrokontrolerem ATmega128. Obr. 1 - výuková deska s LCD displejem

Transkript:

Ústav radioelektroniky Vysoké učení technické v Brně Zpracování analogových signálů Programování mikrokontrolerů Mikroprocesorová technika, přednáška č. 6 Ing. Frýza Tomáš, Ph.D. 3. listopadu 2008

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

Znakové LCD displeje Zobrazitelná plocha obsahuje běžně od 8 1 do 40 4 znaků, bez nebo s podsvícením (nejčastěji žluto-zelené). Většina LCD displejů obsahuje řídicí obvod HD44780 firmy Hitachi (příp. jeho derivát); prostřednictvím tohoto obvodu je možné komunikovat s displejem. Tento řadič obsahuje znakovou sadu i instrukce pro ovládání. Komunikace probíhá pomocí 8 datových signálů (DB0 DB7) a je řízena 3 řídicími signály (RS, R/W a E) RS - Identifikuje instrukci nebo data, R/W - Volba čtení nebo zápisu (z pohledu MCU), E - Spouštěcí signál.

Datová komunikace mezi LCD a MCU Existují dva základní způsoby datové komunikace mezi LCD a MCU, využívající plný (8) nebo redukovaný (4) počet datových signálů. 8bitová komunikace vyžaduje 8 + 3 I/O pinů mikrokontrolérů. 4bitová komunikace: 4 + 3 I/O pinů U LCD se využívá horní polovina datových pinů DB7 až DB4, Rozdělení datového slova do dvou niblů v časovém multiplexu. Obrázek: Datové a řídicí signály LCD displeje

Datová komunikace mezi LCD a MCU Význam řídicích signálů RS = 0: přenáší se instrukce (např. pro smazání obsahu displeje), RS = 1: data (např. text k zobrazení). R/W = 0: zápis dat/instrukcí do LCD, R/W = 1: čtení z LCD. Kladný pulz signálu E startuje komunikaci. Znaky jsou zobrazovány jako matice 5 8 (většina znaků je menších); jsou v LCD uloženy ve vnitřní paměti RAM. Je možné definovat až 8 uživatelských znaků (adresa 0 až 7). Ty jsou uloženy v paměti s označením CGRAM (Character Generator RAM). Example Nakreslete časové průběhy všech signálů při zápisu instrukce 0b1111 0000 do LCD pomocí (a) 8bitové a (b) 4bitové komunikace.

Instrukční sada řadiče HD44780 Tabulka: Některé příkazy HD44780 pro komunikaci s LCD displejem RS R/W DB7 : DB0 Popis instrukce 0 0 0000 0001 Smazání displeje. 0 0 0000 001x Návrat kurzoru na pozici (0,0). 0 0 0000 01IS Nastavení posuvu kurzoru. I: inkrementace pozice kurzoru. S: posuv displeje. 0 0 0000 1DCB Zapnutí displeje/kurzoru. D: zapnutí displeje. C: zobrazení kurzoru. B: blikání kurzoru. 0 0 001L NFxx Nastavení rozlišení. L=1(0): nastavení 8(4)bitové komunikace. N=1(0): dva(jeden) řádky displeje. F=1(0): velikost fontu 5 10(5 7). 0 0 01 cgram Nastavení adresy v CGRAM segmentu. 1 0 data Zápis dat do paměti CGRAM. 1 1 data Čtení dat z paměti CGRAM.

Znaková sada LCD displeje Example Vytvořte nové znaky é a ě a uložte je do paměti LCD.

Knihovna v jazyce C pro práci s LCD Peter Fleury: http://homepage.hispeed.ch/peterfleury/ Pozn.: Datové piny MUSÍ být namapovány na dolní polovině portu.

plej Dotykový s dotykovým panel panelem (touch screen) Dělení podle druhu získání informace o poloze Analogové: je nutné použít A/D převodník, U4 1 VDD 1 VDD VSS příp. speciální 20 GND 1 COL5 GND 2 2 VSS COL4 VDD 3 2 19 3 VDD COL3 obvod. Např. ADS7864E (12-Bit, 4 6-Channel 3 RA5 RA0 Simultaneous 18 4 V0 COL2 5 4 RA4 RA1 17 5 C/D COL1 6 RA3 RA2 6 RD ROW1 7 5 16 7 WR ROW2 RC0 Sampling ADC), fy TI, 8 6 RC5 15 8 D0 ROW3 9 7 RC4 RC1 14 9 D1 ROW4 10 8 RC3 RC2 10 D2 ROW5 RC6 Digitální: skenování řádků a 11 sloupců - 9 identické 13 D3 RC7 RB4 12 10 RB5 11 RB7 RB6 s maticovou 11 COL6 12 12 D4 COL7 13 13 D5 COL8 14 14 D6 COL9 15 15 D7 COL10 PIC16F690 16 CE klávesnicí, NC 16 17 18 VEE GND TOUCH 19 MD2 GND 20 FS1 Ukázka: Grafický displej PG240128WRF-ATA-H-Y7 s 10 5 dotykovými NC 10k VDD poli @ 15 I/O pinů (digitální Obr. 3: informace). Schéma zapojení mikrokontroléru PIC16F690 ke grafickému displeji PG240128WRF. d ové panely se dnes používají k ovládání stále častěji a uživateli mnohdy zjednoduší í řízení různých programů. DP můžeme rozdělit podle druhu získávané informace vé a digitální. U analogových DP je k určení místa dotyku třeba použít AD Je možné zakoupit speciální obvody určeny přímo pro DP, např: ADS 7864E od U digitálních DP se místo dotyku určí maticovým způsobem obdobně jako u tedy skenováním řádků a sloupců. ky jsem vyzkoušel ovládání odporového digitálního DP, který je výrobcem na displej firmy Powertrip: PG240128WRF-ATA-H-Y7 (viz. obr. 1). Jedná se o grafický displej v provedení FSTN s bílým podsvícením (CCFL), displej ovládá í řadič T6963. Rozlišení displeje je 240 x 128 bodů a rozlišení DP je 10 x 5 bodů. zjednodušené schéma zapojení. Program byl napsán v jazyce C s využitím dema vývojového prostředí Mikroelektronika MikroC (odkaz ke stáhnutí dema naleznete zde: [4]). Program je přidán na CD k tomuto dokumentu. Pokud nemáte k dispozici displej s řadičem T6963, a přesto byste si chtěli vyzkoušet jakým způsobem se s ním komunikuje, je možné použít program Multisim od firmy NI. Demo (odkaz ke stáhnutí dema naleznete zde:) obsahuje ukázku zapojení a vzorový program přímo s tímto řadičem. RESET T6963C Na obrázku obr. 4 je zobrazen displej, na kterém je testován DP. Aktivní je na DP pouze poslední řádek a umožňuje stisknout tlačítka T1 až T8 (T9 a T10 není aktivní). Při stisku daného tlačítka se slovy zobrazí číslo tlačítka, které bylo stisknuto. Tlačítko 8 (T8) má navíc funkci vypínání grafické části, to znamená, že při stisku T8, zmizí nápis UREL a po stisku, kteréhokoli jiného tlačítka se opět tento nápis zobrazí. Obr. 1: Grafický displej PG240128WRF-ATA-H-Y7. Obr. 4: Displej PG240128WRF při testování dotykového panelu. 6

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

A/D převod MCU umožňuje zpracovávat vstupní analogové signály pomocí A/D převodníku a komparátoru. A/D převodník (Analog to Digital Converter) převádí velikost analogového vstupního napětí na nbitovou digitální hodnotu. ATmega16: 8kanálový převodník piny PA0 až PA7. Vstupní úroveň je brána bud vůči zemi GND, případně lze převádět diferenční hodnotu dvou vstupních kanálů a to včetně nastavitelného zesílení. Minimální hodnota: 0V. Maximální hodnota: napětí referenčního napětí V REF. ATmega16: Výsledek A/D převodu je reprezentován 10 bity ve formě dvojkového doplňku.

A/D převod A/D převodník může pracovat z několika režimech Jednoduchý převod (Single Conversion). Převede se jen jeden vzorek, poté je převod zastaven, Automatické spouštění (Auto Triggering). Speciální událost (externí přerušení, změna komparátoru, přetečení, komparace čítače/časovače,...) může zahájit A/D převod. Převod je zahájen náběžnou hranou vybraného signálu; pokud přijde nová náběžná hrana a převod není dokončen, pak je ignorována. Umožňuje zahájení převodu v konstantních intervalech, Volný běh (Free Running). Převod je prováděn neustále. Po dokončení A/D převodu je výsledek zapsán do datových registrů A/D převodníku, tj. do ADCH:L. Je možné generovat přerušení.

Časování A/D převodníku ATmega16 A/D převodník potřebuje pro 10bitový převod hodinový signál o frekvenci od 50kHz do 200kHz Řídicí frekvence může být větší, pokud je postačující nižší rozlišení než 10bitové, A/D převodník obsahuje předděličku (2,4,8,16,32,64,128) ke generování vhodné frekvence, odvozené od f CP U. Doba dokončení A/D převodu závisí na zvoleném režimu, přičemž převod první hodnoty trvá déle než všechny následující. Celková doba převodu se skládá z doby navzorkování a samotného převodu.

sion completes, while ADSC remains high. For a summary of conversion times, see Table 81. Doba trvání A/D převodu Figure 101. ADC Timing Diagram, First Conversion (Single Conversion Mode) First Conversion Next Conversion Cycle Number 1 2 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1 2 3 ADC Clock ADEN ADSC ADIF ADCH ADCL MSB of Result LSB of Result MUX and REFS Update Sample & Hold Conversion Complete MUX and REFS Update Obrázek: Doba převodu prvního vzorku 6 Navzorkování prvního vzorku vstupního signálu (sample & hold) trvá 13,5 A/D cyklů. Dokončení prvního převodu včetně inicializace analogových obvodů trvá 25 hodinových cyklů A/D převodníku. 209

Figure 104. ADC Timing Diagram, Free Running Conversion Doba trvání A/D převodu Figure 102. ADC Timing Diagram, Single Conversion One Conversion Next Conversion Cycle Number 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 ADC Clock ADSC ADIF ADCH ADCL MSB of Result LSB of Result Sample & Hold MUX and REFS Update Conversion Complete MUX and REFS Update Figure 103. ADC Timing Diagram, Auto Triggered Conversion Obrázek: Doba převodu One Conversion následujícího vzorku Next Conversion Cycle Number 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 ADC Clock Trigger Navzorkování Source ostatních vzorků trvá jen 1,5 cyklů. ADATE Dokončení převodu ostatních vzorků trvá jen 13 cyklů. ADIF Maximální ADCH vzorkovací frekvence MSB of Result ADCL LSB of Result Při f ADC =50kHz 3,8kSPS, Sample & Hold Conversion Prescaler Prescaler Complete Reset f ADC Reset =200kHz 15,3kSPS. MUX and REFS Update

Vyjádření výsledku A/D převodu nbitový jednoduchý A/D převod konvertuje vstupní napětí lineálně mezi GND a V REF v 2 n krocích (tj. hladiny 0 až 2 n -1). Jednoduchý převod: ADCH : L = V IN V REF (2 n 1) V IN : napětí na zvoleném vstupním pinu, V REF : zvolené referenční napětí. Diferenční převod: ADCH : L = V P OS V NEG (2 n 1 1) GAIN V REF VP OS : napětí na neinvertujícím vstupním pinu, VNEG : napětí na invertujícím vstupním pinu, GAIN: zvolené zesílení, Výsledek ve dvojkovém doplňku (od 512 do +511).

Výběr signálů pro A/D převod Lze vybrat různé vstupní a referenční signály pro převod. Volby referenčního napětí Externí napětí na pinu AREF, Úroveň napájecího napětí, Vnitřní zdroj reference 2,56V. Volby vstupních kanálů Individuální vstupy na pinech PA7:0 (ADC7:0), Některé předvolené kombinace dvou vstupních kanálů se zesílením 1, 10, 100 nebo 200.

Příklad užití A/D převodu Example Jakou hodnotu obsahuje registrový pár ADCH:L, byl-li nastaven diferenční převod vstupů ADC3=300mV a ADC2=500mV, zesílení GAIN=10 a vnitřní zdroj referenčního napětí V REF =2,56V. Example Nakreslete vývojový diagram aplikace využívající 3kanálový A/D převodník pro zjištění dat z analogového akcelerometru XYZ (např. MMA7361L, fy Freescale). Example Navrhněte obvodové zapojení aplikace, kontrolující úroveň vstupního signálu a její následnou signalizaci pomocí LED diod.

Příklad užití AD převodu Aplikace kontroluje úroveň napětí na pinu PA7 (ADC7) a signalizuje ji pomocí trojice LED diod LED1: V IN 2; 3 V, LED2: VIN < 2V, LED3: VIN > 3V. Podmínky v jazyce C if(adcw<(2/5*1023)) LED2 on; if(adcw>(3/5*1023)) LED3 on;... Proměnná ADCW obsahuje celou hodnotu po A/D převodu. Obsluha přerušení ADC vect

Blokové schéma A/D převodníku Figure 98. Analog to Digital Converter Block Schematic ADC CONVERSION COMPLETE IRQ INTERRUPT FLAGS ADTS[2:0] 8-BIT DATA BUS REFS1 ADC MULTIPLEXER SELECT (ADMUX) REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADEN ADIE ADC CTRL. & STATUS REGISTER (ADCSRA) ADSC ADATE ADIF ADIF ADPS2 ADPS1 ADPS0 15 0 ADC DATA REGISTER (ADCH/ADCL) TRIGGER SELECT ADC[9:0] MUX DECODER AVCC CHANNEL SELECTION GAIN SELECTION PRESCALER START CONVERSION LOGIC AREF INTERNAL 2.56V REFERENCE 10-BIT DAC SAMPLE & HOLD COMPARATOR - + GND BANDGAP REFERENCE ADC7 ADC6 SINGLE ENDED / DIFFERENTIAL SELECTION ADC5 ADC4 POS. INPUT MUX ADC MULTIPLEXER OUTPUT ADC3 ADC2 ADC1 + - GAIN AMPLIFIER ADC0 NEG. INPUT MUX Operation The ADC converts an analog input voltage to a 10-bit digital value through successive approximation. The minimum value represents GND and the maximum value represents the voltage on the AREF pin minus 1 LSB. Optionally, AVCC or an internal 2.56V refer-

Analogový komparátor Analog Comparator Analogový komparátor porovnává neinvertovaný vstup AIN0 s invertovaným AIN1 (u ATmega16 piny PB2, PB3). Pokud je úroveň napětí AIN0 > AIN1, výstup komparátoru ACO=1 The (Analog Comparator Comparator compares the input Output). values on the positive Synchronizace pin AIN0 and negative pin AIN1. When the voltage on the positive pin AIN0 is higher than the voltage on výstupu komparátoru the negative apin AIN1, ACOthe bitu Analog Comparator trvá 1-2 Output, cykly. ACO, is set. The comparator s output can be set to trigger the Timer/Counter1 Input Capture function. In addition, the comparator can trigger a separate interrupt, exclusive to the Analog Comparator. The Může být user can generováno select Interrupt triggering přerušení on comparator output při překlopení rise, fall or toggle. A block komparátoru diagram of the comparator and its surrounding logic is shown in Figure 97. z 1 0, 0 1, nebo při libovolné změně. Figure 97. Analog Comparator Block Diagram (2) BANDGAP REFERENCE ACBG ACME ADEN ADC MULTIPLEXER OUTPUT (1) Notes: 1. See Table 80 on page 204.

Komparované signály Analogový komparátor umožňuje kromě porovnávání dvou vstupních signálů z pinů PB2 (AIN0) a PB3 (AIN1) ještě další možnosti. Neinvertovaný vstup Externí signál z pinu PB2, Vnitřní zdroj napět ové úrovně 1,23V. Invertovaný vstup Externí signál z pinu PB3, Libovolný vstupní kanál A/D převodníku, tj. signál z pinu PA7:0 (ADC7:0). Konkrétní vstup nastavuje multiplexer A/D převodníku. Example Navrhněte obvodové zapojení aplikace, kontrolující napětí na napájecí baterii. Pokles necht je signalizován blikající LED diodou. Nakreslete vývojový diagram této aplikace.

Příklad užití analogového komparátoru Monitorování stavu napájecí baterie pomocí komparátoru. Jestliže AIN1>AIN0, výstup komparátoru = 0, LED1 bliká. Nastavení odporových děličů AIN1 = R3 R3+R1 5V, AIN1 = 38 38+47 5V = 2, 2V, AIN0 = R4 R4+R2 V BAT, AIN0 = 15 15+26 V BAT, V BAT = 6V. Obsluha přerušení ANA COMP vect Vypnutí komparátoru, Zahájení blikání LED diody pomocí č/č 0.

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

Vývoj aplikací pro mikrokontroléry Obrázek: Překlad zdrojového kódu z jazyka C Převod zdrojového kódu z jazyka symbolických adres do strojového jazyka konkrétního MCU je vždy jednoznačný. Překladač z jazyka C hledá v kódu známé posloupnosti a ty nahrazuje sekvencí instrukcí různé překladače mohou stejný kód přeložit odlišně. Efektivita přeloženého kódu závisí na kvalitě (optimalizaci) překladače. Nekteré překladače jazyka C pro mikrokontroléry AVR GCC, avr-libc (http://winavr.sourceforge.net/), CodeVisionAVR (http://www.hpinfotech.ro/).

Překladače jazyka C pro AVR Přestože kód v jazyce C je přenosný mezi zařízeními (platformami), každý překladač může obsahovat speciální způsob syntaxe. Kód určený pro GCC tak nepůjde přeložit pomocí CodeVisionAVR, apod. Tabulka: Některé rozdíly v syntaxi mezi překladači Operace GCC, avr-libc CodeVisionAVR Obsluha přerušení ISR(INT0 vect) interrupt [EXT INT0] void ext int0 isr(void) Testování bitu/pinu bit is set(reg,bit) reg.bit==1 bit is clear(reg,bit) reg.bit==0 Cyklus s testováním loop until bit is set(reg,bit) while(reg.bit==1) loop until bit is clear(reg,bit) while(reg.bit==0) Vložení instrukce asm("sei") ; #asm("sei") ; Přiřazení hodnoty PORTB = 0x0f ; PORTB = 0x0f ;

Vývoj aplikací, simulátory Postup při vývoji aplikací: vytvoření zdrojového kódu aplikace a její odladění v simulátoru, příp. emulátoru; hardwarovou část je vhodné vyzkoušet na vývojové desce. Simulátor Simulace chování mikrokontroléru na odlišném zařízení (typ. PC), Simulátor musí obsahovat převod zdrojového kódu do strojového jazyka požadovaného mikrokontroléru, Spouštěcí a ladící programy: krokování programu, breakpointy,..., Omezené možnosti simulace okolního prostředí (tlačítka, přerušení,...), Nepracuje v reálném čase: je možné získat informaci o době výkonu programu v počtech cyklů hodinového signálu.

Vývoj aplikací, emulátor Emulátor Propojení PC + emulační koncovka s cílovým mikrokontrolérem, Obslužný software (na PC) obsahuje stejné náležitosti jako u simulátoru + odlišné spouštěcí a ladící nástroje, Umožňuje monitorování cílového mikrokontroléru během ladění (obsah registrů, zásobníku,...), Je možné plně odladit novou aplikaci včetně např. vazby na okoĺı, Pracuje v reálném čase.

Vývoj aplikací, vývojové desky Vývojová deska Hardwarové zařízení umožňující odladění aplikace včetně připojení základních periferíı (LED, tlačítka, LCD, relé,...), Může obsahovat patice pro odlišné mikrokontroléry, pájivé pole,..., V závislosti na aplikaci, není potřeba vytvářet finální zapojení před odladěním. Univerzální deska usnadňuje/urychluje vývoj nové aplikace. Vývojová prostředí zpravidla sdružují editační, překládací, ladící, programovací nástroje do jednoho celku AVR Studio (http://www.atmel.com/dyn/products/ tools_card.asp?tool_id=2725), CodeVisionAVR (http://www.hpinfotech.ro/), ImageCraft (http://www.imagecraft.com/), IAR Embedded Workbench (http://www.iar.com/),...

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

Způsoby programování mikrokontrolérů Programování, nebo tzv. download mikrokontrolérů znamená nakopírování vytvořené aplikace (nejčastěji ve formátu Intel HEX) do programové paměti (Flash) mikrokontroléru. (Programátory umožňují také načtení, verifikaci a smazání paměti.) Základní způsoby downloadu Paralelní programování, Rozhraní JTAG (umožňuje také ladění aplikace v cílovém MCU), Sériové programování (ISP In-System Programming) pomocí SPI rozhraní. Paralelní programování Nutný větší počet vodičů. Zpravidla pomocí externího programátoru - vyjmutí mikrokontroléru ze systému, což je komplikované, krkolomné, někdy nemožné, Rychlost downloadu je velká.

Paralelní programování Paralelní programování umožňuje zápis a verifikaci obsahu Flash, EEPROM, SRAM, pamět ových zámkových bitů, programovatelných propojek. Využívá vyššího programovacího napětí +12V. Tabulka: Význam vodičů Obrázek: Paralelní programování ATmega16 Označení Popis funkce RDY/BSY 0: busy, 1: ready OE Výstup povolen W R Zápis dat BS1 Výběr bytu 1. 0: LSB, 1: MSB XA0 Výběr akce 0 XA1 Výběr akce 1 P AGEL Výběr pamět ové stránky BS2 Výběr bytu 2. 0: LSB, 1: druhý MSB DAT A Obousměrná datová sběrnice

1. A: Load Command 0100 0000. 2. C: Load Data Low Byte. Bit n = 0 programs and bit n = 1 erases the Fuse bit. Paralelní 3. Set BS1 to 1 and programování, BS2 to 0. This selects high data programovatelné byte. propojky 4. Give WR a negative pulse and wait for RDY/BSY to go high. 5. Set BS1 to 0. This selects low data byte. Figure 131. Programming the Fuses DATA XA1 XA0 BS1 BS2 XTAL1 WR RDY/BSY RESET +12V OE A $40 C DATA Write Fuse Low byte Obrázek: Zápis nižšího bytu PAGEL propojek XX $40 DATA XX The algorithm for programming the Lock bits is as follows (refer to Programming the Flash on page 269 for details on Command and Data loading): 1. A: Load Command 0010 0000. 2. C: Load Data Low Byte. Bit n = 0 programs the Lock bit. 3. Give WR a negative pulse and wait for RDY/BSY to go high. A DAT A: Příkaz pro zápis do C Write Fuse high byte propojek: 0b0100 0000. XA1 : 0 = 10: Načtení příkazu. BS2 : 1 = 00: Výběr nižšího bytu. DAT A: Zapisovaný nižší byte propojek. W R: Negativní pulz pro zápis. RDY/BSY : Při high opět připraven komunikovat. XT AL1: Hodinové pulzy řídí komunikaci.

Programování pomocí JTAG rozhraní Programování pomocí rozhraní JTAG Rozhraní JTAG (standard IEEE 1149.1) umožňuje komunikovat s mikrokontrolérem během ladění. Je tak možné skenovat všechny vnitřní periférie, zjišt ovat/měnit obsah registrů, apod., Výkon programu lze krokovat (tj. spouštět a zastavovat) přímo na čipu, Mikrokontroléry AVR lze takto ovládat přímo z AVR Studia.

Sériové programování v systému Obrázek: Sériové programování Sériové programování v systému (ISP) Není nutné vyjímat mikrokontrolér ze systému, Neposkytuje možnost ladění aplikace, Využívá se komunikace po sériovém rozhraní SPI (Serial Peripheral Interface), Tento způsob dnes obsahují všechny mikrokontroléry, SPI je duplexní, synchronní přenos pomocí čtyř vodičů: SCK (hod. signál), M OSI (Master Out Slave In), MISO (Master In Slave Out), SS (Slave Select). Lze programovat programovou a EEPROM pamět. Hodnota na pinu RESET je připojena na GND (na rozdíl od paralelního programování).

Užití SPI komunikace Dvojice mikrokontrolérů, z nichž jeden je definován jako Master, druhý jako Slave (na obrázku jen jeden z nich). Pomocí SPI si posílají stavy přepínačů a na LED diodách je zobrazují. Obrázek: Apliace s SPI komunikací

Programování pomocí SPI Spojení Master (programuje) a Slave (je programováno) obsahuje dvojici posuvných registrů + generátor hodin od nadřazeného obvodu Master. Postup programování (komunikace Master Slave) 1) Zahájení komunikace SS = 0 pro požadovaný podřízený obvod Slave, 2) Příprava dat k přenosu do posuvných registrů, 3) Přenos je řízen (synchronizován) hodinovým signálem SCK od programovacího obvodu Master, 4) Od Master ke Slave probíhá komunikace vždy po vodiči MOSI, Od Slave k Master probíhá komunikace vždy po vodiči MISO, 5) Po odeslání bytu - zastavení hodin, možnost generování přerušení, 6) Po odeslání všech dat odpojení od obvodu Slave SS = 1.

Programování pomocí SPI SPI Serial Programming Characteristics Instrukce pro SPI programování obsahují ATmega16(L) 4 byty. Posílání dat zpravidla od MSB po LSB. For characteristics of the SPI module, see SPI Timing Characteristics on page 298. Figure 138. SPI Serial Programming Waveforms SERIAL DATA INPUT (MOSI) MSB LSB SERIAL DATA OUTPUT (MISO) MSB LSB SERIAL CLOCK INPUT (SCK) SAMPLE Programming via the JTAG Interface Programming Specific JTAG Instructions Programming through the JTAG interface requires control of the four JTAG specific pins: Obrázek: TCK, TMS, TDI and Časový TDO. Control diagram of the reset and SPI clock pins komunikace is not required. To be able to use the JTAG interface, the JTAGEN Fuse must be programmed. The device is default shipped with the fuse programmed. In addition, the JTD bit in MCUCSR must be cleared. Alternatively, if the JTD bit is set, the External Reset can be forced low. Then, the JTD bit will be cleared after two chip clocks, and the JTAG pins are available for programming. This provides a means of using the JTAG pins as normal port pins in running mode while still allowing In-System Programming via the JTAG interface. Note that this technique can not be used when using the JTAG pins for Boundary-scan or Onchip Debug. In these cases the JTAG pins must be dedicated for this purpose. As a definition in this datasheet, the LSB is shifted in and out first of all Shift Registers. The instruction register is 4-bit wide, supporting up to 16 instructions. The JTAG instructions useful for Programming are listed below. The OPCODE for each instruction is shown behind the instruction name in hex format. The text describes which Data Register is selected as path between TDI and TDO for each instruction.

Obsah přednášky Komunikace mezi LCD displejem a mikrokontrolérem Zpracování analogových signálů A/D převodník Analogový komparátor Vývoj aplikací pro mikrokontroléry Způsoby programování mikrokontrolérů Paralelní programování Programování pomocí JTAG ISP programování Zdroje informací

Zdroje informací Matoušek, D. Práces mikrokontroléry ATMEL AVR; ATmega16. Ben technická literatura, Praha, 2006, ISBN 80-7300-174-8. Barnett, R., O Cull, L., Cox, S. Embedded C Programming and the Atmel AVR, 2e. Thomson Delmar Learning, New York, 2007, ISBN 1-4180-3959-4. Marcoň, P. Komunikační rozhraní a rozhraní člověk-stroj pro průmyslové senzory, (červen 2009). Diplomová práce, UREL, VUT v Brně

Zdroje informací Atmel Corporation. ATmega16, (listopad 2007). http://www.atmel.com/dyn/products/product_card. asp?part_id=2010 Fleury, P. Peter Fleury s Home Page, (listopad 2007). http://homepage.hispeed.ch/peterfleury/ C library for use with GCC on AVR. AVR Libc Home Page, (listopad 2007). http://www.nongnu.org/avr-libc/ Elnec. Oficiální stránky firmy Elnec, (listopad 2007). http://www.elnec.sk/