160 likes | 273 Views
Vestavné mikropočítačové systémy. 3 . Týden – Atmel AVR V/ V brány a časovače / čítače. V/V brány – vlastnosti. Vlastnosti lze nastavovat pro každý bit samostatně
E N D
Vestavné mikropočítačové systémy 3. Týden – Atmel AVRV/V brány a časovače/čítače
V/V brány – vlastnosti • Vlastnosti lze nastavovat pro každý bit samostatně • Výstupní pin může do zátěže dodávat proud až 40mA (může přímo budit LED), ale max. celkově odebíraný proud (teče do Vcc resp. GND) je 300mA. Pomni 1. Kirchhoffův zákon! • Výstup je proudově symetrický (může budit i anodu LED). • Ke vstupu může být volitelně připojen interní pull-up rezistor cca 2050k. Možnost nechat pull-up rezistor odpojený znamená nižší spotřebu v případě, že pin má funkci výstupu a je ve stavu L. • Po resetu jsou brány nastaveny jako vstupní, ale bez připojených vnitřních pull-up rezistorů co nejdříve po startu provést konfiguraci, aby netrval neurčitý stav dlouho, příp. osadit externí pull-up rezistory.
V/V brány – konfigurace • Každé bráně v I/O prostoru odpovídají 3 registry, kterými se nastavuje funkce jejích pinů. Bity těchto registrů odpovídají jednotlivým pinům. • DDRx – ovládání směru (vstup/výstup) • PORTx – nastavení hodnoty výstupních pinů a připojení vnitřních pull-up rezistorů na vstupní piny • PINx – odpovídá hodnotě jednotlivých pinů (pouze pro čtení) • Všechny nakonfigurované pull-up rezistory lze globálně zamaskovat příznakem PUD v I/O registru SFIOR.
V/V brány – varianty Vcc Vcc 2050k PINxn PINxn PINxn PORTxn Vstup DDRxn= 0PORTxn = 0 Vstup s pull-upem DDRxn= 0PORTxn = 1 Výstup DDRxn= 1
Časovače/čítače • Čítač/časovač 0 • 8-mi bitový, čítá pouze vzestupně • Čítač externích událostí (volitelná náběžná/sestupná hrana) • Čítač interních hodin (volitelný dělící poměr 1, 1/8, 1/64, 1/256 nebo 1/1024 • Čítač/časovač 1 • 16-ti bitový, vzestupný / sestupný čítač • Čítač externích událostí (volitelná náběžná/sestupná hrana) • Čítač interních hodin (volitelný dělící poměr 1, 1/8, 1/64, 1/256 nebo 1/1024 • 2 nezávislé komparovací jednotky • 1 zachytávací (capture) jednotka • Volitelný auto-reload (clear on compare match) • Frekvenční generátor, 16-bitová PWM • Čítač/časovač 2 • 8-ti bitový, obousměrný • Volitelný zdroj hodin: systémové hodiny nebo druhý krystal • Volitelný dělící poměr 1, 1/8, 1/64, 1/256 nebo 1/1024 • Komparovací jednotka s funkcí auto-reload (clear on compare match) • Frekvenční generátor
Čítače/časovače – zdroj hodin • Čítač/časovač 0 a 1 • Interní hodiny – společný předdělič pozor na reset • Externí hodiny – synchronizované s interními každá půlperioda musí být delší než jedna perioda systémových hodin fextclk < fclk_I/O / 2
Čítače/časovače – zdroj hodin • Čítač/časovač 2
Čítač/časovač 0 – registry • TCNT0 – stav čítače (8 bitů) • TCCR0 – řídící registr • Bit 2:0 (CS0) – zdroj hodin • TIMSK – maska přerušení • Bit 0 (TOIE0) – povolení přerušení od časovače/čítače 0 • TIFR – příznaky událostí • Bit0 (TOV0) – příznak přetečení časovače/čítače 0 • SFIOR • Bit 0 (PSR10) – reset předděliče pro časovače/čítače 0,1
Čítač/časovač 2 – registry • TCNT2 – stav čítače (8 bitů) • TOCR2 – registr komparátoru (8 bitů) • TCCR2 – řídící registr • Bit 2:0 (CS2) – zdroj hodin • Bit 3,6 (WGM2) – režim práce • Bit 5:4 (COM2) – režim výstupu OC2 • Bit 7 (FOC2) – v PWM režimech musí být 0, je-li nastaven připojí výstup komparátoru na OC2 a režim OC2 je určen hodnotou COM2 • TIMSK – maska přerušení • Bit 6 (TOIE2) – povolení přerušení od přetečení • Bit 7 (OCIE2) – povolení přerušení od komparátoru • TIFR – příznaky událostí • Bit 6 (TOV2) – příznak přetečení • Bit 7 (OCF2) – příznak shody od komparátoru • ASSR – příznaky asynchronních hodin • Bit 3 (AS2) – výběr asynchronních hodin (2. krystal), pozměně může být obsah TCNT2, OCR2 a TCCR2 poškozen • Bit 2:0 – busy příznaky
Čítač/časovač 1 • Přístup k 16-bitovým registrům • Pomocný registr pro významnější bajt se načte/zapíše při přístupu k méně významné části slova • Čtení – sekvence: nižší a pak vyšší • Zápis – sekvence: vyšší a pak nižší • Pracovní režimy – WGM13:0 • Normal (0) • Pouze vzestupné čítání, TCNT1 se po dosažení $FFFF přetočí do $0000 a nastaví se TOV1 • Clear Timer on Compare Match (4 a 12) • TCNT1 se vynuluje po dosažení hodnoty nastavené v OCR1A (WGM13:0=4) resp. v ICR1 (WGM13:0=12) • Po dosažení zvolené hodnoty se nastaví TOV1 • Fast PWM • Phase Correct PWM • Phase and Frequency Correct PWM podrobný výklad bude v přednášcevěnované PWM řízení
Čítač/časovač 1 – registry • TCNT1L, TCNT1H – stav čítače (16 bitů) • OCRA1AL, OCRA1AH – registr komparátoru A (16 bitů) • OCRA1BL, OCRA1BH – registr komparátoru B (16 bitů) • ICR1L, ICR1H – registr záchytné jednotky (16 bitů) • TIMSK – maska přerušení • Bit 2 (TOIE1) – povolení přerušení od přetečení • Bit 3 (OCIE1B) – povolení přerušení od komparátoru B • Bit 4 (OCIE1A) – povolení přerušení od komparátoru A • Bit 5 (TICIE1) – povolení přerušení od zachytávací jednotky • TIFR – příznaky událostí • Bit 2 (TOV1) – příznak přetečení • Bit 3 (OCF1B) – příznak shody od komparátoru B • Bit 4 (OCF1A) – příznak shody od komparátoru A • Bit 5 (ICF1) – příznak události od zachytávací jednotky
Čítač/časovač 1 – řídící registry • TCCR1A – řídící registr A • Bit 1:0 (WGM1[1:0]) – režim čítače • Bit 2 (FOC1B) – v PWM režimech musí být 0, 1 připojí výstupu komparátoru na OC1B • Bit 3 (FOC1A) – v PWM režimech musí být 0, 1 připojí výstupu komparátoru na OC1A • Bit 5:4 (COM1B) – režim chování výstupu OC1B • Bit 7:6 (COM1A) – režim chování výstupu OC1A • TCCR1B – řídící registr B • Bit 2:0 (CS1) – výběr zdroje hodinového signálu, viz časovač/čítač 0 • Bit 4:3 (WGM1[3:2]) – režim časovače • Bit 6 (ICES1) – hranová citlivost zachytávací jednotky (0…sestupná, 1…vzestupná) • Bit7 (ICNC1) – zapnutí potlačování zákmitů na vstupu zachytávací jednotky