hcs12 in etc

18
http://vision.fe.uni-lj.si/classes/GSPV GSPV (10-a) HCS12, časovniki in ECT Stanislav Kovačič Univerza v Ljubljani Fakulteta za elektrotehniko

Upload: lionel

Post on 20-Jan-2016

71 views

Category:

Documents


0 download

DESCRIPTION

HCS12 in ETC. Prosto tekoči števec (angl. Free Running Counter): 16 bitni števni register , ki krožno teče z osnovnim taktom časovnika. Vhodno prestrezanje (angl. Input Capture): ob aktivnem prehodu na prestreznem vhodu se v prestrezni register prepiše vrednost števnega registra. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: HCS12 in ETC

http://vision.fe.uni-lj.si/classes/GSPV

GSPV (10-a)

HCS12, časovniki

in ECT

Stanislav Kovačič

Univerza v Ljubljani

Fakulteta za elektrotehniko

Page 2: HCS12 in ETC

HCS12 in ETCHCS12 in ETC

Prosto tekoči števec (angl. Free Running Counter):16 bitni števni register, ki krožno teče z osnovnim taktom časovnika.

Vhodno prestrezanje (angl. Input Capture): ob aktivnem prehodu na prestreznem vhodu se v prestrezni register

prepiše vrednost števnega registra.

Izhodno primerjanje (angl. Output Compare):ko se vsebina števnega registra izenači s prednastavljeno vrednostjo

primerjalnega registra, se postavi signal na ustreznem izhodnem kanalu.

Pulzni akumulator (amgl. Pulse Accumulator):omogoča štetje dogodkov na vhodnem kanalu, ali merjenje časovnega

intervala med dvema (tipično hitrima) dogodkoma na vhodnem kanalu.

Page 3: HCS12 in ETC

HCS12 – ETC (PIM)HCS12 – ETC (PIM)

Prestrezni ali

primerjalni

kanali

časovnika

Časovnik ETC

Page 4: HCS12 in ETC

HCS12 - ETC na hitroHCS12 - ETC na hitro

Do 8 prestreznih kanalov,torej do 8 16-bitnih prestreznih registrov.

Do 8 primerjalnih izhodov,torej do 8 16-bitnih primerjalnih registrov.

Štiri 8 bitne ali dva 16 bitna pulzna akumulatorja. Veliko možnosti pri izbiri osnovnega takta.

S tem se doseže velik časovni razpon in/ali primerna

časovna ločljivost.

Veliko načinov delovanja:poleg osnovnih funkcij (to je prestrezanja in generiranja

signalov), daje veliko dodatih (specifičnih) možnosti

predvsem kanal 7.

Page 5: HCS12 in ETC

HCS12 – ETC HCS12 – ETC (blokovna shema)(blokovna shema)

Page 6: HCS12 in ETC

HCS12 – ETC HCS12 – ETC registriregistri

Page 7: HCS12 in ETC

HCS12–ETC HCS12–ETC izbira taktaizbira takta

Notranji takt

Zunanji

takt

na kanalu 7

bit v registruTSCR1

biti v registruTSCR2

to se nanaša registre pulznih akumulatorjev

Page 8: HCS12 in ETC

HCS12–ETC HCS12–ETC izhodno primerjanjeizhodno primerjanje

(1)

Ko se časovni števec (TCNT)

izenači s

primerjalnim registrom (TCn)

Prikaz delovanja za

n-ti (n=0,1,...,7) kanal

(2)

Če je izbran

primerjali način

(TIOS)

(3)

se postavi

zastavica

(TFLG1)

(4)

in pride do

prekinitve, če jo

omogoča (TIE)

(5)

izhod pa

se odzove, kot

določa

TCTL1/TCTL2

Page 9: HCS12 in ETC

HCS12–ETC HCS12–ETC vhodno prestrezanjevhodno prestrezanje

(5)

Časovni števec (TCNT)

se prepiše v

primestrezni registrer (TCn)

Prikaz delovanja za

n-ti (n=0,1,...,7) kanal

(2)

Če je izbran

prestrezni način

(TIOS)

(4)

in pride do

prekinitve, če jo

omogoča (TIE)

(1)

če je na vhodu

aktivna sprememba

kot jo določata

TCTL3/TCTL4

(3)

se postavi

zastavica

(TFLG1)

Page 10: HCS12 in ETC

HCS12 – delo z ETCHCS12 – delo z ETC

• Delo s časovniki je spričo številnih možnosti precej zapleteno. • Izberemo vir/frekvenco osnovnega takta (tipično E),

register TSCR2.• Določimo prestrezne vhode in/ali primerjalne vhode,

register TIOS. • Določimo aktivne prehode na prestreznih vhodih in/ali

stanje na primerjalnih izhodov, TCTL1/2/3/4.• Po potrebi - tipično, omogočimo prekinitve,

register TIE.

• (Ne smemo pozabiti omogočiti delovanje

celotnega časovnega modula) TSCR1.

Page 11: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekaterinekateri registriregistri

Določimo, kateri kanali bodo prestrezni in kateri primerjalni

register TIOS:

IOS_i = 1, primerjalni izhod

IOS_i = 0, prestrezni vhod

Page 12: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri

Omogočimo/onemogočimo (ustavimo) delovanje časovnika:

Kontrolni register časovnega modula: TSCR1,

TEN = 1.

Page 13: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri

Izberemo preddelilno razmerje:

Kontrolni register časovnega modula: TSCR2

Izbere preddelilno razmerje.

Omogoči zahtevo za prekinitev

preplavitve časovnega števca

Register zastavice preplavitve časovnega števca: TFL2

Page 14: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri

Določimo delovanje izhodnih kanalov:

Kontrolni register časovnika: TCTL1/TCTL2

izhod odklopljen, sprememba izhoda, izhod nizek ali visok.

Page 15: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri

Določimo delovanje vhodnih kanalov:

Kontrolni register časovnika: TCTL3/TCTL4

vhod odklopljen, spremba gor ali dol ali vsaka.

Page 16: HCS12 in ETC

HCS12 – ETC HCS12 – ETC nekateri registrinekateri registri

Omogoči zahtevo za prekinitev ustreznega kanala:

Register prekinitvenih mask: TIE

Obravnavamo dogodke časovnika

Preverjamo zastavice ustreznih kanalov in/ali prekinitev:

Register prekinitvenih zastavic: TFLG1

Zastavica ustreznega kanala se briše z vpisom enice !

Page 17: HCS12 in ETC

HCS12 – ETC HCS12 – ETC primerprimer

TIOS equ ECTBase ;IC ali OC

TCNT equ ECTBase+$04 ;časovni števec

TIE equ ECTBase+0c ;omogočimo prekinitve

TCTL2 equ ECTBase+09 ;obnašanje izhodov

TSCR1 equ ECTBase+$06 ;kontr.r. modula, TE

TSCR2 equ ECTBase+$0d ;kontr.r. modula, preddelilnik

TFLG1 equ ECTBase+$0e ;zastavice

TC0 equ ECTBase+10 ;OC register kanala 0

movb #$80,TSCR1 ;omogočimo časovnik

movb #$01,TIOS ;Kanal 0 naj bo OC

movb #$01,TCTL2 ;spreminjanje izhoda

movb #$01,TIE ;omogočimo prekinitev kanala 0

ldd #Perioda

std TC0

movb #$01,TFLG1 ;brišemo zastavico

cli

bra *

Generiranje

pravokotnega

impulza

Seveda pa manjka

še prekinitveni

strežnik in

def.

prekinitvenega

vektorja

Page 18: HCS12 in ETC

HCS12 – ETC HCS12 – ETC registriregistri