varnett škola
Transkript
Ústav radioelektroniky Vysoké učenı́ technické v Brně Zpracovánı́ analogových signálů Programovánı́ mikrokontrolerů Mikroprocesorová technika, přednáška č. 7 Ing. Frýza Tomáš, Ph.D. 14. listopadu 2007 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ı́ Otázky a přı́klady k procvičenı́ 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ı́ Otázky a přı́klady k procvičenı́ Znakové LCD displeje I I I 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, 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) I I I RS - Identifikuje instrukci nebo data, R/W - Volba čtenı́ nebo zápisu (z pohledu MCU), E - Povolovacı́ signál. Obrázek: Různé provedenı́ znakových LCD displejů Datová komunikace mezi LCD a MCU I I I 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 = 7 I/O pinů I I U LCD se využı́vá hornı́ polovina datových pinů DB7 až DB4, Rozdělenı́ datového slova do dvou niblů; nejprve se vyšle hornı́, následně dolnı́ nibl. Obrázek: Datové a řı́dicı́ signály LCD displeje Datová komunikace mezi LCD a MCU I Význam řı́dicı́ch signálů I I I I I I I 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 povolovacı́ho signálu E startuje komunikaci mezi zařı́zenı́mi. 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. Znaky adresované 16-31 (0x10-0x1f) a 128-159 (0x80-0x9f) nelze zobrazit (odpovı́dajı́ řı́dicı́m znakům z ASCII tabulky). Data, která chceme zobrazit, jsou v LCD uložena v paměti s označenı́m DDRAM (Display Data 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). Znaková sada LCD displeje Instrukčnı́ sada řadiče HD44780 Tabulka: Některé přı́kazy HD44780 pro komunikaci s LCD displejem RS R/W DB7 : DB0 0 0 0 0 0 0 0000 0001 0000 001x 0000 01IS 0 0 0000 1DCB 0 0 001L NFxx 0 0 1 1 0 0 0 1 01 cgram 1 ddram data data Popis instrukce Smazánı́ displeje Návrat kurzoru na pozici (0,0) Nastavenı́ posuvu kurzoru. I: inkrementace pozice kurzoru. S: posuv displeje. Zapnutı́ displeje/kurzoru. D: zapnutı́ displeje. C: zobrazenı́ kurzoru. B: blikánı́ kurzoru. 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). Nastavenı́ adresy CGRAM segmentu. Nastavenı́ adresy DDRAM segmentu. Zápis dat do paměti CGRAM nebo DDRAM. Čtenı́ dat z paměti CGRAM nebo DDRAM. 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ı́ Otázky a přı́klady k procvičenı́ AD převod I MCU umožňuje zpracovávat analogové signály pomocı́ A/D převodnı́ku a komparátoru. I A/D převodnı́k (Analog to Digital Converter) převádı́ velikost analogového vstupnı́ho napětı́ na nbitovou digitálnı́ hodnotu. I ATmega16: 8kanálový převodnı́k – piny PA0 až PA7. Vstupnı́ úroveň je brána bud’ vůči zemi GN D, přı́padně lze převádět diferenčnı́ hodnotu dvou vstupnı́ch kanálů a to včetně nastavitelného zesı́lenı́. I I Minimálnı́ hodnota: 0V . Maximálnı́ hodnota: napětı́ referenčnı́ho napětı́ VREF . I Z důvodu nižšı́ho odběru je AD převodnı́k defaultně vypnut. Pro použitı́ je tedy nutné ho povolit. I ATmega16: Výsledek AD převodu je reprezentován 10 bity v datových registrech ADCH a ADCL ve formě dvojkového doplňku, protože výsledek může být záporný?! AD převod I I Při čtenı́ převedené hodnoty z registrů je po přečtenı́ hodnoty z ADCL zakázán zápis do obou datových registrů (do doby než je přečtena také hodnota z ADCH). A/D převodnı́k může pracovat z několika režimech I I I I 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 AD 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ı́ AD převodu je výsledek zapsán do datových registrů AD převodnı́ku, tj. do ADCH:L. Je možné generovat přerušenı́. Časovánı́ A/D převodnı́ku I A/D převodnı́k potřebuje pro 10bitový převod hodinový signál o frekvenci od 50kHz do 200kHz I I I Řı́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 fCP U . Doba dokončenı́ AD 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 I I Navzorkovánı́ prvnı́ho vzorku vstupnı́ho signálu (sample & hold) trvá 13, 5 AD cyklů, ostatnı́ch jen 1, 5 AD cyklů. Dokončenı́ prvnı́ho převodu včetně inicializace analogových obvodů trvá 25 hodinových cyklů AD převodnı́ku; všechny ostatnı́ pak jen 13 (při fADC = 50kHz ⇒ 3, 8kSP S, fADC = 200kHz ⇒ 15, 3kSP S). /06 sion completes, while ADSC remains high. For a summary of conversion times, see Table 81. Doba trvánı́ AD převodu Figure 101. ADC Timing Diagram, First Conversion (Single Conversion Mode) Next Conversion First Conversion Cycle Number 1 2 13 12 14 16 15 17 18 19 20 21 22 23 24 25 1 2 3 ADC Clock ADEN ADSC ADIF MSB of Result ADCH LSB of Result ADCL MUX and REFS Update Conversion Complete Sample & Hold MUX and REFS Update Figure 102. ADC Timing Diagram, Single Conversion One Conversion Cycle Number 2 1 3 4 5 6 7 8 Next Conversion 10 9 11 12 13 1 2 3 ADC Clock ADSC ADIF ADCH MSB of Result ADCL LSB of Result Sample & Hold MUX and REFS Update Conversion Complete MUX and REFS Update Figure 103.Doba ADC Timing Diagram, Auto Triggered Conversion Obrázek: převodu prvnı́ho a následujı́cı́ho vzorku One Conversion Cycle Number ADC Clock Trigger Source 1 2 3 4 5 6 7 8 9 Next Conversion 10 11 12 13 1 2 209 Vyjádřenı́ výsledku AD převodu I nbitový jednoduchý AD převod konvertuje vstupnı́ napětı́ lineálně mezi GN D a VREF v 2n krocı́ch (tj. 0 až 2n − 1). I Jednoduchý převod: ADCH : L = I I I VIN VREF · 2n − 1 VIN : napětı́ na zvoleném vstupnı́m pinu, VREF : zvolené referenčnı́ napětı́. Diferenčnı́ převod: −VN EG ADCH : L = VP OS · (2n−1 − 1) · GAIN VREF I I I I VP OS : napětı́ na neinvertujı́cı́m vstupnı́m pinu, VN EG : 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 AD převod I I Lze vybrat různé vstupnı́ a referenčnı́ signály pro převod. Volby referenčnı́ho napětı́ I I I I Externı́ napětı́ na pinu AREF, Úroveň napájecı́ho napětı́, Vnitřnı́ zdroj reference 2,56V. Volby vstupnı́ch kanálů I I 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 Jakou hodnotu obsahuje registrový pár ADCH:L, byl-li nastaven diferenčnı́ převod vstupů ADC3 = 300mV a ADC2 = 500mV , GAIN = 10× a vnitřnı́ zdroj referenčnı́ho napětı́ VREF = 2, 56V . Přı́klad užitı́ AD převodu Řešenı́ Vpos −Vneg · (2n−1 − 1) · GAIN Vref 0,30−0,50 · 511 · 10 = −399 = 0x0271 2,56 I ADCH : L = I ADCH : L = I ADCH = 0x02 I ADCL = 0x71 Přı́klad Navrhněte obvodové zapojenı́ aplikace, kontrolujı́cı́ úroveň vstupnı́ho signálu a jejı́ následnou signalizaci pomocı́ LED diod. Nakreslete vývojový diagram této aplikace. Přı́klad užitı́ AD převodu I Aplikace kontroluje úroveň napětı́ na pinu PA7 (ADC7) a signalizuje ji pomocı́ trojice LED diod I I I I LED1: VIN ∈ h2; 3i V , LED2: VIN < 2V , LED3: VIN > 3V . Podmı́nky v jazyce C I I I I if(ADCW<(2/5*1023)) LED2 on; if(ADCW>(3/5*1023)) LED3 on; ... Proměnná ADCW obsahuje celou hodnotu po AD převodu. 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] 0 TRIGGER SELECT ADC[9:0] ADC DATA REGISTER (ADCH/ADCL) ADPS0 ADPS2 ADPS1 ADEN ADSC ADIF ADATE MUX1 MUX3 15 ADC CTRL. & STATUS REGISTER (ADCSRA) MUX0 MUX2 MUX4 REFS1 ADLAR REFS0 ADC MULTIPLEXER SELECT (ADMUX) ADIE ADIF 8-BIT DATA BUS AVCC PRESCALER START GAIN SELECTION CHANNEL SELECTION MUX DECODER CONVERSION LOGIC INTERNAL 2.56V REFERENCE SAMPLE & HOLD COMPARATOR AREF 10-BIT DAC + GND BANDGAP REFERENCE ADC7 SINGLE ENDED / DIFFERENTIAL SELECTION ADC6 ADC5 ADC MULTIPLEXER OUTPUT POS. INPUT MUX ADC4 ADC3 + ADC2 GAIN AMPLIFIER ADC1 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 I 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 Output). Synchronizace výstupu Analog Comparator Analog Comparator compares the input values on the positive pin AIN0 and negative pin AIN1. When the voltage on the positive pin AIN0 is higher than the voltage on komparátoru trvá 1 Output, − 2 ACO, cykly. the negative a pin ACO AIN1, thebitu Analog Comparator is set. The comparator’s I output can be set to trigger the Timer/Counter1 Input Capture function. In addition, the I comparator can trigger a separate interrupt, exclusive to the Analog Comparator. The Může být generováno přerušenı́ při překlopenı́ komparátoru z user can select Interrupt triggering on comparator output rise, fall or toggle. A block diagram of the comparator and its surrounding logic is shown in Figure 97. 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 I I 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 I I I Externı́ signál z pinu PB2, Vnitřnı́ zdroj napět’ové úrovně 1,23V. Invertovaný vstup I I 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. Přı́klad 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 I Monitorovánı́ stavu napájecı́ baterie pomocı́ komparátoru. I Jestliže AIN1>AIN0, výstup komparátoru = 0, LED1 bliká. Nastavenı́ odporových děličů I I I I R3 AIN 1 = R3+R1 · 5V , 38 AIN 1 = 38+47 · 5V = 2, 2V , R4 AIN 0 = R4+R2 · VBAT , 15 AIN 0 = 15+26 · VBAT , ⇒ VBAT = 6V . Obsluha přerušenı́ ANA COMP vect I I 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ı́ Otázky a přı́klady k procvičenı́ Vývoj aplikacı́ pro mikrokontroléry I Převod zdrojového kódu z jazyka symbolických adres do strojového jazyka konkrétnı́ho MCU je vždy jednoznačný. I 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ě. I 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 I I Obrázek: Překlad zdrojového kódu z jazyka C I GCC, avr-libc (http://winavr.sourceforge.net/), CodeVisionAVR (http://www.hpinfotech.ro/). Překladače jazyka C pro AVR I 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. I 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 Obsluha přerušenı́ Testovánı́ bitu/pinu Cyklus s testovánı́m Vloženı́ instrukce Přiřazenı́ hodnoty GCC, avr-libc CodeVisionAVR ISR(INT0 vect) interrupt [EXT INT0] void ext int0 isr(void) reg.bit==1 reg.bit==0 while(reg.bit==1) while(reg.bit==0) #asm("sei") ; PORTB = 0x0f ; bit is set(reg,bit) bit is clear(reg,bit) loop until bit is set(reg,bit) loop until bit is clear(reg,bit) asm("sei") ; PORTB = 0x0f ; Vývoj aplikacı́, simulátory I I 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 I I I I I 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 I Emulátor I I I I I 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 okolı́, Pracuje v reálném čase. Vývoj aplikacı́, vývojové desky I Vývojová deska I I I I I Hardwarové zařı́zenı́ umožňujı́cı́ odladěnı́ aplikace včetně připojenı́ základnı́ch periferiı́ (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 I I I I I 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ı́ Otázky a přı́klady k procvičenı́ Způsoby programovánı́ mikrokontrolérů I I 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 I I I I 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ı́ I I 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ı́ I Paralelnı́ programovánı́ umožňuje zápis a verifikaci obsahu Flash, EEPROM, SRAM, pamět’ových zámkových bitů, programovatelných propojek. I 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 OE WR BS1 XA0 XA1 P AGEL BS2 0: busy, 1: ready Výstup povolen Zápis dat Výběr bytu 1. 0: LSB, 1: MSB Výběr akce 0 Výběr akce 1 Výběr pamět’ové stránky Výběr bytu 2. 0: LSB, 1: druhý MSB Obousměrná datová sběrnice DAT A 1. A: Load Command “0100 0000”. 2. C: Load Data Low Byte. Bit n = “0” programs and bit n = “1” erases the Fuse bit. 3. Set BS1 to “1” and BS2 to “0”. This selects high data programovatelné byte. Paralelnı́ programovánı́, 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. I Figure 131. Programming the Fuses Write Fuse Low byte DATA A C $40 DATA XX A C $40 DATA XA1 DAT A: Přı́kaz pro zápis do Write Fuse high byte propojek: 0b0100 0000. I XA1 : 0 = 10: Načtenı́ přı́kazu. I BS2 : 1 = 00: Výběr nižšı́ho bytu. I DAT A: Zapisovaný nižšı́ byte propojek. I W R: Negativnı́ pulz pro zápis. I RDY /BSY : Při high opět připraven komunikovat. I XT AL1: Hodinové pulzy řı́dı́ komunikaci. XA0 BS1 BS2 XX XTAL1 WR RDY/BSY RESET +12V OE Obrázek: Zápis nižšı́ho bytu propojek PAGEL 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. Programovánı́ pomocı́ JTAG rozhranı́ I Programovánı́ pomocı́ rozhranı́ JTAG I I I 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 I Sériové programovánı́ v systému (ISP) I I I I I Obrázek: Sériové programovánı́ I 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), M ISO (Master In Slave Out), SS (Slave Select). Lze programovat programovou a EEPROM pamět’. Hodnota na pinu RESET je připojena na GN D (na rozdı́l od paralelnı́ho programovánı́). Užitı́ SPI komunikace Obrázek: Apliace s SPI komunikacı́ I Dvojice mikrokontrolérů, z nichž jeden je definován jako Master, druhý jako Slave (na obrázku jen jeden z nich). I Pomocı́ SPI si posı́lajı́ stavy přepı́načů a na LED diodách je zobrazujı́. Programovánı́ pomocı́ SPI I I 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 M OSI, Od Slave k Master probı́há komunikace vždy po vodiči M ISO, 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 I Instrukce pro SPI programovánı́ obsahujı́ 4 byty. ATmega16(L) I Posı́lánı́ dat zpravidla od MSB po LSB. SPI Serial Programming Characteristics 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 through the JTAG interface requires control of the four JTAG specific pins: TCK, TMS, TDI and TDO. Control of the reset and clock pins is not required. Obrázek: Časový diagram SPI komunikace 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. Programming Specific JTAG Instructions 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ı́ Otázky a přı́klady k procvičenı́ 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. 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/ 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ı́ Otázky a přı́klady k procvičenı́ Otázky a přı́klady k procvičenı́ 1. Zobrazte časový průběh signálů datové a řı́dicı́ sběrnice LCD displeje při vyslánı́ instrukce pro smazánı́ displeje. Je nastavena 8bitová komunikace mezi LCD a MCU. 2. Jaká je úroveň analogového signálu, jestliže po AD převodu je v registrovém páru ADCH:L uložena hodnota 0x004f a referenčnı́ napětı́ VREF = 2, 56V ? 3. Charakterizujte výhody simulátorů a nevýhody emulátorů? 4. Nakreslete a popište propojenı́ mikrokontroléru a třı́ podřı́zených obvodů pomocı́ SPI sběrnice. Kolik I/O pinů MCU je zapotřebı́, aby MCU mohlo vždy komunikovat jen s jednı́m obvodem?
Podobné dokumenty
Zobrazovací zařízení, zpracování analogových signálů
Pro komunikaci s řadičem T6963 byl použit mikroprocesor PIC16F690, který má
datovou paměť o velikosti 4kB. Další vlastnosti tohoto mikrokontroléru jsou popsány
v literatuře [3]. Pro použitý typ di...
Bloková struktura mikrokontroléru
Libovolnou řı́dicı́ aplikaci lze zpravidla vyřešit několika způsoby. Vždy záležı́ na
složitosti, na dosažitelných parametrech (rychlost, přesnost, . . .) nákladech
Technické vybavenı osobnıch pocıtacu
Studenti majı́ k dispozici veškeré hardwarové komponenty, které se vyskytovaly na přednáškách
(základnı́ desky, pevné disky včetně jednoho otevřeného, kabely, zdroj, pamět’ové modul...
Zobrazit celý článek - Trendy ve vzdělávání
(Universal Serial Bus), takže nejsou zapotřebí žádná přídavná HW zařízení. Vlastní návrh inovuje
práce (2) a (3).
AŽD Praha sro
Realizační dokumentace (dle zvyklostí ŽSR) byla
zpracovaná REMING Consult a.s. v rámci zadání stavby
Dokumentace skutečného provedení (DSV) byla
zpracována firmou Projekt Signal s.r.o. a Projek...
vysoké učení technické v brně automatický anténní analyzátor
je min. 2λ), vzdálenost od různých překážek, jakost použitých materiálů a především mechanická přesnost celé konstrukce. Pokud budeme uvažovat použití jednoduchého symetrického
dipólu, je důležitý ...
Dotykový spínač osvetlenia s časovačom
Martin Bro Delta4.elektronik
Není to a tak dlouhá doba, co jsem potøeboval postavit nìjaký
programátor pro procesory AVR, který by spolupracoval s programem CodeVisionAVR. Po pár minutách brouz...