• No results found

Komunikace zaˇ r´ızen´ı po sbˇ ernici

N/A
N/A
Protected

Academic year: 2022

Share "Komunikace zaˇ r´ızen´ı po sbˇ ernici"

Copied!
51
0
0

Loading.... (view fulltext now)

Full text

(1)

Ustav radioelektroniky´ Vysok´e uˇcen´ı technick´e v Brnˇe

Komunikace zaˇ r´ızen´ı po sbˇ ernici

Mikroprocesorov´a technika a embedded syst´emy Pˇredn´aˇska 4

doc. Ing. Tom´aˇs Fr´yza, Ph.D.

11. ˇr´ıjna 2011

(2)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(3)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(4)

Obvod watchdog

I Obvod watchdog je ”bezpeˇcnostn´ı ˇcasovaˇc”. Jeho v´yznam je vyvolat reset (a t´ım i znovu-nastartov´an´ı) mikrokontrol´eru v pˇr´ıpadˇe, ˇze se procesor ”ztrat´ı”, pˇr´ıp.

nevykon´av´a program, kter´y by mˇel.

I Naz´avisl´y ˇcasovaˇc s oddˇelen´ym hodinov´ym syst´emem (frekvence je z´avisl´a na nap´ajen´ı; VCC = 5 V ⇔ fWDT= 1 MHz).

I Bˇeˇzn´y chod programu: program opakovanˇe znovunaˇc´ıt´a, pˇr´ıp. resetuje stav ˇ

casovaˇce (napˇr. v nekoneˇcn´e smyˇcce programu) a t´ım nedojde k pˇreteˇcen´ı jeho hodnoty.

I V pˇr´ıpadˇe ”ztr´aty”programu, zacyklen´ı, apod. dojde k pˇreteˇcen´ı a k vyvol´an´ı resetu.

(5)

Watchdog perif´ erie

I Funkce watchdog ˇcasovaˇce je bˇeˇznˇe vypnuta, tj. nen´ı potˇreba se ob´avat nechtˇen´eho resetu syst´emu.

I Povolen´ı generace resetu MCU a nastaven´ı pˇreddˇeliˇcky je ˇr´ızeno ˇr´ıdic´ım registrem WDTCR (Watchdog Timer Control Register).

42

ATmega16(L)

2466M–AVR–04/06

Internal Voltage Reference

ATmega16 features an internal bandgap reference. This reference is used for Brown- out Detection, and it can be used as an input to the Analog Comparator or the ADC. The 2.56V reference to the ADC is generated from the internal bandgap reference.

Voltage Reference Enable Signals and Start-up Time

The voltage reference has a start-up time that may influence the way it should be used.

The start-up time is given in Table 16. To save power, the reference is not always turned on. The reference is on during the following situations:

1. When the BOD is enabled (by programming the BODEN Fuse).

2. When the bandgap reference is connected to the Analog Comparator (by setting the ACBG bit in ACSR).

3. When the ADC is enabled.

Thus, when the BOD is not enabled, after setting the ACBG bit or enabling the ADC, the user must always allow the reference to start up before the output from the Analog Com- parator or ADC is used. To reduce power consumption in Power-down mode, the user can avoid the three conditions above to ensure that the reference is turned off before entering Power-down mode.

Watchdog Timer The Watchdog Timer is clocked from a separate On-chip Oscillator which runs at 1 MHz. This is the typical value at VCC = 5V. See characterization data for typical values at other VCC levels. By controlling the Watchdog Timer prescaler, the Watchdog Reset interval can be adjusted as shown in Table 17 on page 43. The WDR – Watchdog Reset – instruction resets the Watchdog Timer. The Watchdog Timer is also reset when it is disabled and when a Chip Reset occurs. Eight different clock cycle periods can be selected to determine the reset period. If the reset period expires without another Watchdog Reset, the ATmega16 resets and executes from the Reset Vector. For timing details on the Watchdog Reset, refer to page 41.

To prevent unintentional disabling of the Watchdog, a special turn-off sequence must be followed when the Watchdog is disabled. Refer to the description of the Watchdog Timer Control Register for details.

Figure 21. Watchdog Timer

Table 16. Internal Voltage Reference Characteristics

Symbol Parameter Min Typ Max Units

VBG Bandgap reference voltage 1.15 1.23 1.4 V

tBG Bandgap reference start-up time 40 70 µs

IBG Bandgap reference current consumption 10 µA

WATCHDOG OSCILLATOR

Obr´azek:Struktura Watchdogu.

Tabulka:Pˇr´ıklad zmˇeny rychlosti ˇc´ıt´an´ı watchdogu (reg. WDTCR)

WDP2:WDP0 Pˇreteˇcen´ı (VCC = 5 V)

0b000 16 ms

0b001 33 ms

0b010 65 ms

0b011 130 ms

0b100 260 ms

0b101 520 ms

0b110 1 s

0b111 2,1 s

(6)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(7)

Z´ akladn´ı pojmy mikroprocesorov´ e techniky

I Bit – zkratka z ”Binary Digit”, tj. jeden symbol v bin´arn´ı soustavˇe:

I oznaˇcen´ı ”b”. Napˇr. 8 b,

I nastaven´ı bitu (set bit) hodnota bitu = 1 (vysok´a ´uroveˇn),

I nulov´an´ı bitu (clear bit) hodnota bitu = 0 (n´ızk´a ´uroveˇn).

I Pamˇet’ov´a buˇnka zaˇr´ızen´ı nebo elektrick´y obvod pro uchov´an´ı hodnoty 1 bitu (klopn´y obvod, stav tranzistoru, jeden ”spot”na CD, magnetick´y n´aboj, . . .).

I Pamˇet’ov´e slovo mnoˇzina pamˇet’ov´ych bunˇek urˇcit´e velikosti (registr z osmi klopn´ych obvod˚u, . . .); typick´a velikost od 4 do 64 bit˚u.

I Pamˇet’ souˇc´astka, umoˇzˇnuj´ıc´ı uloˇzen´ı programu nebo dat v bin´arn´ı podobˇe.

Soubor urˇcit´eho poˇctu pamˇet’ov´ych slov.

I Registr – skupina pamˇet’ov´ych bunˇek k uloˇzen´ı bin´arn´ı informace. Kratˇs´ı pˇr´ıstupov´a doba neˇz u ostatn´ıch pamˇet’ov´ych slov.

I ˇS´ıˇrka registru – poˇcet bit˚u v registru.

