Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Podobne dokumenty
Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

MIKROPROCESORY architektura i programowanie

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

MIKROPROCESORY architektura i programowanie

Wbudowane układy peryferyjne cz. 2 Wykład 8

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Programowanie mikrokontrolerów. 5 grudnia 2007

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Przerwanie. Źródła przerwań

Układy czasowe / liczniki (timers/counters)

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Pracownia elektryczno-elektroniczna klasa IV

Instytut Teleinformatyki

Podstawy Techniki Mikroprocesorowej Laboratorium

MIKROKONTROLERY I MIKROPROCESORY

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Sterowniki Urządzeń Mechatronicznych laboratorium. Ćw. 3: Timer v1.0

AGH Akademia Górniczo- Hutnicza w Krakowie Katedra Elektroniki WIET

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

SYSTEM PRZERWAŃ ATmega 32

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Dokumentacja mikrokontrolera Atmega16 firmy Atmel

Przerwania w architekturze mikrokontrolera X51

Instytut Teleinformatyki

Układy czasowo-licznikowe w systemach mikroprocesorowych

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

równoległe (w wersji 4-, 8- i 16-bitowej). Same wyświetlacze ze względu na budowę i możliwości możemy podzielić na dwie grupy:

Technika mikroprocesorowa I Wykład 4

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Instytut Teleinformatyki

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Systemy wbudowane Mikrokontrolery

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED

Metody obsługi zdarzeń

Hardware mikrokontrolera X51

Politechnika Białostocka

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Przerwania, polling, timery - wykład 9

CPU architektura i rejestry

LABORATORIUM. TIMERY w mikrokontrolerach MCS 51

KAŻDY Z 8-MIO BITOWYCH PORTÓW MIKROKONTROLERÓW RODZINY 51 MA JEDYNIE REJESTR PORTU: P0, P1, P2, P3, PEŁNIĄ ONE ROLĘ REJESTRÓW DANYCH WE/WY.

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Mikroprocesory i Mikrosterowniki

Stanowisko laboratoryjne dla mikrokontrolera Atmega16 firmy Atmel

Układy czasowo-licznikowe w systemach mikroprocesorowych

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

architektura komputerów w 1 1

Ćwiczenie 30. Techniki mikroprocesorowe Programowanie w języku Asembler mikrokontrolerów rodziny '51

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

TECHNIKA MIKROPROCESOROWA

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Start Bity Bit Stop 1 Bit Par Rys. 1

architektura komputerów w 1 1

Praktyka Techniki Mikroprocesorowej. Mikrokontroler ADuC834

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

