Mikroprocesorová technika, prednáška c. 6

Transkript

Mikroprocesorová technika, prednáška c. 6
Ú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

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íce

Rízení sériové komunikace - Mikroprocesorová technika a embedded

Rí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íce

WA-6206-V2 - Alternetivo

WA-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íce

Zobrazovací zařízení, zpracování analogových signálů

Zobrazovací 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íce

nz06_mont_navod_1.1

nz06_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íce

Císelné soustavy v mikroprocesorové technice

Cí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