I Registrov´y p´ar – dvojice registr˚u.

I Pin – vodiˇc vyveden´y vnˇe souˇc´astky.

I Port – skupina pin˚u (nejˇcastˇeji 8), umoˇzˇnuj´ıc´ı vstupnˇe/v´ystupn´ı komunikaci mikrokontrol´eru s okol´ım.

I Sbˇernice – skupina paraleln´ıch vodiˇc˚u umoˇzˇnuj´ıc´ı propojen´ı vstup˚u a v´ystup˚u nˇekolika zaˇr´ızen´ı, registr˚u, apod.

(8)

Z´ akladn´ı pojmy a terminologie

I Byte [bajt] – slovo o ˇs´ıˇrce 8 bit˚u; jedno z nejpouˇz´ıvanˇejˇs´ıch pamˇet’ov´ych slov v mikroprocesorov´e technice:

I oznaˇcen´ı ”B”. Napˇr. 16 B,

I Nibl [nibl] – slovo o ˇs´ıˇrce 4 bit˚u; polovina bytu; dˇr´ıve hojnˇe vyuˇz´ıv´ano.

I MSB (Most Significant Bit/Byte) – nejv´yznamnˇejˇs´ı bit/byte.

I LSB (Least Significant Bit/Byte) – nejm´enˇe v´yznamn´y bit/byte.

I Big-endian, Little-endian – poˇrad´ı ukl´ad´an´ı byt˚u do pamˇeti.

Obr´azek:[Wiki].

I Pamˇet’ov´a kapacita – celkov´y poˇcet bit˚u v pamˇeti, nebo v syst´emu. Ud´av´a se ve tvaru poˇcet slov × ˇs´ıˇrka slova:

I napˇr. 8k × 16, 1k × 8, 512 × 8.

I Pozn.: Pracujeme ve dvojkov´e soustavˇe, proto:

I 1k [kilo] = 210= 1 024 (pozor: 1k 6= 1 000),

I 1M [mega] = 220= 1 048 576,

I 1G [giga] = 230= 1 073 741 824.

(9)

Z´ akladn´ı pojmy a terminologie

Pˇr´ıklad

Co pˇredstavuje z´apis pamˇet’ov´e kapacity 4 096 × 20?

ˇReˇsen´ı

I Poˇcet slov = 4 096 (4k),

I ˇs´ıˇrka slova, tj. poˇcet bit˚u na slovo = 20 b.

Pˇr´ıklad

Necht’ je pamˇet’ov´a kapacita vyj´adˇrena hodnotou 2k × 8 (a) Kolik slov obsahuje tato souˇc´astka?

(b) Jak´a je ˇs´ıˇrka jednoho slova?

(c) Jak´y je celkov´y poˇcet bit˚u v pamˇet’ov´e souˇc´astce?

(10)

Z´ akladn´ı pojmy a terminologie, pamˇ eti

I Adresa – index, kter´y identifikuje pozici slova v pamˇeti;

kaˇzd´e slovo m´a unik´atn´ı adresu; nejˇcastˇeji se ud´av´a v ˇsestn´actkov´e soustavˇe (prefix 0x nebo$).

I Cten´ı z pamˇˇ eti (anglicky Fetch) – operace, pˇri kter´e je bin´arn´ı slovo (napˇr. slovo 10 na obr´azku) vyzvednuto z konkr´etn´ı adresy v pamˇeti (0x0A) a pˇreneseno na jin´e m´ısto.

I Z´apis do pamˇeti (anglicky Store) – operace, pˇri kter´e je nov´e slovo (napˇr. slovo 1 na obr´azku) pˇreneseno na konkr´etn´ı pozici v pamˇeti (0x01); p˚uvodn´ı informace je ztracena.

Obr´azek:Uspoˇr´ad´an´ı pamˇeti.

(11)

Uk´ azka adresov´ an´ı pamˇ et’ov´ eho slova

I Uk´azka adresov´an´ı 8bitov´eho slova pomoc´ı 16bitov´e adresy.

I MSB tvoˇr´ı vyˇsˇs´ı byte adresy, LSB tvoˇr´ı niˇzˇs´ı byte adresy

I MSB: 0b0010 1010 @$2A,

I LSB: 0b0111 0011 @$73.

I Vˇsechna pamˇet’ov´a slova jsou stejnˇe ˇsirok´a.

Adresovan´a data:

I 0b0001 0111 @$17.

Obr´azek:Adresov´an´ı pamˇet’ov´eho slova.

(12)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(13)

Komunikace mezi zaˇ r´ızen´ımi

I Typick´a komunikace uvnitˇr mikrokontrol´eru, ale i mezi mikrokontrol´erem a zaˇr´ızen´ımi prob´ıh´a po paraleln´ım veden´ı, tj. po sbˇernici (u 8bitov´ych syst´em˚u tvoˇrena zpravidla 8 vodiˇci).

I Vˇsechna zaˇr´ızen´ı obsahuj´ı 8bitov´y vstupnˇe/v´ystupn´ı port, pomoc´ı nˇehoˇz jsou pˇripojena na jedinou skupinu vodiˇc˚u sbˇernici. Nejedn´a se tedy o spojen´ı point-point.

I Aby byly eliminov´any kolize na sbˇernici, kdy nˇekolik zaˇr´ızen´ı vys´ıl´a souˇcasnˇe – stav na sbˇernici je d´an kombinac´ı v´ıce sign´al˚u; data jsou ”neˇciteln´a”– se pouˇz´ıvaj´ı syst´emy s tˇr´ı-stavov´ymi v´ystupy (Three State), pˇr´ıp. oddˇelovac´ı bufery

s tˇr´ıstavov´ym v´ystupem.

I Tˇr´ı-stavov´y v´ystup je ˇr´ızen povolovac´ım vstupem (Enable), kter´y zajist´ı aktivaci vˇzdy jen jednoho zaˇr´ızen´ı, v´ystupy ostatn´ıch jsou ve stavu vysok´e impedance.

(14)

Tˇ r´ı-stavov´ y v´ ystup

I V´ystupy obsahuj´ı kromˇe stavu HIGH a LOW tak´e stav vysok´e impedance. ˇR´ızen´ı reˇzimu pomoc´ı ˇr´ıdic´ıho sign´alu ENABLE (E ).

I Uk´azka: Symbolick´a znaˇcka ˇc´asti tˇr´ı-stavov´eho buferu 74HC125 (Philips):

