Układy czasowe / liczniki (timers/counters)

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

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

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

Układy czasowo-licznikowe w systemach mikroprocesorowych

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

Podstawy Techniki Mikroprocesorowej Laboratorium

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Układy czasowo-licznikowe w systemach mikroprocesorowych

Programowanie mikrokontrolerów. 5 grudnia 2007

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

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

Przerwanie. Źródła przerwań

Hardware mikrokontrolera X51

SYSTEM PRZERWAŃ ATmega 32

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

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

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

Dokumentacja mikrokontrolera Atmega16 firmy Atmel

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

MIKROPROCESORY architektura i programowanie

Przetworniki analogowo-cyfrowe (A/C)

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

Zastosowania mikrokontrolerów w przemyśle

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Zapoznanie się z podstawowymi strukturami liczników asynchronicznych szeregowych modulo N, zliczających w przód i w tył oraz zasadą ich działania.

Politechnika Białostocka

LICZNIKI PODZIAŁ I PARAMETRY

LICZNIKI Liczniki scalone serii 749x

Metody obsługi zdarzeń

Programowany układ czasowy

Programowany układ czasowy APSC

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Programowanie mikrokontrolerów. 3 stycznia 2008

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

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

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:

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Licznik rewersyjny MD100 rev. 2.48

f we DZIELNIKI I PODZIELNIKI CZĘSTOTLIWOŚCI Dzielnik częstotliwości: układ dający impuls na wyjściu co P impulsów na wejściu

Programowanie mikrokontrolerów. 8 listopada 2007

1. Poznanie właściwości i zasady działania rejestrów przesuwnych. 2. Poznanie właściwości i zasady działania liczników pierścieniowych.

WFiIS CEL ĆWICZENIA WSTĘP TEORETYCZNY

Ćw. 7: Układy sekwencyjne

2. Architektura mikrokontrolerów PIC16F8x... 13

Programowanie w językach asemblera i C

Instrukcja do ćwiczenia : Matryca komutacyjna

Wstęp Architektura... 13

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Wbudowane układy peryferyjne cz. 1 Wykład 7

PRZERZUTNIKI: 1. Należą do grupy bloków sekwencyjnych, 2. podstawowe układy pamiętające

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

MIKROPROCESORY architektura i programowanie

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

Przerwania, polling, timery - wykład 9

(57) Tester dynamiczny współpracujący z jednej strony (13) B1 (12) OPIS PATENTOWY (19) PL (11) PL B1. (54) Tester dynamiczny

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1

Stanowisko laboratoryjne dla mikrokontrolera Atmega16 firmy Atmel

Politechnika Białostocka

Instytut Teleinformatyki

był w momencie wystąpienia zewnętrznego zdarzenia. Jest bardzo przydatna przy pomiarach częstotliwości. Pracę timera Timer1 kontrolują następujące

Instytut Teleinformatyki

Podstawy Techniki Cyfrowej Liczniki scalone

Temat: Projektowanie i badanie liczników synchronicznych i asynchronicznych. Wstęp:

Komunikacja w mikrokontrolerach Laboratorium

Przerzutnik ma pewną liczbę wejść i z reguły dwa wyjścia.

Cyfrowe Elementy Automatyki. Bramki logiczne, przerzutniki, liczniki, sterowanie wyświetlaczem

dwójkę liczącą Licznikiem Podział liczników:

Wstęp do Techniki Cyfrowej... Synchroniczne układy sekwencyjne

1. Porty wejścia wyjścia (I/O)

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

Układ transmisji szeregowej AVR

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

Liniowe układy scalone. Elementy miernictwa cyfrowego

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

WPROWADZENIE Mikrosterownik mikrokontrolery

Dokumentacja Licznika PLI-2

Inne układy peryferyjne AVR

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

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Wstęp działanie i budowa nadajnika

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Język FBD w systemie Concept

LABORATORIUM PODSTAWY ELEKTRONIKI REJESTRY

