varnett škola

Transkript

varnett škola
Ú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ů

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...

Více

Bloková struktura mikrokontroléru

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

Více

Technické vybavenı osobnıch pocıtacu

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...

Více

Zobrazit celý článek - Trendy ve vzdělávání

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).

Více

AŽD Praha sro

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...

Více

vysoké učení technické v brně automatický anténní analyzátor

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ý ...

Více

Dotykový spínač osvetlenia s časovačom

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...

Více