I pouzdro obsahuje celkem 4 takov´e buˇnky,

I troj´uheln´ıˇcek znamen´a tˇr´ı-stavov´y v´ystup,

I mal´e koleˇcko u ˇr´ıdic´ıho vstupu E informuje, ˇze aktivn´ı ´uroveˇn je n´ızk´a,

I nˇekter´e 3stavov´e buffery maj´ı aktivn´ı ´uroveˇn vysokou (74HC126), pˇr´ıp. invertuj´ı v´ystupn´ı hodnotu.

Obr´azek:Symbolick´a znaˇcka tˇr´ı-stavov´eho bufferu 74HC125.

(15)

Tˇ r´ı-stavov´ y v´ ystup, pokraˇ cov´ an´ı

I Popis ˇcinnosti:

I E =1; v´ystup ve stavu vysok´e impedance – v´ystup se chov´a jakoby fyzicky odpojen´y od sbˇernice,

I E =0; buffer pracuje v norm´aln´ım reˇzimu, tj. v´ystup X je napˇet’ov´y ekvivalent vstupu A.

I Tˇr´ı-stavov´e obvody jsou obsaˇzeny v klopn´ych obvodech, registrech, pamˇet’ov´ych souˇc´astk´ach, a t´emˇeˇr ve vˇsech mikrokontrol´erech.

(16)

Tˇ r´ı-stavov´ y v´ ystup, dokonˇ cen´ı

I Tˇr´ı-stavov´e buffery se bˇeˇznˇe pouˇz´ıvaj´ı k pˇripojen´ı nˇekolika zaˇr´ızen´ı/sign´al˚u ke sbˇernici.

A EA

B EB

C EC

74HC125 sbìrnice

Obr´azek:Tˇri odliˇsn´e buffery pro sign´aly A, B a C.

I V pˇr´ıpadˇe vys´ıl´an´ı v´ıce zaˇr´ızen´ı, dojde ke kolizi na sbˇernici (neˇz´adouc´ı). ˇR´ıdic´ı sign´aly EN mus´ı zajistit, aby ke sbˇernici bylo pˇripojeno jen jedno zaˇr´ızen´ı.

(17)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(18)

Paraleln´ı pˇ renos dat mezi registry

I Registry hraj´ı v´yznamnou ´ulohu v mikroprocesorov´e technice. Ze softwarov´eho pohledu je mikrokontrol´er syst´emem registr˚u, mezi kter´ymi je bin´arn´ı informace pˇresunov´ana a zpracov´av´ana.

I Existuj´ı dva zp˚usoby pˇresunu dat mezi registry:

I paraleln´ı, s´eriov´y.

Obr´azek:Paraleln´ı pˇrenos dat.

I Uk´azka: Dvojice 3bitov´ych registr˚u X a Y, kter´e jsou tvoˇreny klopn´ymi obvody typu D, ˇr´ızen´ych hranou.

I Pˇresun dat je ˇr´ızen hodinov´ym sign´alem CLK.

(19)

Paraleln´ı a s´ eriov´ y pˇ renos dat mezi registry

I Symbolick´y z´apis pˇrenosu dat: [X]→[Y] (pˇresun obsahu registru X do registru Y).

I Hodinov´y pulz aplikov´an na vstupy CLK zp˚usob´ı pˇresun dat z v´ystup˚u X2, X1, X0

(vstupy DY) na v´ystupy Y2, Y1, Y0.

I Jedn´a se o paraleln´ı pˇresun, protoˇze cel´y obsah registru X se pˇrekop´ıruje do Y najednou (pomoc´ı jedn´e hrany ˇr´ıdic´ıho sign´alu).

I Uk´azka: S´eriov´y pˇrenos dat prostˇrednictv´ım 3bitov´eho posuvn´eho registru (klopn´e obvody typu JK, ˇr´ızen´e hranou).

Obr´azek:Posuvn´y (shift) registr.

(20)

S´ eriov´ y pˇ renos dat mezi registry

Obr´azek:S´eriov´y pˇrenos dat.

I Pˇri aktivn´ı hranˇe sign´alu CLK jsou hodnoty vstupn´ıch sign´al˚u klopn´ych obvod˚u pˇrekop´ırov´any na v´ystupy (tj. na vstupy obvod˚u vpravo).

I Data z v´ystupu posledn´ıho KO jsou ztracena. S´eriov´y pˇrenos vyˇzaduje v´ıce ˇcasu (jeden bit vyˇzaduje jeden pulz), ale m´enˇe vodiˇc˚u.

(21)

S´ eriov´ y pˇ renos dat mezi registry, pˇ r´ıklad

Pˇr´ıklad

Pˇrenos dat [X]→[Y]; necht’ [X]=101, [Y]=011 a S = 0

ˇReˇsen´ı

1. pulz: [X]=010, [Y]=101 2. pulz: [X]=001, [Y]=010 3. pulz: [X]=000, [Y]=101

Tabulka:Postupn´e posouv´an´ı dat.

S X2 X1 X0 Y2 Y1 Y0

0 1 0 1 0 1 1 pˇred 1. pulzem

0 0 1 0 1 0 1 po 1. pulzu

0 0 0 1 0 1 0 po 2. pulzu

0 0 0 0 1 0 1 po 3. pulzu

(22)

Komunikace mezi zaˇ r´ızen´ımi

Pˇr´ıklad

Jak´ym zp˚usobem zajistit bezpeˇcn´y pˇrenos dat ze zaˇr´ızen´ı ˇc. 2 do ˇr´ıdic´ı jednotky? (Necht’ ˇr´ıdic´ı jednotka v tomto pˇr´ıpadˇe shromaˇzd’uje informace od jednotliv´ych zaˇr´ızen´ı).

Pˇr´ıklad

Jak´e napˇet’ov´e ´urovnˇe budou na datov´e sbˇernici v pˇr´ıpadˇe, ˇze vˇsechna zaˇr´ızen´ı budou ve stavu vysok´e impedance?

Obr´azek:Komunikace po sbˇernici.

(23)

Pˇ r´ıklad pˇ renosu dat po sbˇ ernici

I Pˇr´ıklad zapojen´ı tˇr´ı 4bitov´ych registr˚u 74173 (4bitov´y 3stavov´y klopn´y obvod typu D) na 4bitovou sbˇernici, tvoˇrenou vodiˇci DB3–DB0.