Podstawowe elementy układów cyfrowych układy sekwencyjne Rafał Walkowiak Wersja

Podstawowe elementy układów cyfrowych układy sekwencyjne. Rafał Walkowiak

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

Statyczne i dynamiczne badanie przerzutników - ćwiczenie 2

Mikroprocesory i kontrolery 1. Materiały do wykładu. Tom II MIKROKONTROLERY. Mikroprocesory i kontrolery 2. dr hab. inż.

Mikrokontroler w roli generatora PWM. Wpisany przez Administrator piątek, 06 lipca :51 -

Plan wykładu. Architektura systemów komputerowych. Cezary Bolek

Instytut Teleinformatyki

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Transkrypt:

Układy czasowe / liczniki (timers/counters) Współpraca MK z otoczeniem w czasie rzeczywistym wymaga odliczania czasu, zliczania zdarzeń lub generowania złożonych sekwencji binarnych. Funkcje te realizowane są z dokładnością oscylatora kwarcowego MK przez specjalizowane bloki nazywane licznikami (counters) lub układami czasowymi (timers). ATmega16 ma dwa liczniki 8-bitowe i jeden licznik 16-bitowy. Najprostsza struktura obejmuje rejestr przesuwny o określonej długości oraz rejestr pomocniczy zawierający np. bity przepełnienia, ustawiające tryb pracy, bit startu zliczania licznika itd. Rejestr przesuwny zliczający liczbę zmian poziomów doprowadzonych do niego sygnałów jest dostępny z poziomu programu użytkownika poprzez adres pamięci danych. Podstawowe konfiguracje pracy: właściwy układ czasowy (timer) taktowanie wewnętrznym sygnałem zegarowym rozprowadzanym przez układ dystrybucji sygnałów zegarowych. Timery wykorzystywane są w programie użytkownika jako wzorce czasu. W celu generowania wzorców czasu o różnej długości wewnętrzny sygnał zegarowy, przed doprowadzeniem do układu czasowego, przechodzi przez programowalny dzielnik częstotliwości (tzw. preskaler) licznik (counter) taktowanie zewnętrznymi sygnałami doprowadzanymi poprzez linie wejściowe portów i wykorzystywane w programie użytkownika np. jako liczniki zmian poziomów sygnałów zewnętrznych. Liczniki mogą zliczać impulsy w górę, tzn. inkrementować lub w dół czyli dekrementować. W praktyce MK są wyposażone w bardziej rozbudowane układy licznikowe.

Funkcje liczników: określenia (mierzenia) odstępów czasu między zdarzeniami zachodzącymi na zewnątrz MK, sygnalizowanymi przez impulsy elektryczne doprowadzone do pinów MK. Funkcja ta bywa nazywana rejestracją zdarzeń (input event capture), generowania impulsów (sekwencji impulsów) w odstępach czasu o zaprogramowanej wartości (output compare) i o zaprogramowanej długości trwania, generowania sygnałów okresowych o określonej częstotliwości i zadanym współczynniku wypełnienia (PWM puls width modulation), sterowania szybkością transmisji w portach szeregowych, zarówno w trybie synchronicznym, jak i asynchronicznym (baut rate generator), realizacja zadań licznika nadzorcy watchdoga. Rejestrator zdarzeń Jego zadaniem jest określenie czasu wystąpienia zdarzenia zewnętrznego sygnalizowanego przez impuls elektryczny podany na wejście. Czas ten jest mierzony w sposób względny, tzn. w stosunku do chwili zezwolenia na rozpoczęcie zliczenia w n-bitowym liczniku sterowanym impulsami zegara wewnętrznego. Przed uruchomieniem zliczania program zeruje licznik i określa zbocze sygnału zewnętrznego, które ma spowodować rejestrację zdarzenia. Po wystąpieniu tego zbocza zawartość licznika jest przepisywana do rejestru zatrzaskowego rejestratora. Układ może równocześnie wygenerować przerwanie informujące JC o zarejestrowaniu zdarzenia, jeśli wcześniej ustawiono zezwolenie przerwania. W tym układzie odczyt rejestru zatrzaskowego musi nastąpić przed wystąpieniem kolejnego zdarzenia, ponieważ pracujący cały czas licznik przy następnym sygnale zewnętrznym zmieni zawartość rejestru zatrzaskowego. Rejestrując czas wystąpienia kolejnych zboczy można łatwo określić: częstotliwość sygnału okresowego lub szerokość impulsów. W pierwszym przypadku rejestruje się dwa następujące po sobie zbocza o tej samej polaryzacji, natomiast w drugim dwa zbocza o różnej polaryzacji. Szczególne zastosowanie tej konfiguracji polega na generowaniu impulsów o programowalnym czasie opóźnienia w stosunku do zewnętrznych impulsów odniesienia. W tym przypadku układ pracuje w mieszanym trybie rejestrator generator. Po zarejestrowaniu zdarzenia licznik odmierza zaprogramowaną liczbę impulsów i generuje sygnał wyjściowy.

