Mikroprocesorová technika, prednáška c. 6
Transkript
Ústav radioelektroniky Vysoké učenı́ technické v Brně Pomocné obvody a základnı́ periférie mikrokontrolérů Mikroprocesorová technika, přednáška č. 6 Ing. Frýza Tomáš, Ph.D. 31. řı́jna 2007 Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ Pomocné obvody řı́dicı́ aplikace I I Nenı́ vždy nutné využı́vat výkonné mikrokontroléry. U jednoduchých aplikacı́ postačı́ např. ATtiny12 (PDIP8). Jednoduché řı́dicı́ aplikace s mikrokontroléry vyžadujı́ (po hardwarové stránce) I I I Zdroj napájenı́, Zdroj hodinového signálu, Resetovacı́ obvod. Obrázek: Blokové zapojenı́ řı́dicı́ aplikace Pomocné obvody řı́dicı́ aplikace, pokračovánı́ I Typ napájenı́ závisı́ na mobilnı́/desktopové aplikaci I I I Napájenı́ z bateriı́, z rozvodné sı́tě s transformacı́, z datových portů PC (RS-232, USB), pomocı́ solárnı́ch panelů, . . . Hodinový signál procesoru řı́dı́ časovánı́ AVR jádra. Od něho jsou odvozeny časovacı́ signály pro všechny periférie (Flash, A/D převodnı́k, I/O modul, čı́tač, . . .). Možnosti generovánı́ hodinového signálu I I I Externı́ zdroj hodinového signálu na vstupu XTAL1, Vnějšı́ RC oscilátor: RC oscilátor způsobuje nı́zkou časovou přesnost, Internı́ RC oscilátor: nı́zká časová přesnost; běžné hodnoty jsou 1, 2, 4 a 8 MHz, závislost přesnosti oscilacı́ na napětı́, nejsou potřeba žádné externı́ součástky. Pomocné obvody řı́dicı́ aplikace, dokončenı́ I Možnosti generovánı́ hodinového signálu, pokračovánı́ I Internı́ hodinový generátor s externı́m krystalem: nejrozšı́řenějšı́ varianta; vstupy XTAL1 a XTAL2 představujı́ vstup a výstup invertujı́cı́ho zesilovače oscilátoru; vyžaduje jen dva kondenzátory (typické hodnoty od 12pF do 22pF). Obrázek: Externı́ krystal I Zdroj hodinového signálu je vybrán na základě tzv. programovatelné propojky (viz. dále). ATmega16 je dodáván s nastavenı́m internı́ho RC oscilátoru o frekvenci 1MHz. Propojky je možné přeprogramovat. Reset systému I I Přerušenı́ reset má nejvyššı́ prioritu – může přerušit již běžı́cı́ obsluhy všech přerušenı́, nebo vykonávajı́cı́ program. Události vyvolávajı́cı́ reset systému I I I I I I Úroveň na resetovacı́m pinu mikrokontroléru je nižšı́ než práh VP OT (Power-on reset threshold), Externı́ reset: přı́tomnost nı́zké úrovně na vstupu Reset Přetečenı́ ochranného časovače watchdog (musı́ být povoleno), Napájecı́ napětı́ má nižšı́ úroveň než práh VBOT (Brown-out reset threshold) (musı́ být povoleno), Reset pomocı́ JTAG rozhranı́. Reset způsobı́ opětovný výkon programu od adresy 0x0000 (reset vektor) a sloužı́ k nastavenı́ mikrokontroléru do definovaného (známého) stavu I I I Všechny periférie (včetně watchdogu) jsou odpojeny, Všechny paralelnı́ I/O porty jsou nastaveny jako vstupnı́, Všechna přerušenı́ jsou vypnuta. Generovánı́ externı́ho resetu I Procesory majı́ kromě vnitřnı́ho resetovacı́ho obvodu, který je závislý na napájecı́m napětı́, také externı́ resetovacı́ obvod I I I Pomocı́ tlačı́tka, Pomocı́ generátorů resetovacı́ho signálu, kdy je napájecı́ napětı́ monitorováno a při jeho poklesu je generován reset impulz. Např.: FM1233A (Fairchild Semiconductor), ADM709 (Analog Devices), . . ., Ošetřenı́ stisku je hardwarově realizováno uvnitř mikrokontroléru, nebo externı́ho generátoru. Obrázek: Tlačı́tko Obrázek: Externı́ generátor Time-out reset period I I Po provedenı́ resetu (opětovné nastavenı́ MCU do definovaného stavu) se spustı́ zpožd’ovacı́ čı́tač. To umožnı́ ustálenı́ napájecı́ho napětı́ před samotným výkonem programu. Zpožděnı́ startu výkonu programu po resetu lze nastavit pomocı́ programovatelných propojek na hodnoty 0, 4,1 ms, 65 ms (viz. dále) I I Kanál 1: signál na pinu reset, Kanál 2: Výstupnı́ pin portu B (periodické generovánı́ 0 a 1). Obrázek: Zpožděnı́ po resetu Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ Zámkové bity I I Zámkové bity umožňujı́ uzamknout obsah pamětı́ Flash i EEPROM. Mikrokontroléry se zpravidla dodávajı́ s nenaprogramovanými zámky. ATmega16 obsahuje tři typy zámků I I I Základnı́ zámek: umožňuje zakázat programovanı́ Flash i EEPROM, zákaz programovánı́ + zákaz verifikace (nelze čı́st program), nebo deaktivovat zámky (lze programovat, verifikovat), Zámek aplikačnı́ části Flash: omezeni použitı́ instrukcı́ SPM (Store memory program), LPM (Load program memory) a ELPM (Extended load program memory) pro aplikačnı́ část Flash, Zámek bootovacı́ části Flash: omezeni použitı́ instrukcı́ SPM, LPM a ELPM pro bootovacı́ část Flash. Programovatelné propojky I Programovatelné propojky (anglicky: fuse bits) upřesňujı́ použitı́ některých periferiı́. ATmega16 obsahuje dva byty těchto propojek I Povolenı́/zakázánı́ laděnı́ na čipu, použitı́ rozhranı́ JTAG (programovánı́ + laděnı́ aplikacı́), použitı́ sériového programovánı́, určenı́ velikosti bootovacı́ sekce ve Flash, volba start-up prodlevy, volba hodinového zdroje, . . . Fuse Popis funkce OCDEN JTAGEN SPIEN CKOPT EESAVE BOOTSZ1:0 BOOTRST BODLEVEL BODEN SUT1:0 CKSEL3:0 Povolenı́ laděnı́ přı́mo na čipu Povolenı́ JTAG rozhranı́ Povolenı́ sériového programovánı́ ISP Clock options Možnost uchovánı́ EEPROM dat i po smazánı́ čipu Velikost bootovacı́ sekce ve Flash (128 až 1 024 slov) Vektory přerušenı́ do bootovacı́ sekce Výběr úrovně detekce výpadku napájenı́ (brown-out) Povolenı́ detekce výpadku napájenı́ Výběr start-up prodlevy (0, 4,1 ms, 65 ms) Výběr zdroje hodinového signálu Bootovacı́ část paměti Flash I Programová pamět’ Flash je rozdělena na dvě části I I I Aplikačnı́ část (anglicky: Application section): k uloženı́ aplikace, která se má vykonávat, Bootovacı́ část (anglicky: Boot loader section): zde může být uložen program, který umožňuje přeprogramovánı́ aplikačnı́ (i bootovacı́) části Flash, Každá část má odlišnou úroveň zabezpečenı́, protože existujı́ dvě nastavenı́ zámkových bitů. I Velikost bootovacı́ části je nastavitelná pomocı́ propojky BOOTSZ1:0 na hodnoty 128, 256, 512 nebo 1 024 pamět’ových slov. I Je možnost přesunout vektory přerušenı́ do bootovacı́ části. Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ I/O (paralelnı́) port I I/O port obsahuje vstupně/výstupnı́ piny, které zajišt’ujı́ komunikaci s externı́m ”světem”. I Jsou to nejvšestranějšı́ I/O zařı́zenı́ mikrokontroléru. I Počty pinů korespondujı́ s použitı́m mikrokontroléru: 4 I/O piny (RS08KA, Freescale), 6 I/O pinů (ATtiny12, Atmel), 32 I/O pinů (ATmega16, Atmel), 48 I/O pinů (ATmega103, Atmel), . . . U mikrokontrolérů AVR jsou ke každému obousměrnému I/O portu asociovány 3 I/O registry I I I I I Směrový registr DDRx (Data Direction Register), Datový (výstupnı́) registr PORTx (Data Register), Vstupnı́ piny PINx (Port Input Pins), Např. u ATmega16, který obsahuje 4 I/O porty, jsou to: DDRA,. . .,DDRD, PORTA,. . .,PORTD, PINA,. . .,PIND. Řı́dicı́ registry I/O portů Obrázek: Řı́dicı́ registry I/O portů Ovládánı́ I/O portu I Směrový I/O registr DDRxn (x=A,B,C,D; n=0,1,. . .,7) I I I I Hodnota 0 ↔ pin je definován jako vstupnı́, Hodnota 1 ↔ pin je definován jako výstupnı́, V každém I/O portu je možné libovolně kombinovat vstupnı́/výstupnı́ piny. Směr komunikace pinu lze bezprostředně měnit bez ohledu na ostatnı́ (např. instrukce SBI, CBI). Výstupnı́ I/O registr PORTxn I I V přı́padě definovaného výstupnı́ho pinu, udává hodnota bitu v registru logickou úroveň na pinu. Hodnota 1 (DDRxn=1) ↔ pin je na vysoké úrovni, apod., V přı́padě vstupnı́ho pinu, udává hodnota bitu v registru aktivaci/deaktivaci pull-up rezistoru. DDRxn PORTxn I/O 0 0 1 1 0 1 0 1 Vstupnı́ Vstupnı́ Výstupnı́ Výstupnı́ Popis funkce Vysoká impedance Aktivace pull-up rezistoru Nı́zká úroveň Vysoká úroveň Ovládánı́ I/O portu, pokračovánı́ I Vstupnı́ I/O registr PINxn I I Hodnota 0 nebo 1 korespondujı́cı́ s úrovnı́ signálu na vstupu, Kopı́rujı́ se zde také data zapsaná do výstupnı́ho registru PORTxn! I Každý pin obsahuje přepět’ovou ochranu (omezujı́cı́ diody) a možnost připojenı́ pull-up rezistoru. I Většina I/O pinů umožňuje kromě klasické I/O komunikace také alternativnı́ funkci. Konkrétnı́ piny jsou tak využı́vány internı́mi perifériemi. Tabulka: Některé alternativnı́ funkce I/O pinů Pin Alternativa PA7:0 PB7:4 PC5:2 PC1:0 PD2 PD1:0 ADC SPI JTAG TWI INT0 USART Popis funkce Vstup 10bitového AD převodnı́ku (8 kanálů) Sériová komunikace pomocı́ SPI Programovacı́/ladicı́ rozhranı́ JTAG Dvouvodičová sběrnice I2C Zdroj externı́ho přerušenı́ 0 Vstup/výstup sériové komunikace USART Zapojenı́ jednoho I/O pinu Obrázek: Funkčnı́ schéma jednoho I/O pinu (nenı́ zakreslen pull-up, přepět’ová ochrana, alternativnı́ funkce, synchronizace vstupu) Způsoby nastavenı́ jednotlivých I/O pinů v JSA I Pomocı́ instrukcı́ SBI (Set bit in I/O register) a CBI (Clear bit in I/O register) I I I I sbi ddrb,0x03 ; definice výstupnı́ho pinu PB3 sbi ddrb,DDB3 ; definice výstupnı́ho pinu PB3 Konstanta DDB3 = 3 určuje index bitu v registru DDRB. Definováno v definičnı́m souboru (m16def.inc). Pomocı́ kombinace instrukcı́ LDI (Load immediate) a OUT (Out port) I I I I I ldi r16,0b00001000 ; definice výstupnı́ho pinu PB3 out ddrb,r16 ldi r16,(1<<DDB3) ; definice výstupnı́ho pinu PB3 out ddrb,r16 Operace << realizuje bitový posun doleva. Způsoby nastavenı́ jednotlivých I/O pinů v jazyce C I Směrový registr I I I I I DDRB = 0b00001000 ; // definice výstup. pinu PB3 DDRB |= (1<<DDB3) ; // definice výstup. pinu PB3 Konstanta DDB3 = 3 definována v hlavičkovém souboru (iom16.h), Operace | realizuje logický součet. Vstupnı́, výstupnı́ registry I I PORTB |= (1<<PB7)|(1<<PB0) ; // PB7 = PB0 = 1 PORTB = PIND ; // kopı́rovánı́ vstupu na výstup Funkce čı́tače/časovače I I Každý mikrokontrolér obsahuje periférii umožňujı́cı́ odečı́tat čas (časovač, anglicky: timer), přı́p. načı́tat vstupnı́ pulsy (čı́tač, anglicky: counter). Toho lze využı́t k jednoduchým aplikacı́m I I I Měřenı́ krátkých intervalů, periodické spouštěnı́ funkce, Konstrukce jednoduchých frekvenčnı́ch čı́tačů, ... I Obě funkce využı́vajı́ registr(y), jehož obsah se inkrementuje pomocı́ hodinového, přı́p. externı́ho signálu. I Lze tak využı́t 8, 16 bitové čı́tače/časovače. rs actual placement of I/O pins, refer to “Pinout ATmega16” on page 2. CPU accessible I/O Registers, including I/O bits and I/O pins, are shown in bold. The device-specific I/O Register and bit locations are listed in the “8-bit Timer/Counter Register Description” on page 83. Blokové schéma 8bitového čı́tače/časovače 0 Figure 27. 8-bit Timer/Counter Block Diagram TCCRn count TOVn (Int.Req.) clear Control Logic direction clk Tn Clock Select Edge Detector DATABUS BOTTOM Tn TOP ( From Prescaler ) Timer/Counter TCNTn =0 = 0xFF = OCn (Int.Req.) Waveform Generation OCn OCRn The Timer/Counter (TCNT0) and Output Compare Register (OCR0) are 8-bit registers. Obrázek:Interrupt Blokové 0 (označenı́ requestschéma (abbreviatedčitače/časovače to Int.Req. in the figure) signals are all visiblenin udává the Timer čı́slo Flag Register (TIFR). All interrupts are individually masked with the Timer čı́tače) Interrupt Interrupt Mask Register (TIMSK). TIFR and TIMSK are not shown in the figure since these registers are shared by other timer units. The Timer/Counter can be clocked internally, via the prescaler, or by an external clock source on the T0 pin. The Clock Select logic block controls which clock source and edge the Timer/Counter uses to increment (or decrement) its value. The Timer/Counter is Blokové schéma 8bitového čı́tače/časovače 0 I Čı́tač/časovač 0 je 8bitový registr schopen inkrementovat (dekrementovat) svou hodnotu. K č/č 0 lze přistupovat pomocı́ registrů I I I I TCNT0 (Timer/Counter0) – datová hodnota čı́tače/časovače 0, OCR0 (Output Compare Register) – hodnota pro neustálé porovnávánı́ s TCNT0, TCCR0 (Timer/Counter Control Register) - řı́dicı́ registr. Např. nastavenı́ hodnoty předděličky. Při přetečenı́ č/č (dosaženı́ maximálnı́ hodnoty a znovu návrat k 0) i při rovnosti hodnoty s komparačnı́m registrem je možné generovat přerušenı́. Definitions Many register and bit references in this document are written in general form. A lower case “n” replaces the Timer/Counter number, in this case 0. However, when using the register or bit defines in a program, the precise form must be used i.e., TCNT0 for accessing Timer/Counter0 counter value and so on. Čı́tač/časovač 0, funkce časovánı́, čı́tánı́ The definitions in Table 37 are also used extensively throughout the document. I 37. Definitions Vnitřnı́Table signály BOTTOM The counter reaches the BOTTOM when it becomes 0x00. I I I Timer/Counter ClockI Sources I I Counter Unit count: dekrementace registru MAX inkrementace The counter reachesnebo its MAXimum when it becomes 0xFFobsahu (decimal 255). TOP The counter reaches the TOP when it becomes equal to the highest TCNT0, value in the count sequence. The TOP value can be assigned to be the value mezi 0xFF (MAX) or the value stored inathedekrementacı́, OCR0 Register. The direction: fixed výběr inkrementacı́ assignment is dependent on the mode of operation. clear: nulovánı́ všech obsahu TCNT0, Timer/Counter can be clocked by an internal or an external clock source. The clock clkThe hodinový signál č/č 0, T0 – source is selected by the clock select logic which is controlled by the clock select (CS02:0) bits located in the Timer/Counter Control Register (TCCR0). For details on BOTTOM – signalizace dosaženı́ minimálnı́ hodnoty 0x00, clock sources and prescaler, see “Timer/Counter0 and Timer/Counter1 Prescalers” on page 87. TOP – signalizace dosaženı́ nejvyššı́ hodnoty čı́tánı́ 0xff nebo The main part the 8-bit Timer/Counter isregistru the programmable bi-directional counter unit. hodnoty v ofkomparačnı́m OCR0. Figure 28 shows a block diagram of the counter and its surroundings. Figure 28. Counter Unit Block Diagram TOVn (Int. Req.) DATA BUS Clock Select count TCNTn clear Control Logic clkTn Edge Detector direction ( From Prescaler ) BOTTOM TOP Signal description (internal signals): count Increment or decrement TCNT0 by 1. Obrázek: Funkce čı́tánı́ čı́tače/časovače direction Select between increment and decrement. clear Clear TCNT0 (set all bits to zero). clkTn Timer/Counter clock, referred to as clkT0 in the following. Tn Čı́tač/časovač 0, funkce časovánı́, čı́tánı́ I Č/č 0 může být řı́zen vnitřnı́m zdrojem hodinového signálu (lze zpomalit pomocı́ předděličky), nebo externı́m signálem přes pin T0. Tabulka: Nastavenı́ předděličky čı́tače/časovače 0 (TCCR0) CS02:CS00 0b000 0b001 0b010 0b011 0b100 0b101 0b110 0b111 I Popis Hodinový signál odpojen. Č/c 0 nepracuje fclk fclk /8 fclk /64 fclk /256 fclk /1 024 Externı́ zdroj řı́dicı́ho signálu, sestupná hrana Externı́ zdroj řı́dicı́ho signálu, náběžná hrana Doba přetečenı́ 8bitového časovače tOV F = N je hodnota předděličky. 1 fclk · N · 28 , kde Timer/Counter Timing Diagrams operation. The figure shows the count sequence close to the MAX value in all modes The is a PWM synchronous otherTimer/Counter than phase correct mode. design and the timer clock (clkT0) is therefore shown as a clock enable signal in the following figures. The figures include information on when34. Interrupt Flags areTiming set. Figure 34 contains timing data for basic Timer/Counter Figure Timer/Counter Diagram, no Prescaling operation. The figure shows the count sequence close to the MAX value in all modes other than phase correct PWM mode. Význam předděličky hodinového signálu clkI/O Figure 34. Timer/Counter Timing Diagram, no Prescaling clkTn (clk clkI/O/1) I/O TCNTn clkTn MAX - 1 MAX BOTTOM BOTTOM + 1 MAX - 1 MAX BOTTOM BOTTOM + 1 (clkI/O /1) TOVn TCNTn TOVn35 shows the same timing data, but with the prescaler enabled. Figure Figure 35. Timer/Counter Timing Diagram, with Prescaler (fclk_I/O/8) Figure 35 shows the same timing data, but with the prescaler enabled. clkI/O Figure 35. Timer/Counter Timing Diagram, with Prescaler (fclk_I/O/8) clkTn clkI/O (clkI/O /8) TCNTn clkTn MAX - 1 MAX BOTTOM BOTTOM + 1 MAX - 1 MAX BOTTOM BOTTOM + 1 (clkI/O /8) TOVn TCNTn TOVn36 shows the setting of OCF0 in all modes except CTC mode. Figure Obrázek: Rozdı́l mezi rychlostı́ čı́tánı́ bez předděličky a při N = 8 Figure 36 shows the setting of OCF0 in all modes except CTC mode. priority over) all counter clear or count operations. The counting sequence is determined by the setting of the WGM01 and WGM00 bits located in the Timer/Counter Control Register (TCCR0). There are close connections between how the counter behaves (counts) and how waveforms are generated on the Output Compare output OC0. For more details about advanced counting sequences and waveform generation, see “Modes of Operation” on page 76. Čı́tač/časovač 0, funkce porovnávánı́ (komparace) The Timer/Counter Overflow (TOV0) Flag is set according to the mode of operation selected by the WGM01:0 bits. TOV0 can be used for generating a CPU interrupt. Obsah registru OCR0 je neustále porovnáván s TCNT0. Output Compare Unit I Jestliže se obsahy obou registrů rovnajı́, lze generovat přerušenı́ (pokud je řádně povoleno). I Komparace lze snadno využı́t ke generovánı́ signálů, např. pulsně šı́řkovou modulaci (PWM - Pulse Width Modulation). I The 8-bit comparator continuously compares TCNT0 with the Output Compare Register (OCR0). Whenever TCNT0 equals OCR0, the comparator signals a match. A match will set the Output Compare Flag (OCF0) at the next timer clock cycle. If enabled (OCIE0 = 1 and Global Interrupt Flag in SREG is set), the Output Compare Flag generates an output compare interrupt. The OCF0 Flag is automatically cleared when the interrupt is executed. Alternatively, the OCF0 Flag can be cleared by software by writing a logical one to its I/O bit location. The waveform generator uses the match signal to generate an output according to operating mode set by the WGM01:0 bits and Compare Output mode (COM01:0) bits. The max and bottom signals are used by the waveform generator for handling the special cases of the extreme values in some modes of operation (See “Modes of Operation” on page 76.). Figure 29 shows a block diagram of the output compare unit. Figure 29. Output Compare Unit, Block Diagram DATA BUS OCRn TCNTn = (8-bit Comparator ) OCFn (Int.Req.) top bottom Waveform Generator OCn FOCn WGMn1:0 COMn1:0 73 2466M–AVR–04/06 Obrázek: Funkce porovnávánı́ čı́tače/časovače Čı́tač/časovač 0, funkce generováni PWM I I Informace je PWM signálem přenášena proměnnou střı́dou obdélnı́kového signálu. Princip činnosti I I Figure 32. Fast PWM Mode, Timingúroveň Diagram generovaného signálu Přetečenı́ časovače: vysoká (začátek periody), OCRn Interrupt Flag Set Při rovnosti registrů TCNT0 a OCR0: nı́zká úroveň (lze spouštět přerušenı́). OCRn Update and TOVn Interrupt Flag Set TCNTn OCn (COMn1:0 = 2) OCn (COMn1:0 = 3) Period 1 2 3 4 5 6 7 The Timer/Counter Overflow Flag (TOV0) is set each time the counter reaches MAX. If Obrázek: Funkce generovánı́ the interrupt is enabled, the interrupt handler signálu routine canPWM be used for updating the compare value. In fast PWM mode, the compare unit allows generation of PWM waveforms on the OC0 Obvod watchdog I Obvod watchdog je ”bezpečnostnı́ časovač”. Jeho význam je vyvolat reset (a tı́m i znovu-nastartovánı́) mikrokontroléru v přı́padě, že se procesor ”ztratı́”, přı́p. nevykonává program, který by měl. I K resetu (generovánı́ krátkého pulzu) dojde v přı́padě přetečenı́ watchdog časovače. Opět se provádı́ zpožděnı́ výkonu programu (Time-out period). I Watchdog má oddělený hodinový systém, jehož frekvence je závislá na napájenı́; VCC = 5V ⇔ fW DT = 1M Hz. I Běžný chod programu: program opakovaně znovunačı́tá, přı́p. resetuje stav časovače a tı́m nedojde k přetečenı́ jeho hodnoty. I V přı́padě ”ztráty” programu, zacyklenı́, apod. dojde k přetečenı́ a k vyvolánı́ resetu. atchdog Timer is clocked from a separate On-chip Oscillator which runs at 1 his is the typical value at VCC = 5V. See characterization data for typical values at CC levels. By controlling the Watchdog Timer prescaler, the Watchdog Reset can be adjusted as shown in Table 17 on page 43. The WDR – Watchdog Reset ction resets the Watchdog Timer. The Watchdog Timer is also reset when it is I d and when a Chip Reset occurs. Eight different clock cycle periods can be d to determine the reset period. If the reset period expires without another og Reset, the ATmega16 resets and executes from the Reset Vector. For timing on the Watchdog Reset, refer to page 41. Watchdog periférie Funkce watchdog časovače je běžně vypnuta, tj. nenı́ potřeba se obávat nechtěného resetu systému. I Povolenı́ generace resetu MCU a nastavenı́ předděličky je řı́zeno řı́dicı́m registrem WDTCR (Watchdog Timer Control Register). ent unintentional disabling of the Watchdog, a special turn-off sequence must be d when the Watchdog is disabled. Refer to the description of the Watchdog Timer Register for details. 21. Watchdog Timer WATCHDOG OSCILLATOR Obrázek: Struktura Watchdogu Tabulka: Rychlost čı́tánı́ watchdogu (WDTCR) WDP2:WDP0 Přetečenı́ (VCC = 5V ) 0b000 0b001 0b010 0b011 0b100 0b101 0b110 0b111 16ms 33ms 65ms 130ms 260ms 520ms 1s 2,1s 2466M–AVR–04/06 Ukázka využitı́ watchdogu v jazyce C I Popis aplikace I I I I Aplikace čeká na stisk tlačı́tka na pinu PD0, Poté se povolı́ watchdog, nastavı́ se nejdelšı́ doba přetečenı́ (cca 2,1 s) a rozsvı́tı́ se včechny LED diody na portu B, Z nekonečné smyčky se vyskočı́ až po přetečenı́ watchdog časovače. Použité přı́kazy/instrukce I WDR - nulovánı́ watchdogu. Ukázka využitı́ watchdogu v jazyce C #include <avr/io.h> // hlavičkový soubor pro mikrokontrolér ATmega16 int main( void ) { DDRD = 0x00 ; DDRB = 0xff ; PORTB = 0xff ; // deklarace vstupnı́ho portu D // deklarace výstupnı́ho portu B // zhasnutı́ všech LED diod loop_until_bit_is_clear( PIND, 0 ) ; // zacyklenı́ dokud nenı́ stisknuto tlačı́tko PD0 WDTCR |= (1<<WDE)|(1<<WDP2)|(1<<WDP1)|(1<<WDP0) ; // povolenı́ watchdog časovače a nastavenı́ // doby čekánı́ na cca 2,1 s asm( "wdr" ) ; // reset stavu časovače watchdog PORTB = 0x00 ; // rozsvı́cenı́ všech LED diod while( 1 ) ; } // nekonečná smyčka Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ Připojenı́ externı́ch perifériı́ I Připojenı́ externı́ch perifériı́ (tlačı́tko, LED, klávesnice, . . .) je obecně možné realizovat třemi způsoby 1) Přı́mé připojenı́: jeden I/O pin je využit k připojenı́ jednoho jednoduchého zařı́zenı́ (tlačı́tko, LED, . . .), 2) Maticové uspořádánı́: několik jednoduchých zařı́zenı́ je uspořádáno do matice, což snižuje počet potřebných I/O pinů (maticová klávesnice), 3) Pomocı́ pomocných obvodů: externı́ zařı́zenı́ pracuje nezávisle na řı́dicı́m mikrokontroléru. V přı́padě události generuje požadavek na přerušenı́, které zajistı́ načtenı́/vyslánı́ potřebných dat. Jednoduché ošetřenı́ zákmitů mechanického tlačı́tka I Při sepnutı́ mechanického tlačı́tka docházı́ k zákmitům (nechtěné impulsy způsobujı́cı́ nekorektnı́ výkon programu). Tyto zákmity je nutné vždy ošetřit! I I I Při stisku i uvolněnı́ tlačı́tka je volána funkce realizujı́cı́ zpožděnı́, Po stisku se testuje, zda již bylo tlačı́tko uvolněno, teprve pak se pokračuje ve výkonu programu, V rámci prvnı́ zpožd’ovacı́ smyčky (tj. při sepnutı́) je možné realizovat ”pı́pnutı́ reproduktoru”, apod. (Pı́pnutı́ je reprezentováno vysı́lánı́m obdélnı́kového signálu o určité frekvence). Použitı́ maticové klávesnice I Maticová klávesnice 4 × 4 využı́vá jeden I/O port I I I Zjištěnı́ stisknuté klávesy se provádı́ tzv. skenovánı́m klávesnice, kdy jsou ve čtyřech krocı́ch vyslány hodnoty na výstupnı́ piny 1) 2) 3) 4) I 4 piny jsou definovány jako vstupnı́ (např. PB3-PB0), 4 piny jsou výstupnı́ (např. PB7-PB4). PB7:4 PB7:4 PB7:4 PB7:4 = = = = 0b1110, 0b1101, 0b1011, 0b0111. Po každém kroku se skenujı́ vstupnı́ piny. Pokud je některý roven 0, bylo stisknuto přı́slušné tlačı́tko. Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů 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. Barnett, R., O’Cull, L., Cox, S. Embedded C Programming and the Atmel AVR, 2e. Thomson Delmar Learning, New York (USA), 2006, ISBN 1-4180-3959-4. Gadre, D.V. Programming and Customizing the AVR Microcontroller. McGraw Hill, New York (USA), 2001, ISBN 0-07-134666-X. Zdroje informacı́ Atmel Corporation. AVR Assembler User Guide, (řı́jen 2007). http://www.atmel.com/dyn/resources/prod_documents/ DOC1022.PDF Atmel Corporation. ATmega16, (řı́jen 2007). http://www.atmel.com/dyn/products/product_card. asp?part_id=2010 C library for use with GCC on AVR. AVR Libc Home Page, (řı́jen 2007). http://www.nongnu.org/avr-libc/ Obsah přednášky Funkce, struktura a provedenı́ pomocných obvodů Napájenı́, hodinový signál, obvod reset Zámkové bity, propojky Vnitřnı́ struktura a využı́tı́ základnı́ch perifériı́ Vstupně/výstupnı́ port Čı́tač/časovač Watchdog časovač Způsoby připojenı́ jednoduchých perifernı́ch zařı́zenı́ Přı́mé připojenı́, maticové, pomocı́ pomocných obvodů Zdroje informacı́ Otázky a přı́klady k procvičenı́ Otázky a přı́klady k procvičenı́ 1. Nakreslete zapojenı́ řı́dicı́ aplikace mikrokontroléru, dvou LED diod a jednoho tlačı́tka. Jaký mikrokontrolér si vyberete? Kolik externı́ch součástek budete potřebovat? 2. Jakým způsobem je možné generovat obdélnı́kový signál s plynule proměnnou střı́dou? 3. K čemu se použı́vá watchdog a jak se ovládá? 4. Sestavte vývojový diagram aplikace pro ošetřenı́ stisku tlačı́tka s generovánı́m ”pı́pnutı́”.
Podobné dokumenty
Metoda datových obalů – DEA
jaké má být množství vstupů, aby se neefektivní jednotka stala efektivní. Koeficient technické efektivity je definován jako poměr vážené sumy výstupů a vážené sumy vstupů. Váhy musí být stanoveny t...
VíceRízení sériové komunikace - Mikroprocesorová technika a embedded
Programming through the JTAG interface requires control of the four JTAG specific Obrázek: Ukázka časového diagramu SPI komunikace. pins: TCK, TMS, TDI and TDO. Control of the reset and clock p...
VíceWA-6206-V2 - Alternetivo
3.2 Připojení k WiFi routeru Otevřete si okno prohlížeče (např. Internet Explorer) a následně napište do adresního řádku následující adresu 192.168.1.254 a potvrďte.
VíceZobrazovací zařízení, zpracování analogových signálů
internı́ A/D převodnı́k potřebuje pro 10bitový převod hodinový signál o frekvenci od 50 kHz do 200 kHz: I I
Vícenz06_mont_navod_1.1
b. připojit ext. napájecí napětí 28V s proudovým omezením max. 0,5A c. změřit stabilizované napětí 5V na výstupu 7805 d. změřit na zenerce 1N5341B napětí cca. 6V e. změřit na zenerce 1N5346B napětí...
VíceCíselné soustavy v mikroprocesorové technice
v přı́padě, že výsledek aritmetické operace je následně operandem dalšı́ operace, je nutné data upravit do původnı́ho počtu bitů, následné snı́ženı́ počtu bitů je nutné také v pr...
Více