I Registry obsahuj´ı tˇri ˇr´ıdic´ı sign´aly:

I IE (Input Enable) – n´ızk´a ´uroveˇn aktivuje vstupn´ı obvody,

I OE (Output Enable) – n´ızk´a ´uroveˇn aktivuje v´ystupn´ı obvody,

I CLK – hodinov´y sign´al.

Pˇr´ıklad

Zajistˇete pˇrenos dat z registru B do registru A, [B]→[A]. Necht’ [B] = 1100.

Obr´azek:4bitov´e registry 74173.

(24)

Pˇ r´ıklad pˇ renosu dat po sbˇ ernici, ˇ reˇ sen´ı

ˇReˇsen´ı

I V´ystupy:

I pouze registr B mus´ı m´ıt aktivn´ı v´ystupn´ı obvody, tj. OEA=1, OEC=1, OEB=0,

I obsah registru B je t´ım zaps´an na datovou sbˇernici.

I Vstupy:

I pouze registr A mus´ı m´ıt aktivn´ı vstupn´ı obvody, tj. IEA=0, IEB=1, IEC=1.

I N´asleduj´ıc´ı aktivn´ı hrana hodinov´eho sign´alu zajist´ı pˇrenos (pˇreˇcten´ı) dat ze sbˇernice do klopn´ych obvod˚u registru A.

I Pˇrenos dat je tedy zajiˇstˇen generov´an´ım korektn´ı posloupnost´ı ˇr´ıdic´ıch sign´al˚u – zajiˇst’uje ˇr´ıdic´ı jednotka.

(25)

Pˇ r´ıklad pˇ renosu dat po sbˇ ernici, ˇ reˇ sen´ı

Reˇˇ sen´ı

I Platn´a data jsou v registru A pˇreneseny v ˇcasov´em intervalu t1− t2.

Obr´azek:Casov´ˇ e pr˚ubˇehy.

Pˇr´ıklad

Proˇc je aktivn´ı ´uroveˇn ˇr´ıdic´ıch sign´al˚u v n´ızk´e ´urovni?

(26)

Rozˇ s´ıˇ ren´ı sbˇ ernice

I Bˇeˇznˇe se pouˇz´ıv´a vˇetˇs´ı poˇcet registr˚u neˇz 3. Obecnˇe lze na sbˇernici pˇripojit libovoln´y poˇcet registr˚u. Zvyˇsuje se t´ım ale poˇcet ˇr´ıdic´ıch sign´al˚u OE , IE a vstupnˇe/v´ystupn´ıch vodiˇc˚u.

I Obdobnˇe jako u 4bitov´e sbˇernice funguj´ı sbˇernice 8bitov´e, 16bitov´e, nebo 32bitov´e.

I Zobecnˇen´y princip:

I jeden registr (pamˇet’ov´a buˇnka, zaˇr´ızen´ı) m´a aktivovan´e v´ystupn´ı obvody a zapisuje data na sbˇernici,

I jin´e zaˇr´ızen´ı m´a aktivovan´e vstupn´ı obvody, ˇc´ımˇz m˚uˇze data ze sbˇernice ˇc´ıst,

I pˇri aktivn´ı hranˇe hodinov´eho sign´alu dojde k z´apisu dat do registru – synchronn´ı ˇr´ızen´ı.

I ˇS´ıˇrka sbˇernice (poˇcet vodiˇc˚u) je d´ana ˇs´ıˇrkou datov´eho slova, pˇren´aˇsen´eho v syst´emu. 8bitov´e slovo ⇒ 8 vodiˇc˚u, 16bitov´e slovo ⇒ 16 vodiˇc˚u, . . . Nˇekter´e syst´emy obsahuj´ı kombinac´ı nˇekolika r˚uznˇe-ˇsirok´ych sbˇernic.

I Poˇcet zaˇr´ızen´ı, pˇripojen´ych na sbˇernici je rozd´ıln´y pˇr´ıpad od pˇr´ıpadu. Z´avis´ı na velikosti pamˇeti syst´emu a na poˇctu vstupn´ıch a v´ystupn´ıch zaˇr´ızen´ıch, kter´e mus´ı s CPU komunikovat po sbˇernici.

I Vˇsechna zaˇr´ızen´ı mus´ı b´yt pˇripojena pˇres 3stavov´e buffery:

I nˇekter´a zaˇr´ızen´ı tyto buffery jiˇz obsahuj´ı pˇr´ımo na ˇcipu, napˇr. registry 74173 (viz v´yˇse),

I ostatn´ı zaˇr´ızen´ı mus´ı b´yt ke sbˇernici pˇripojeny pˇres tzv. ˇradiˇc sbˇernice (Bus Driver).

(27)

Radiˇ ˇ c sbˇ ernice/Bus Driver

I Radiˇˇ c sbˇernice obsahuje 3stavov´y v´ystup s velmi n´ızkou v´ystupn´ı impedanc´ı, coˇz zp˚usobuje rychl´e nab´ıjen´ı a vyb´ıjen´ı celkov´e kapacitn´ı reaktance (odpor) sbˇernice

⇒ kr´atk´e doby pˇrechodu. (ˇRadiˇc sbˇernice tedy nezhorˇsuje doby pˇrechodu.)

I Kapacitn´ı odpor je tvoˇren kumulac´ı parazitn´ıch kapacitanc´ı vˇsech vstup˚u a v´ystup˚u, pˇripojen´ych ke sbˇernici a m˚uˇze zhorˇsit doby pˇrechodu.

I Pˇr´ıklad ˇradiˇce sbˇernice – 8bitov´y 74HC541.

(28)

Vyuˇ zit´ı ˇ radiˇ ce sbˇ ernice

I Pˇripojen´ı v´ystupu 8bitov´eho A/D pˇrevodn´ıku k datov´e sbˇernici pomoc´ı 74HC541.

Tabulka:Funkˇcn´ı tabulka.

OE1 OE0 An Yn

0 0 0 0

0 0 1 1

1 X X Z

X 1 X Z

Obr´azek:Radiˇˇ c sbˇernice

(29)

Zjednoduˇ sen´ a reprezentace ˇ casov´ ych pr˚ ubˇ eh˚ u

I Casov´ˇ e pr˚ubˇehy jednotliv´ych sign´al˚u na sbˇernici lze z d˚uvodu pˇrehlednosti z´apisu sdruˇzit do jedin´eho pr˚ubˇehu – v´yhodn´e u syst´em˚u s 8, 16, nebo s 32 vodiˇci.