Programowany generator impulsów JC wpisuje do rejestru komparatora liczbę określającą chwilę wygenerowania impulsu, po czym uruchamia licznik. Po upływie zaprogramowanej liczby cykli zegara, komparator wykrywa zrównanie się zawartości licznika i rejestru, po czym generuje sygnał wyjściowy. Jednocześnie licznik może wysyłać do JC przerwanie, o ile zostało odblokowane. Większość liczników/generatorów wytwarza impulsy o zadanej polaryzacji. Ponadto po wygenerowaniu impulsu przez układ licznika JC może zlecić nowy cykl generacji z innym początkowym ustawieniem rejestru komparatora. W ten sposób MK jest w stanie generować przebieg o dowolnie ustalanych czasach trwania kolejnych impulsów. Wadą przedstawionej prostej konfiguracji generatora jest to, że przy generacji kolejnych impulsów powstaje błąd wynikający z czasu działania JC (zwykle dwa okresy sygnału zegarowego), ponieważ JC musi po każdej operacji wpisywać nową zawartość do rejestru komparatora, po czym uruchomić licznik. W celu wyeliminowania tej wady stosuje się ulepszone układy liczników z podwójnymi rejestrami i komparatorami, nazywane licznikami z buforowaniem (buffered output compares). W tych układach aktualnie zaprogramowana wartość opóźnienia jest przechowywana w rejestrze jednego z kanałów, natomiast wartość kolejnego opóźnienia w rejestrze drugiego kanału. Blok licznika autonomicznie steruje układem selekcji kanału. W najprostszym przypadku kanały pracują naprzemiennie. Należy pamiętać aby nie wpisywać danych do rejestru aktualnie pracującego kanału.

PWM W konfiguracji PWM licznik pracuje jako generator fali prostokątnej o programowanym współczynniku wypełnienia. Zasada jego pracy jest następująca. Jeśli zawartość licznika osiągnie zaprogramowaną liczbę N określającą okres impulsów, komparator ustawia przerzutnik wyjściowy. Sygnał przepełnienia licznika określa zatem początek okresu generowanego przebiegu. W czasie zliczania kolejnych impulsów zegara zawartość licznika jest porównywana z zawartością rejestru szerokości impulsów, a po zrównaniu się z nią generowany jest sygnał =, który zeruje przerzutnik wyjściowy. Tym samym impuls wytwarzany przez PWM kończy się. Rozdzielczość wyjściowa układu PWM jest określona przez częstotliwość sygnału zegara i długość słowa licznika N. Rejestr sterujący PWM zawiera dodatkowo wydzielone bity, które pozwalają na wyjściu uzyskać sygnał stały na poziomie 0 lub 1.