długo. W tym celu w czasie przeczesywania if (key) {

ŚRODOWISKO PROTOTYPOWANIA SP AVR

Instytut Teleinformatyki

Programowanie mikrokontrolerów. 3 stycznia 2008

Zerowanie mikroprocesora

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Wstęp. Opis ATMEGA128 MINI MODUŁ VE-APS-1406

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Akademia Górniczo-Hutnicza w Krakowie Katedra Elektroniki

Komunikacja w mikrokontrolerach Laboratorium

Uproszczony schemat blokowy konwertera analogowo-cyfrowego przedstawiony został na rys.1.

Mikroprocesory i Mikrosterowniki

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Wykład 3. Przegląd mikrokontrolerów 8-bit: STM8

Programowanie w językach asemblera i C

Obsługa wyjść PWM w mikrokontrolerach Atmega16-32

Wstęp Architektura... 13

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

SYSTEM PRZERWA Ń MCS 51

Politechnika Warszawska

Informacje ogólne o układzie 8051.

Mikrokontroler Intel dr inż. Wiesław Madej

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Liczniki, rejestry lab. 08 Mikrokontrolery WSTĘP

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

LABORATORIUM Komputery przemysłowe i systemy wbudowane

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Ćwiczenie 6 Komunikacja z komputerem (łącze RS232)

MIKROPROCESORY architektura i programowanie

Mikrokontrolery AVR ATmega

Przykład oprogramowania protokołu komunikacyjnego dla łącza równoległego pomiędzy procesorem master i wieloma procesorami slave

Transkrypt:

Liczniki/czasomierze (T/C) należą do standardowego składu wewnętrznych układów peryferyjnych (WEP) mikrokontrolerów. Często różnią się znacznie pod względem funkcji, które rozszerzają proste zliczanie sygnałów. Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR. ATMega128 to 8-bitowy następca wcześniejszych konstrukcji wywodzących się z procesorów RISC o (zmodyfikowanej) architekturze Harwardzkiej utworzonych w 1996 r. przez dwóch norweskich studentów. Alf-Egil Bogen oraz Vegard Wollan zaprojektowali i wdrożyli RISC procesor, który był ich odpowiedzią na dominujące układy 8051. Odniesienia były ważne do tego stopnia, że pierwszy mikrokontroler AVR w obudowie 40-nóżkowej miał identyczne funkcje wszystkich pinów jak odpowiednik 8051 mógł być wlutowany na jego miejsce. PODAJE SIĘ, ŻE POMIĘDZY 1997 A 2003 ATMEL, KTÓRY PRZEJĄŁ PRODUKCJĘ AVR, ROZPROWADZIŁ 500 MILIONÓW TYCH MIKROKONTROLERÓW. Czasomierze zliczają sygnały będące zwykle związane z taktowaniem mikrokontrolerów, więc temat jest okazją do uwag o gospodarce czasowej. 1/ 17

ADuC812 (CISC 51) T0 / T1 tryb 0 T0 / T1 tryb 1 T0 / T1 tryb 3 T0 / T1 tryb 2 2/ 11

ADuC812 (CISC 51) REJESTRY SPECJALNEGO PRZEZNACZENIA (Special Function Registers) : Rejestr TCON przeznaczony (wraz z rejestrem TMOD, opisanym dalej) do sterowania pracą układów licznikowych T0 i T1. TCON ma adres 088H i jest zatem dostępny bitowo. TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 7 6 5 4 3 2 1 0 TF1, TF0 WSKAŹNIKI PRZERWANIA, USTAWIANE I ZEROWANE SPRZĘTOWO, TR1, TR0 BITy WŁĄCZAJĄCE I WYŁĄCZAJĄCE UKŁADY LICZNIKOWE (1 i 0, odpowiednio). Np.: komenda SETB TR1 ; spowoduje uruchomienie licznika T1 (nie zeruje!) IE1, IE0 BITY ZEZWOLEŃ NA PRZERWANIA ZEWNĘTRZNE, IT1, IT0 STEROWANIE PRZERWANIAMI ZEWN.: 0 PRZERWANIA OD NISKIEGO POZIOMU, 1 PRZERWANIE OD OPADAJĄCEGO ZBOCZA Wiele mikrokontrolerów posiada więcej niż dwa wewnętrzne układy licznikowe. Sterowanie pracą tych dodatkowych liczników odbywa się poprzez użycie dodatkowych SFR. Na przykład mikrokontrolery C52, CL52, C55... wyposażone są w trzy 16-bitowe układy licznikowe. Dodatkowy rejestr T2 ma odpowiadające mu rejestry specjalne, T2CON (0C8H) (T2MOD 0C9H), RCAP2L, RCAP2H, T2L, T2H, które służą do sterowania jego pracy, nieco różniącej się od pracy liczników T0 i T1. 3/ 11

ADuC812 (CISC 51) REJESTRY SPECJALNEGO PRZEZNACZENIA (Special Function Registers) : Rejestr TMOD, o adresie 089H, używany jest dla ustawienia pracy układu albo jako licznika cykli maszynowych albo licznika sygnałów zewnętrznych i wybrania trybu pracy, GATE C/T M1 M0 GATE C/T M1 M0 7 6 5 4 3 2 1 0 GATE (TMOD.7, lub TMOD.3) BIT STERUJĄCY. C/T - M1 0 STEROWANIE WYŁĄCZNIE PRZEZ TR1, 1- ZLICZANIE, GDY /INT1 I TR1=1 0 ZLICZANIE CYKLI MASZYNOWYCH ( CZASOMIERZ ) 1 - ZLICZANIE IMPULSÓW ZEWNĘTRZNYCH ( LICZNIK ) M0 0 0 TRYB 0, układ pracuje jako 13-bitowy czasomierz/licznik 0 1 TRYB 1, układ pracuje jako 16-bitowy czasomierz/licznik 1 0 TRYB 2, układ pracuje jako 8-bitowy licznik z automatycznym przeładowaniem 1 1 TRYB3, działania T0 i T1 różnią się, w tym trybie. T0 wykorzystuje swoje liczniki TL0 i TH0 jako niezależne, 8-mio bitowe liczniki. TLO działa podobnie jak licznik w trybie 0, a THO jako czasomierz, który startuje i zatrzymuje bit TR1 i którego przepełnienie sygnalizuje TF1. Przez to działanie licznika T1 jest zubożone. 4/ 17

ADuC812 (CISC 51) coś z życia: ;. konfiguracja MOV TCON,#01H ;set IT0, IT1 for "falling edge" mode SETB PX0 ;INT0 - highest priority MOV SCON,#10010000B ;SERIAL IN MODE 2, READ ENABLE MOV TMOD,#00010001B ;Timer0 - mod1 (16BIT), TIMER1 - mod1 (16 bit) SETB EA ;interrupts allowed SETB EX0 ;from external 0 (always ON for AddressStrobe) SETB ET0 ;from TIMER0 SETB ET1 ; TIMER1 SETB ES ; serial port ;. tnul: PUSH ACC PUSH PSW MOV A,LASTON JZ tnu1 DEC LASTON tnu1: POP PSW POP ACC RETI Obsługa przerwań tone: PUSH ACC PUSH PSW MOV A,ASKED JZ tonf DEC ASKED SJMP tonfi tonf: CLR TR1 tonfi: POP PSW POP ACC RETI 5/ 17

ADuC812 (CISC 51), AVR WEWNĘTRZNE UKŁADY PERYFERYJNE MIKROKONTROLERÓW WYMAGAJĄCE TAKTOWANIA KORZYSTAJĄ NAJCZĘŚCIEJ WPROST LUB POŚREDNIO ( NP. PRZEZ DZIELNIKI) Z TAKTOWANIA CPU. CZĘSTO TEŻ TAKTOWANIE CPU MOŻE BYĆ NARZUCONE PRZEZ URZĄDZENIE PERYFERYJNE (NP.: MAGICZNY KWARC 11.0592 MHz DLA RS232) 6/ 17

ADuC812 (CISC 51) AVR 7/ 17

40-TO NÓŻKOWA OBUDOWA ATMEGA32 NIE JEST JUŻ WIERNĄ KOPIĄ 8051. MAPA I ZNACZENIE FUNKCJI WYPROWADZEŃ (CZĘSTO PODWÓJNYCH LUB POTRÓJNYCH) JEST WAŻNYM ŹRÓDŁEM INFORMACJI O DANYM MIKROKONTROLERZE Z RYSUNKU OBOK WIDAĆ, ŻE ATMega32 MA CZTERY 8-BITOWE PORTY PA, PB, PC i PD 8-MIO KANAŁOWY PRZETWORNIK ADC INTERFEJS SZEREGOWY I2C INTERFEJS SZEREGOWY SPI INTERFEJS SZEREGOWY UART DWA TIMER/COUNTERs 0 i 1 DWA WEJŚCIA ANALOGOWE DWIE LINIE PRZERWAŃ ZEWNĘTRZNYCH 8/ 17

MAPA WYPROWADZEŃ µ-kontrolera ATMega128 W OBUDOWIE DO MONTAŻU POWIERZCHNIOWEGO PRZYNOSI PODOBNE INFORMACJE 9/ 17

RZUT OKA NA SCHEMAT BLOKOWY ATMega128 10/ 17

8-mio bitowy licznik/czasomierz ATMega 128 przykład ewolucji WUP (wewnętrznych układów peryferyjnych) 11/ 17

I JEGO 16-BITOWA ODMIANA 12/ 17

Tryby pracy 8-bitowego Licznika/Czasomierza ATMega 128: - normalny (WGM01:0 = 0) - CTC ( Clear Timer on Compare) zeruj przy zrównaniu (WGM01:0 = 2) - tryb szybkiej modulacji szerokości impulsu (Fast PWM mode) (WGM01:0 = 3) - tryb wysokiej rozdzielczości fazowej (WGM01:0 = 1) - praca asynchroniczna ZERUJ rejestr TCNT0 GDY ZRÓWNA SIĘ Z rejestrem OC0 13/ 17

c.d. przeglądu trybów pracy 8-mio bitowego Licznika/Czasomierza ATMega 128 (architektura AVR) TRYB SZYBKIEJ MODULACJI SZEROKOŚCI IMPULSU ( NA WYJŚCIU OC0 ) 14/ 17

Tryb pracy Czasomierza/Licznika z wysoką rozdzielczością (precyzją) kontroli fazy przebiegu fali prostokątnej. Jak się to robi? Jak zwykle: konfigurując właściwe rejestry! 15/ 17

REJESTRY STERUJĄCE PRACĄ 8-MIO BITOWEGO LICZNIKA CZASOMIERZA DLA ATMega128: TCCR0, TCNT0, OCR0, ASSR, TIMSK, TIFR, SFIOR TCCR0: FOC0 7 W WGM00 6 R/W COM01 5 R/W COM00 4 R/W WGM01 3 R/W CS02 2 R/W CS01 1 R/W CS00 0 R/W FOC0 Force Output Compare bit aktywny jedynie dla trybów NORMAL i CTC. Działa jako strobe, wymusza compare match WGM01:WGM00 para bitów sterująca trybem pracy C0/T0 COM01:COM00 - para bitów sterująca wyjściem OC0 ( non-pwm mode): 00 OC0 odłączone, zwykła operacja linii portu 01 OC0 zmienia stan przy compare match 10 OC0 zerowane przy compare match 11 OC0 ustawiane przy compare match ( Fast PWM mode): 00 OC0 odłączone, zwykła operacja linii portu 01 nieużywane ( reserved 10 OC0 zerowane przy compare match, a ustawiane dla TOP 11 OC0 ustawiane przy compare match, a zerowane dla TOP TOP zależnie odtrybu pracy może oznaczać 0xFF lub wartość ustawioną w OCR0 ( Phase Correct PWM mode): 00 OC0 odłączone, zwykła operacja linii portu 01 nieużywane ( reserved 10 OC0 zerowane przy compare match UP, a ustawiane dla DOWN count 11 OC0 ustawiane przy compare match, UP a zerowane dla DOWN 16/ 17

REJESTRY STERUJĄCE PRACĄ 8-MIO BITOWEGO LICZNIKA CZASOMIERZA DLA ATMega128: TCCR0, TCNT0, OCR0, ASSR, TIMSK, TIFR, SFIOR TIMSK: OCIE2 7 R/W T0IE0 6 R/W TICIE1 5 R/W OCIE1A 4 R/W OCIE1B 3 R/W TOIE1 2 R/W OCIE0 1 R/W TOIE0 0 R/W OCIE0 - Bit 1 Timer/Counter Output Compare Match interrupt enable TOIE0 - Bit 0 Timer/Counter Overflow interrupt enable TIFR: OCF2 7 R/W T0V2 6 R/W ICF1 5 R/W OCF1A 4 R/W OCF1B 3 R/W TOV1 2 R/W OCF0 1 R/W TOV0 0 R/W OCF0 - Bit 1 Output Compare Flag 0 (zerowana sprzętowo, ale też przez wpisanie w nią jedynki!!!) TOV0 - Bit 0 Timer/Counter Overflow Flag. (j.w.) SFIOR: TSM 7 R/W - 6 R - 5 R - 4 R ACME 3 R/W PUD 2 R/W PSR0 1 R/W PSR321 0 R/W TSM - Bit 7 Timer/Counter synchronization mode (gdy 0 to PSR0 zerowany sprzętowo i liczniki synchr.) PSR0 - Bit 1 Prescaler Reset Timer/Counter0 (gdy 1, to prescaler zostanie resetowany) 17/17