I Uk´azka: Pˇrenos dat ze zaˇr´ızen´ı B do A, viz pˇredeˇsl´y pˇr´ıpad [B]=1100:

I OEB=0; IEA=0,

I ostatn´ı ˇr´ıdic´ı vstupy/v´ystupy nejsou zakresleny.

I Platn´a data na sbˇernici v dobˇe trv´an´ı aktivn´ı

´

urovnˇe hodinov´eho impulsu (interval t2− t1).

I Neplatn´a data v intervalech t1− t0a t3− t2.

Obr´azek:Zjednoduˇsen´e ˇcasov´e pr˚ubˇehy.

(30)

Zjednoduˇ sen´ a reprezentace sbˇ ernic

I Z d˚uvodu pˇripojen´ı velk´eho mnoˇzstv´ı zaˇr´ızen´ı ke sbˇernici se pouˇz´ıv´a zjednoduˇsen´e zn´azornˇen´ı vodiˇc˚u ve sch´ematech:

I pomoc´ı ˇsirok´ych ˇsipek; ˇc´ıslo v [·] zn´azorˇnuje ˇs´ıˇrku registr˚u/poˇcet pˇripojen´ych vodiˇc˚u,

I pomoc´ı jedin´eho vodiˇce (fyzicky nespojeno) s indikovanou ˇ

s´ıˇrkou (poˇctem bit˚u) \4.

Obr´azek:4bitov´y registr 74173 a MCU ATtiny11.

Obr´azek:Zjednoduˇsen´e zn´azornˇen´ı sbˇernice.

(31)

Obousmˇ ern´ a sbˇ ernice

I Uvaˇzovan´y obvod (registr 74173) m´a vstupy i v´ystupy napojen´e na shodn´y vodiˇc datov´e sbˇernice, napˇr. vstupn´ı sign´al DC 0je propojen s v´ystupem OC 0pˇres vodiˇc DB0(neplat´ı pˇri pouˇzit´ı ˇradiˇce sbˇernice):

I DC 0– vstup ˇc. nula registru C,

I OC 0– v´ystup ˇc. nula registru C.

I Z d˚uvodu sn´ıˇzen´ı poˇctu pin˚u, bylo vyvinuto uspoˇr´ad´an´ı s propojen´ım vstup˚u a v´ystup˚u uvnitˇr integrovan´ych obvod˚u.

I Kaˇzd´y pin (I0/O0aˇz In/On) m˚uˇze pracovat jako vstupn´ı nebo v´ystupn´ı v z´avislosti na ˇr´ıdic´ıch sign´alech. Proto jsou piny I/O naz´yv´any jako obousmˇern´e datov´e linky.

I Mnoho pamˇet’ov´ych obvod˚u a mikroprocesor˚u samozˇrejmˇe umoˇzˇnuje obousmˇern´y pˇrenos.

(32)

Obousmˇ ern´ a sbˇ ernice

Obr´azek:Propojen´ı I/O pin˚u uvnitˇr obvodu.

(33)

Adresn´ı, datov´ a, ˇ r´ıdic´ı sbˇ ernice

I V mikroprocesorov´ych syst´emech se obecnˇe vyskytuj´ı tˇri typy sbˇernic.

I Adresn´ı sbˇernice: pˇren´aˇs´ı n-bitovou adresu z mikroprocesoru do pamˇeti:

I mikrokontrol´ery AVR obsahuj´ı 16bitovou adresn´ı sbˇernici, tj. mohou adresovat 216= 65 536 pozic v pamˇeti nebo ve vstupnˇe/v´ystupn´ım zaˇr´ızen´ı,

I ˇcten´ı/z´apis z/do pamˇeti mus´ı b´yt doprov´azen pˇr´ısluˇsn´ym ˇr´ıdic´ım sign´alem.

I Datov´a sbˇernice: obousmˇern´a 8bitov´a sbˇernice (u 8bitov´ych syst´em˚u) pro pˇrenos dat do/z pamˇeti.

I Datov´a sbˇernice nemus´ı obsahovat jen ”data”, ale tak´e instrukce, kter´e maj´ı b´yt vykon´any.

I R´ıdic´ı sbˇˇ ernice je skupina vˇsech ˇcasovac´ıch a ˇr´ıdic´ıch sign´al˚u, nutn´ych pro korektn´ı

synchronizaci operac´ı mikroprocesoru s ostatn´ımi souˇc´astmi syst´emu.

I Nˇekter´e ˇr´ıdic´ı sign´aly jsou v´ystupem mikroprocesoru a nˇekter´e jsou vstupy od I/O zaˇr´ızen´ı. Poˇcet a typ sign´al˚u se liˇs´ı,

I Mezi z´akladn´ı sign´aly patˇr´ı READ/WRITE, generovan´y mikroprocesorem a obsahuj´ı ho vˇsechny mikroprocesory (pˇr´ıp. jeho ekvivalent),

I Sign´al Enable.

Obr´azek:Zjednoduˇsen´e blokov´e sch´ema MCU typu AVR.

(34)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(35)

Pomocn´ e obvody ˇ r´ıdic´ı aplikace

I Nen´ı vˇzdy nutn´e vyuˇz´ıvat v´ykonn´e mikrokontrol´ery. U jednoduch´ych aplikac´ı postaˇc´ı napˇr. ATtiny12 (pouzdro PDIP8).

I Jednoduch´e ˇr´ıdic´ı aplikace s mikrokontrol´ery vyˇzaduj´ı (po hardwarov´e str´ance):

I zdroj nap´ajen´ı,

I zdroj hodinov´eho sign´alu,

I resetovac´ı obvod.

Obr´azek:Blokov´e zapojen´ı ˇr´ıdic´ı aplikace.

(36)

Pomocn´ e obvody ˇ r´ıdic´ı aplikace, pokraˇ cov´ an´ı

I Typ nap´ajen´ı z´avis´ı na mobiln´ı/desktopov´e aplikaci:

I nap´ajen´ı z bateri´ı, z rozvodn´e s´ıtˇe s transformac´ı, z datov´ych port˚u PC (RS-232, USB), pomoc´ı sol´arn´ıch panel˚u, . . .,

I hodinov´y sign´al procesoru ˇr´ıd´ı ˇcasov´an´ı AVR j´adra. Od nˇeho jsou odvozeny ˇ