Licznik T0 Główne właściwości oraz możliwości zastosowań licznika 0: Licznik jednokanałowy. Automatyczne kasowanie i restart timera w trybie porównania. Generator częstotliwości. Generator przebiegu PWM. Licznik zdarzeń zewnętrznych. 10-bitowy programowalny preskaler. Źródło przerwań (przepełnienie, zrównanie). Licznik T0 obsługują 3 rejestry (8-bitowe): 1. TCNT0 rejestr, w którym dokonuje się zliczanie. 2. TCCR0 rejestr konfiguracyjny tryb pracy, źródło impulsów wejściowych, tryb pracy wyjścia OC0. 3. OCR0 rejestr porównujący Schemat blokowy licznika T0

Schemat blokowy preskalera

Tryb normalny W trybie zerowym licznik zlicza w górę. W momencie przejścia z 255 na 0 (11111111->00000000) układ kontroli ustawia bit TOV0 w rejestrze flag przerwań liczników TIFR zgłaszający przepełnienie licznika T0. Jeżeli było zezwolenie na przerwanie od T0 (bit TOIE0 w rejestrze maskowania przerwań liczników TIMSK), mikrokontroler generuje przerwanie, w którym można ustawić wartość początkową licznika TCNT0. Tryb CTC Generator przebiegu prostokątnego o zmiennej częstotliwości i stałym współczynniku wypełnienia 50%. Gdy stan licznika TCNT0 zrówna się z OCR0 licznik (TCNT0) zostaje wyzerowany i może być generowane przerwanie (tim0_comp). Wyjście licznika OC0 to końcówka PB3. Konfiguracja w TCCR0

Szybki PWM PWM generator sygnału o stałej częstotliwość i zmiennym współczynniku wypełnienia

PWM z korekcją fazy

Licznik T2 Licznik T2 jest identyczny z licznikiem T0 z małymi wyjątkami... T2 nie może zliczać impulsów zewnętrznych Rejestry: Tryb asynchroniczny T2 UB=1 oznacza, że dany rejestr jest zajęty (update busy)

Przykłady konfiguracji licznika T0 ldi r16, 0b00000101 ; tryb normal, /1024 out tccr0, r16 in r16, timsk ori r16, 0b00000001 ; włącz przerwania od przepełnienia T0 out timsk, r16 sei tim0_ovf: push r16 ; zapamiętaj r16 na stosie in r16, sreg push r16 ; zapamiętaj SREG na stosie ldi r16, 256-125 out tcnt0, r16 ;tu wpisujemy nasz program obsługi przerwania pop r16 out sreg,r16 pop r16 reti ldi r16, 0b01101100 ; tryb Fast PWM, /256 out tccr0, r16 ldi r16, 128 out ocr0, r16 sbi portb, 3 ;sei ldi r16,0b00011100 ; tryb CTC, /256 out tccr0,r16 ldi r16,128 out ocr0,r16 sbi portb,3 ;sei

Timer 1 Główne właściwości oraz możliwości zastosowań licznika 1: Prawdziwa 16-bitowa konstrukcja (możliwy np. 16-bitowy PWM). Niezależne dwie jednostki Output Compare. Jednostka Input Capture (rejestracja zdarzeń) z układem redukcji szumów. Automatyczne kasowanie i restart timera w trybie porównywania. Generator częstotliwości. Generator przebiegów PWM (w tym z korekcją fazy i częstotliwości) Licznik zdarzeń zewnętrznych. 10-bitowy programowalny preskaler. 4 niezależne źródła przerwań. Schemat blokowy licznika T1