casovac´ı sign´aly pro vˇsechny perif´erie (Flash, A/D pˇrevodn´ık, I/O modul, ˇc´ıtaˇc, . . .),

I obecn´e moˇznosti generov´an´ı hodinov´eho sign´alu:

I extern´ı zdroj hodinov´eho sign´alu na vstupn´ım pinu XTAL1,

I vnˇejˇs´ı RC oscil´ator: RC oscil´ator zp˚usobuje n´ızkou ˇcasovou pˇresnost,

I intern´ı RC oscil´ator: n´ızk´a ˇcasov´a pˇresnost; bˇeˇzn´e hodnoty jsou 1, 2, 4 a 8 MHz, z´avislost pˇresnosti oscilac´ı na napˇet´ı, nejsou potˇreba ˇz´adn´e extern´ı souˇc´astky.

(37)

Pomocn´ e obvody ˇ r´ıdic´ı aplikace, dokonˇ cen´ı

I Moˇznosti generov´an´ı hodinov´eho sign´alu, pokraˇcov´an´ı:

I intern´ı hodinov´y gener´ator s extern´ım krystalem: nejrozˇs´ıˇrenˇejˇs´ı varianta; vstupy XTAL1 a XTAL2 pˇredstavuj´ı vstup a v´ystup invertuj´ıc´ıho zesilovaˇce oscil´atoru; vyˇzaduje jen dva kondenz´atory (typick´e hodnoty od 12 pF do 22 pF).

Obr´azek:Extern´ı krystal.

Pozn.: Zdroj hodinov´eho sign´alu je vybr´an na z´akladˇe tzv. programovateln´e propojky (viz d´ale). Propojky je moˇzn´e pˇreprogramovat.

ATmega16 je dod´av´an s pˇrednastaven´ym intern´ım RC oscil´atorem o frekvenci 1 MHz.

(38)

Sniˇ zov´ an´ı spotˇ reby

I Vhodnou zmˇenou softwaru lze sn´ıˇzit proudov´y odbˇer; vyˇsˇs´ı ˇzivotnost bateri´ı.

Obr´azek:Testovac´ı aplikace s ATmega88PA [AVR4013].

I Viz napˇr. Application Note AVR4013: picoPower Basics:

I jeden A/D pˇrevod,

I simulace 1000 f´az´ı “zpracov´an´ı sign´alu”,

I pˇrevod hodnoty na ASCII ˇretˇezec,

I vysl´an´ı dat pˇres UART,

I a znovu . . .

(39)

Sniˇ zov´ an´ı spotˇ reby

Tabulka:Doba trv´an´ı testovac´ı aplikace.

Metody redukce spotˇreby Zivotnost baterieˇ

ˇZ´adn´a 6 s

Oˇsetˇren´ı nepouˇzit´ych pin˚u a intern´ıch perif´eri´ı 9 s Pˇreddˇeliˇcka hodinov´eho sign´alu 40 s

Reˇzimy sn´ıˇzen´e spotˇreby 198 s

Redukce doby v aktivn´ım m´odu 217 s

(1) fCPU= 8 MHz, UART 19 200 Bd, polling (opakovan´e dotazov´an´ı) ˇcasovaˇce 2, zda uplynula 1 s.

(2) Pouˇzit´ı pull-up rez. u nevyuˇzit´ych pin˚u – nepˇrekl´ap´ı se; odpojen´ı nap´ajen´ı od nevyuˇz´ıvan´ych perif´eri´ı (SPI, TWI, Timer0, Timer1).

(3) Sn´ıˇzen´ı frekvence fCPU= 2 MHz, UART 19 200 Bd.

(4) Bˇehem ˇcek´an´ı na dalˇs´ı zpracov´an´ı → sleep m´od (idle, sleep, power save).

(5) Softwarov´e kalibrov´an´ı oscil´atoru pro zv´yˇsen´ı pˇrenosov´e rychlosti 115,5 kbps;

pˇreddˇeliˇcka CPU z˚ust´av´a.

(40)

Sniˇ zov´ an´ı spotˇ reby – uk´ azka nˇ ekter´ ych funkc´ı avr-libc

1 #i n c l u d e<a v r / i o . h> // h e a d e r f i l e f o r ATtiny44A m i c r o c o n t r o l l e r 2 #i n c l u d e<a v r / s l e e p . h> // s l e e p e n a b l e ( ) , s l e e p d i s a b l e ( ) , s l e e p c p u ( ) 3 #i n c l u d e<a v r / p o w e r . h> // s e e g o o g l e : `` a v r l i b c power ' '

4 . . . 5

6 p o w e r _ t i m e r 0 _ d i s a b l e ( ) ; // t u r n o f f t i m e r / c o u n t e r 0 7 p o w e r _ t i m e r 1 _ d i s a b l e ( ) ; // t u r n o f f t i m e r / c o u n t e r 1 8 p o w e r _ a d c _ d i s a b l e ( ) ; // t u r n o f f ADC

9 p o w e r _ u s i _ e n a b l e ( ) ; // t u r n on u s i ( U n i v e r s a l S e r i a l I n t e r f a c e ) 10

11 // p r e s c a l e s y s t e m c l o c k f r o m 8 MHz t o 500 kHz 12 c l o c k _ p r e s c a l e _ s e t ( c l o c k _ d i v _ 1 6 ) ;

13

14 // s e t s l e e p mode t o Power−s a v e 15 s e t _ s l e e p _ m o d e ( S L E E P _ M O D E _ P W R _ S A V E ) ; 16

17 // e n a b l e s l e e p ( p o s s i b l e t o p u t t h e d e v i c e i n t o s l e e p mode when e x e c u t i n g ←- t h e s l e e p i n s t r u c t i o n )

18 s l e e p _ e n a b l e ( ) ; 19

20 s l e e p _ b o d _ d i s a b l e ( ) ; // d i s a b l e BOD w h i l e i n s l e e p mode 21 s l e e p _ c p u ( ) ; // e x e c u t e s l e e p i n s t r u c t i o n

(41)

Reset syst´ emu

I Pˇreruˇsen´ı reset m´a nejvyˇsˇs´ı prioritu m˚uˇze pˇreruˇsit jiˇz bˇeˇz´ıc´ı obsluhy vˇsech pˇreruˇsen´ı, nebo vykon´avaj´ıc´ı program.

I Ud´alosti vyvol´avaj´ıc´ı reset syst´emu:

I ´uroveˇn na resetovac´ım pinu mikrokontrol´eru je niˇzˇs´ı neˇz pr´ah VPOT (Power-on reset threshold),

I extern´ı reset: pˇr´ıtomnost n´ızk´e ´urovnˇe na vstupu Reset

I pˇreteˇcen´ı ochrann´eho ˇcasovaˇce watchdog (mus´ı b´yt povoleno),

I nap´ajec´ı napˇet´ı m´a niˇzˇs´ı ´uroveˇn neˇz pr´ah VBOT(Brown-out reset threshold) (mus´ı b´yt povoleno),

I reset pomoc´ı JTAG rozhran´ı.

I Reset zp˚usob´ı opˇetovn´y v´ykon programu od adresy 0x0000 (reset vektor) a slouˇz´ı k nastaven´ı mikrokontrol´eru do definovan´eho (zn´am´eho) stavu, tj.:

I vˇsechny perif´erie (vˇcetnˇe watchdogu) jsou odpojeny,

I vˇsechny paraleln´ı I/O porty jsou nastaveny jako vstupn´ı,

I vˇsechna pˇreruˇsen´ı jsou vypnuta.

(42)

Generov´ an´ı extern´ıho resetu

I Procesory maj´ı kromˇe vnitˇrn´ıho resetovac´ıho obvodu, kter´y je z´avisl´y na nap´ajec´ım napˇet´ı, tak´e extern´ı resetovac´ı obvod:

I pomoc´ı tlaˇc´ıtka,

I pomoc´ı gener´ator˚u resetovac´ıho sign´alu, kdy je nap´ajec´ı napˇet´ı monitorov´ano a pˇri jeho poklesu je generov´an reset impulz. Napˇr.: FM1233A (Fairchild Semiconductor), ADM709 (Analog Devices), . . .,

I oˇsetˇren´ı stisku je hardwarovˇe realizov´ano uvnitˇr mikrokontrol´eru, nebo unvitˇr extern´ıho gener´atoru.

Obr´azek:Tlaˇc´ıtko.

Obr´azek:Extern´ı gener´ator reset.

(43)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(44)

Programovateln´ e propojky

I Programovateln´e propojky (anglicky: Fuse bits) upˇresˇnuj´ı pouˇzit´ı nˇekter´ych periferi´ı. ATmega16 obsahuje dva byty tˇechto propojek:

I povolen´ı/zak´az´an´ı ladˇen´ı na ˇcipu, pouˇzit´ı rozhran´ı JTAG (programov´an´ı + ladˇen´ı aplikac´ı), pouˇzit´ı s´eriov´eho programov´an´ı, urˇcen´ı velikosti bootovac´ı sekce ve Flash, volba start-up prodlevy, volba hodinov´eho zdroje, . . .

Fuse Popis funkce

OCDEN Povolen´ı ladˇen´ı pˇr´ımo na ˇcipu.

JTAGEN Povolen´ı JTAG rozhran´ı.

SPIEN Povolen´ı s´eriov´eho programov´an´ı ISP.

CKOPT Clock options.

EESAVE Moˇznost uchov´an´ı EEPROM dat i po smaz´an´ı ˇcipu.

BOOTSZ1:0 Velikost bootovac´ı sekce ve Flash (128 aˇz 1 024 slov).

BOOTRST Vektory pˇreruˇsen´ı do bootovac´ı sekce.

BODLEVEL V´ybˇer ´urovnˇe detekce v´ypadku nap´ajen´ı (brown-out).

BODEN Povolen´ı detekce v´ypadku nap´ajen´ı.

SUT1:0 V´ybˇer start-up prodlevy (0; 4,1 ms, 65 ms).

CKSEL3:0 V´ybˇer zdroje hodinov´eho sign´alu.