Bloki funkcjonalne licznika Timer/Counter1: Programowalny preskaler, który zapewnia podział wewnętrznego sygnału zegarowego przez 8, 64, 256 lub 1024 oraz synchronizuje zewnętrzny sygnał podawany na wejście T1 z wewnętrznym sygnałem zegarowym JC Blok licznika składający się z bloku sterującego, 16-bitowego rejestru TCNT1 oraz stowarzyszonej z nim flagi przepełnienia TOV1 umożliwiającej generację przerwania. Blok rejestratora zdarzeń (Input Capture Unit) składający się z toru zbudowanego z pinu ICP1, multipleksera wybierającego źródło sygnału przechwytywanego, układu redukcji szumów (Noise Canceler), układu wyboru aktywnego zbocza (Edge Detect), które spowoduje zapisanie bieżącej wartości licznika TCNT1 do 16-bitowego rejestru ICR1 i ustawienie flagi przerwania ICF1. Blok Output Compare składający się z dwóch torów A i B. W skład każdego toru wchodzi 16-bitowy rejestr OCR1A/B wraz z komparatorem porównującym zawartość tego rejestru z zawartością licznika, układ generacji sygnału wyjściowego (Waveform Generation) i flaga przerwania OC1A/B oraz pin wyjściowy OC1A/B. Dwa rejestry konfiguracyjne TCCR1A i TCCR1B, rejestr masek czterech przerwań licznika TIMSK oraz rejestr przerwań TIFR. Wyprowadzenia T1 dla PDIP 40

Rejestry 16 bitowe UWAGA Wpisując dane do rejestru 16-bitowego, najpierw zapisujemy bajt starszy, a potem młodszy: ldi r16, high(1000) ;$03 out tcnt1h, r16 ldi r16, low(1000) ;$E8 out tcnt1l, r16 Przy odczycie, najpierw odczytujemy młodszy, a potem starszy bajt rejestru. in in r16, tcnt1l r17, tcnt1h

Tryby pracy 16-bitowy counter/timer sterowany bitami CS10-CS12 rejestru TCCR1B. Przy pomocy tych bitów wybiera się tryb czasomierza (timer) z odpowiednio ustawionym preskalerem lub licznika (counter) z możliwością wyboru aktywnego zbocza. Do zliczania służy para rejestrów TCNT1H i TCNT1L stanowiąca 16-bitowy licznik TCNT1. W zależności od wybranego trybu pracy zawartość licznika może być zerowana, inkrementowana lub dekrementowana przez impuls zegarowy. Flaga przepełnienia TOV1 może być ustawiona, gdy licznik osiągnie maksymalną lub minimalną wartość (zero). Tryb rejestratora zdarzeń (Input Capture). W tym trybie zmiana poziomu napięcia (zdarzenie) na pinie wejściowym ICP1 lub na wyjściu ACO komparatora analogowego, jeżeli jest zgodna ze zmianą wykrywaną (ustawioną jako aktywna) przez Edge Detector, powoduje przepisanie aktualnej wartości licznika TCNT1 do 16-bitowego rejestru ICR1 i ustawienie flagi ICF1, i jeśli maska przerwania TICIE1 jest ustawiona generację przerwania. Układ Noise Canceler służy do redukcji zakłóceń pojawiających się na jego wejściu. Gdy jest aktywowany, sygnał wejściowy jest opóźniony o cztery impulsy zegarowe zegara systemowego.

Tryb Output Compare. 16-bitowy komparator cały czas porównuje zawartość pracującego licznika TCNT1 z wpisaną wartością do 16-bitowego rejestru OCR1A/B. Jeżeli wartości w TCNT1 i w OCR1A/B zrównają się to 16-bitowy komparator sygnalizuje warunek zrównania się (generuje sygnał match ). Flaga przerwania OCF1A/B ustawiana jest w następnym cyklu zegarowym licznika, i jeśli ustawiona jest maska OCIE1A/B, jest generowane przerwanie. Układ Waveform Generator korzysta z sygnału match do generacji przebiegów na wyjściu OC1A/B. Tryb generacji przebiegów na wyjściu OC1A/B zależy od ustawienia bitów WGM13:0 i COM1A/B1:0. Za pomocą wymienionych bitów można wybrać następujące tryby pracy licznika: Compare Output Mode and Waveform Generation. Normal Mode. Clear Timer on Compare Match (CTC) Mode. Fast PWM Mode. Phase Correct PWM Mode. Phase and Frequency Correct PWM Mode.