I Pozn.: AVR Fuse Calculator (http://www.engbedded.com/fusecalc/).

(45)

Um´ıstˇ en´ı JTAG (Joint Test Action Group)

Obr´azek:Pouzdro mikrokontrol´eru ATmega16 – um´ıstˇen´ı perif´erie JTAG.

(46)

Bootovac´ı ˇ c´ ast pamˇ eti Flash

I Programov´a pamˇet’ Flash je rozdˇelena na dvˇe ˇc´asti:

I aplikaˇcn´ı ˇc´ast (anglicky: Application section): k uloˇzen´ı aplikace, kter´a se m´a vykon´avat,

I bootovac´ı ˇc´ast (anglicky: Boot loader section): zde m˚uˇze b´yt uloˇzen program, kter´y umoˇzˇnuje pˇreprogramov´an´ı aplikaˇcn´ı (i bootovac´ı) ˇc´asti Flash.

I Bootloader umoˇzˇnuje komunikovat s ”okoln´ım svˇetem”pomoc´ı dostupn´ych protokol˚u (UART, SPI, I2C, . . .) a tak´e umoˇzˇnuje mˇenit obsah aplikaˇcn´ı ˇc´asti programov´e pamˇeti.

I Vyuˇzit´ı: program´ator (propojen´ı PC softwaru a prog. pamˇeti MCU) – aktualizace firmwaru elektronick´ych zaˇr´ızen´ı.

I Velikost bootovac´ı ˇc´asti je nastaviteln´a pomoc´ı propojky BOOTSZ1:0 na hodnoty 128, 256, 512 nebo 1 024 pamˇet’ov´ych slov.

I Je moˇznost pˇresunout vektory pˇreruˇsen´ı do bootovac´ı ˇc´asti.

(47)

Obsah pˇ redn´ aˇ sky

Watchdog ˇcasovaˇc

Z´akladn´ı pojmy a terminologie z mikroprocesorov´e techniky

Obvody s tˇr´ı-stavov´ym v´ystupem

Komunikace po sbˇernici

Funkce, struktura a proveden´ı pomocn´ych obvod˚u Nap´ajen´ı, hodinov´y sign´al, obvod reset

Programovateln´e propojky (Fuse)

Uk´azka programu v JSA a v jazyce C pro ATmega16 ˇCasovaˇc watchdog

(48)

Casovaˇ ˇ c watchdog v JSA

I Intern´ı (”hl´ıdac´ı”) ˇcasovaˇc watchdog je nutn´e opakovanˇe nulovat – typicky v nekoneˇcn´e smyˇcce. Pˇri pˇreteˇcen´ı zp˚usob´ı reset syst´emu.

I Nulov´an´ı pomoc´ı instrukce WDR – Watchdog Reset.

I Pˇreteˇcen´ı m˚uˇze b´yt zp˚usobeno pomalou obsluhou pˇreruˇsen´ı/podprogram˚u, nebo zacyklen´ım vnˇe nekoneˇcn´e smyˇcky.

I Ovl´ad´an´ı prostˇrednictv´ım WDTCR (Watchdog Timer Control Register):

I WDE – Watchdog Enable,

I WDP – Watchdog Timer Prescaler.

(49)

Casovaˇ ˇ c watchdog v JSA

1 . i n c l u d e <m16def . inc> ; p o p i s n ´y s o u b o r ATmega16

2 . cseg ; pamˇet’ov´y s e g m e n t F l a s h

3 . org 0 x0000 ; u l o ˇz od a d r e s y 0 x 0 0 0 0

4 RJMP r e s e t ; s k o ˇc na n ´a v ˇe ˇs t´ı r e s e t

5 . org 0 x0002 ; v e k t o r p ˇr e r u ˇs e n´ı INT0

6 RJMP t l a c i t k o ; s k o ˇc na n ´a v ˇe ˇs t´ı t l a c i t k o 7

8 . org 0 x002A ; u l o ˇz od a d r e s y 0 x002A

9 r e s e t :

10 . . . ; d e f i n i c e z ´a s o b n´ık u

11 . . . ; n a p l n ˇe n´ı I /O r e g i s t r ˚u

12 LDI R16 , (1<<WDE ) |(1<<W D P 2 ) |(1<<W D P 1 ) |(1<<W D P 0 )

13 OUTWDTCR , R16 ; p o v o l e n´ı w a t c h d o g u

14 ; r e d d ˇe l i ˇc k a @ 2 , 1 s

15 SEI ; g l o b ´a l n´ı p o v o l e n´ı p ˇr e r u ˇs e n´ı 16

17 l o o p : ; n e k o n eˇc n ´a smyˇcka

18 WDR ; n u l o v ´a n´ı w a t c h d o g u

19 RJMP l o o p ; s k o k na n ´a v ˇe ˇs t´ı l o o p

20

21 t l a c i t k o :

22 . . . ; o b s l u h a p ˇr e r u ˇs e n´ı INT0

23 RJMP t l a c i t k o ; CHYBN´E z a c y k l e n´ı

24 RETI ; u k o n ˇc e n´ı o b s l u h y p ˇr e r u ˇs e n´ı

(50)

Casovaˇ ˇ c watchdog v jazyce C

I Vloˇzen´ı instrukce AVR do zdrojov´eho k´odu v jazyce C bez nutnosti pˇred´av´an´ı parametr˚u:

I funkce asm() ;

I parametrem je ˇretˇezec obsahuj´ıc´ı posloupnost instrukc´ı, kter´e se maj´ı pˇr´ımo vloˇzit do pˇrekompilovan´e aplikace,

I jednotliv´e instrukce lze oddˇelovat \n:

Napˇr.: asm( “WDR\nDEC R16” ) ;

(51)

Casovaˇ ˇ c watchdog v jazyce C

1 #i n c l u d e<a v r \ i o . h> // h l a v i ˇc k o v ´y s o u b o r p r o MCU 2 #i n c l u d e<a v r \ i n t e r r u p t . h>// h l a v . s o u b o r p r o p ˇr e r u ˇs e n´ı 3

4 ISR ( I N T 0 _ v e c t ) { // o b s l u h a e x t e r n´ıh o p ˇr e r u ˇs e n i INT0

5 . . . // k´od o b s l u h y p ˇr e r u ˇs e n´ı

6 w h i l e( 1 ) ; // CHYBN´E z a c y k l e n´ı

7 }

8

9 i n t m a i n ( v o i d ) {

10 . . . // k´od h l a v n´ı f u n k c e

11 W D T C R |= (1<<WDE ) |(1<<W D P 2 ) |(1<<W D P 1 ) |(1<<W D P 0 ) ;

12 // p o v o l e n´ı w a t c h d o g u

13 // pˇr e d d ˇe l i ˇc k a @ 2 , 1 s

14 sei ( ) ; // p o v o l e n´ı g l o b ´a l n´ıh o p ˇr e r u ˇs e n´ı 15 w h i l e( 1 ) { // n e k o n eˇc n ´a smyˇcka

16 asm ( ”WDR” ) ; // n u l o v ´a n´ı w a t c h d o g u 17

18 }

19 r e t u r n( 1 ) ; // v ´y s t u p n´ı h o d n o t a f u n k c e = 1

20 }

References

Related documents

Bylo by tak´ e vhodn´ e, vyrobit nanovl´ akenn´ y filtr s niˇ zˇs´ım tlakov´ ym sp´ adem (ide´ alnˇ e stejn´ ym, jako maj´ı komerˇ cn´ı c´ıvky) a zjistit jeho ´

Po vytvoˇ ren´ı jednoduch´ eho regresn´ıho modelu metodou nejmenˇ s´ıch ˇ ctverc˚ u zaˇ c´ın´ a f´ aze statistick´ e verifikace a dalˇ s´ıho testov´ an´ı hypot´ ez

Metoda maxim´ aln´ı vˇ erohodnosti spoˇ c´ıv´ a v tom, ˇ ze za odhad nezn´ am´ eho parametru (nezn´ am´ ych parametr˚ u) zvol´ı hodnota b θ, kter´ a pˇ ri dan´ ych

V t´ eto kapitole se budeme vˇ enovat rozˇ s´ıˇ ren´ı line´ arn´ıho regresn´ıho modelu pro n vysvˇ etluj´ıc promˇ enn´ ych, tedy X 1..

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru

Karta je k poˇ c´ıtaˇ ci pˇripojena pomoc´ı sbˇ ernice USB a komunikuje se softwarem FDT CN, ten slouˇ z´ı jako komunikaˇ cn´ı uzel a pˇrev´ ad´ı komunikaci z

Ke kaˇ zd´ emu videu pouˇ zit´ emu pˇri testov´ an´ı byly hod- noty poˇ ctu osob, kter´ e proˇsly a poˇ ctu unik´ atn´ıch osob, kter´ e se ve videu objevily tak´ e

Mezi data ukl´ adan´ a do datab´ aze patˇr´ı informace o pool serveru, ke kter´ emu je tˇ eˇ zebn´ı klient aktu´ alnˇ e pˇripojen, informace o dobˇ e tˇ eˇ zby aktu´