Procesory osadzone ETD I 2 C, I 2 S, Timer, PWM, ARM W

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

Hardware mikrokontrolera X51

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

Układy czasowo-licznikowe w systemach mikroprocesorowych

Procesory osadzone ETD 7211 W

Wykład 5. Architektura ARM

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Architektura komputerów

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Szkolenia specjalistyczne

Wykład 6. Mikrokontrolery z rdzeniem ARM

Budowa Mikrokomputera

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

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

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

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Komunikacja w mikrokontrolerach Laboratorium

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

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

Układy czasowo-licznikowe w systemach mikroprocesorowych

Układy zegarowe w systemie mikroprocesorowym

Wykład 2. Mikrokontrolery z rdzeniami ARM

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

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Mikrokontroler AVR ATmega32 - wykład 9

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

Programowanie Mikrokontrolerów

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

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

1.2. Architektura rdzenia ARM Cortex-M3...16

Przerwania, polling, timery - wykład 9

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

Memory Map for LPC2138

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

Wstęp Architektura... 13

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

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

System mikroprocesorowy i peryferia. Dariusz Chaberski

Programowanie mikrokontrolerów 2.0

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

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

Systemy wbudowane - wykład 7

(przykład uogólniony)

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

MIKROKONTROLERY I MIKROPROCESORY

Wykład 7. Architektura mikroprocesorów powtórka

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

3. Sygnały zegarowe i ich konfiguracja, mechanizmy bezpieczeństwa... 47

Metody obsługi zdarzeń

2. Architektura mikrokontrolerów PIC16F8x... 13

Współpraca procesora z urządzeniami peryferyjnymi

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Instytut Teleinformatyki

Kurs Zaawansowany S7. Spis treści. Dzień 1

Mikroinformatyka. Koprocesory arytmetyczne 8087, 80187, 80287, i387

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

16. Szeregowy interfejs SPI

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura ARM. Materiały do wykładu. Marcin Peczarski. 19 maja Instytut Informatyki Uniwersytet Warszawski

Programowany układ czasowy APSC

Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Architektura mikrokontrolera MCS51

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

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Programowany układ czasowy

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

Prezentacja systemu RTLinux

Mikroprocesory i Mikrosterowniki

Architektura mikrokontrolera MCS51

Technika Mikroprocesorowa

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Architektura mikroprocesorów z rdzeniem ColdFire

Moduł wspierający diagnostykę i sprzętowe debugowanie

Timery w mikrokontrolerach STM32F3

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Programowanie mikrokontrolerów 2.0

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

2. Budowa układów procesorowych rodziny TMS320C

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

ARCHITEKTURA PROCESORA,

Wykład Mikroprocesory i kontrolery

Zastosowania mikrokontrolerów w przemyśle

Przetworniki analogowo-cyfrowe (A/C)

Systemy wbudowane Mikrokontrolery

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

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Transkrypt:

Procesory osadzone ETD 7211 I 2 C, I 2 S, Timer, PWM, ARM W7 03.12.2018

Powtórka wiadomości

Dane MAM Memory Acceleration Module Zadanie: przyspieszenie dostępu do pamięci FLASH 3 Rdzeń ARM Interfejs adres 15 Pamięć FLASH Bufory Magistrala Local Bus 128 Pamięć RAM szybka Flash cykl zapis/odczyt ~50 ns Przy założeniu, że procesor działa przy 60 MHz, czas dostępu do pamięci to ~16,33 ns 128 bitowa organizacja pamięci odczyt czterech 32-bitowych rozkazów ARM lub osiem 16- bitowych Thumb Data Buffer Prefetch Buffer Branch Tail Buffer

Obniżony pobór mocy Układy LPC umożliwiają pracę w trybie obniżonego poboru mocy. Dostępne tryby: IDLE, Power Down, Sleep Mode, Deep Power-Down Mode IDLE Sleep Mode - wyłączony sygnał taktujący rdzeń - główny zegar wyłączony - wyłączony sygnał taktujący pamięć - pętla PLL zostaje automatycznie rozłączona - sygnał zegarowy podłączony do bloków obsługi przerwań - możliwość wznowienia pracy układu za pomocą RTC (działa zegar 32768 Hz) - pobór prądu na poziomie ma - pamięć FLASH w stanie podtrzymania - pobór prądu na poziomie µa 4

Obniżony pobór mocy Power Down - sygnał zegarowy całkowicie wyłączony Deep Power-Down - po wznowieniu działania, układ PLL oraz dzielniki sygnałów muszą zostać ponownie skonfigurowane - z trybu power down mikrokontroler mogą wyprowadzić jedynie te bloki, które do działania nie wymagają sygnału zegarowego - odłączone zostaje napięcia zasilające interfejsy logiczne - ekstremalnie niski pobór prądu - wznowienie działania: RTC lub RESET zewnętrzny 5

Peryferia SPI Serial Peripheral Interface - na przykładzie LPC2368 Parametry transmisji SPI: Brak arbitrażu, Dwukierunkowy interfejs, 4 linie kontrolne: MOSI, MISO, SCK, SSEL, Praca w trybie master lub slave, Tryb Master generuje sygnał SCK, Obsługa: Flash, A/C D/C, karty MMC itp 6

Peryferia SSP Synchronous Serial Port - na przykładzie LPC2368 Parametry transmisji SSP: Kompatybilność z trybami: Motorola SPI, 4-wire TI SSI, National Semiconductor Microwire Praca w trybie master lub slave, 8 ramek w trybie FIFO oba w trybie transmisji i odbioru danych Wspomaganie pracy w trybie DMA 7

I 2 C

Peryferia I 2 C - na przykładzie LPC2368 Parametry transmisji I 2 C: Komunikacja synchroniczna z wykorzystaniem arbitrażu, Magistrala szeregowa, Linie dwukierunkowe z otwartym drenem w trybie Master/Slave, Każde urządzenie na magistrali I 2 C ma swój 7-bitowy adres, Synchronizacja zegara na magistrali, 100 khz standard, 400 khz szybki 9

Peryferia I 2 C - na przykładzie LPC2368 I 2 C Wykorzystanie I 2 C Czujniki Pamięci (np.: 24C128) itp SPI 10 Uwaga: SDA0 i SCL0 są typu: otwarty dren

11 Rejestr Adresu: może być zapisany 7 bitami, po transmisji w trybie Slave Komparator: porównuje własne 7 bitów adresu z tymi co przyszły po magistrali, porównuje również 8 bitów z głównym adresem rozgłoszeniowym [0x00] Shift Register: przechowuje dane do transmisji wysyła je od MSB (7) do LSB (0) Układ do synchronizacji i arbitrażu: sprawdza stan 1 na lini SDA, w momencie gdy inne urządzenie ustawi ją w stan 0 wówczas arbitraż zostanie przerwany a Master Slave.

Peryferia I 2 C - procedura arbitrażu 1. Urządzenie wysyła dane na linii SDA, 2. Jedno z urządzeń przygotowuje się do wysyłania danych w trybie master, jednak drugie urządzenie (zaznaczone linią przerywaną) ustawia linię SDA w stan 0, arbitraż zostaje przerwany, a urządzenie pierwsze przechodzi w stan Slave, 3. Urządzenie pierwsze przechodzi w tryb odbioru ale nadal generuje zegar aż transmisja zostanie zakończona. Urządzenie nie wygeneruje już następnego przebiegu zegarowego, zrobi to urządzenie które wygrało wcześniej arbitraż. 12

13 Serial Clock Generator: kontroluje generowanie sygnału zegarowego gdy urządzenie jest w trybie Master, a jest wyłączona gdy jest w trybie Slave. Timing & Control Logic: generują i wykrywają sygnały startu i stopu, momenty transmisji danych, wysyła i odbiera bit ACK, Kontroluje tryb Master i Slave oraz przerwania, monitoruje pracę magistrali I 2 C Status decoder & register: zbiera najważniejsze bity statusowe i sprowadza do 5 bitowego kodu. Możliwe jest 26 stanów magistrali

Peryferia I 2 C Rejestry Do konfiguracji i kontroli magistrali I 2 C wykorzystywanych jest 7 głównych rejestrów: I2CONSET - I2C Control Set Register I2STAT - I2C Status Register I2DAT - I2C Data Register I2ADR - I2C Slave Address Register I2SCLH - SCH Duty Cycle Register High Half Word I2SCLL - SCL Duty Cycle Register Low Half Word. I2CONCLR - I2C Control Clear Register 14

Peryferia I 2 C Rejestry Zawartość rejestru I2CnCONSET - I 2 C Control Set Register 31:8 7 6 5 4 3 2 1 0 - I2 SA SO SI AA - AA włączenie obsługi wysyłania bitu potwierdzenia ACK, SI Flaga do obsługi przerwania z magistrali I 2 C zapala się gdy stan magistrali I 2 C zmienia się, w celu wykonania kolejnej akcji należy ją wyzerować, STO włączenie obsługi nadawania bitu stopu na magistrali I 2 C, STA przejście w tryb Master i nadanie bitu START, lub wysłanie bitu ponownego startu, Kasownie bitu odbywa się przez wpisanie 1 do rejestru CONCLR I2EN włączenie interfejsu I 2 C, wyłączenie przez zerowanie bitu powoduje przerwanie śledzenia zamian na liniach SDA i SCL 15

Peryferia I 2 C Rejestry I2CnCONSET - I 2 C Control Set Register 31:8 7 6 5 4 3 2 1 0 - I2 SA SO SI AA - I2CnCONCLR - I 2 C Control Clear Register 31:8 7 6 5 4 3 2 1 0 - I2 SA - SI AA - 16 AAC wyłączenie obsługi wysyłania bitu potwierdzenia ACK, SIC Flaga do obsługi przerwania z magistrali I 2 C zapala się gdy stan magistrali I 2 C zmienia się, w celu wykonania kolejnej akcji należy ją wyzerować, STAC przejście w tryb Master i nadanie bitu START, lub wysłanie bitu ponownego startu, I2ENC wyłaczenie interfejsu I 2 C, wyłączenie przez zerowanie bitu powoduje przerwanie śledzenia zamian na liniach SDA i SCL Uwaga: wpisanie jedynki do CONCLR powoduje wyzerowanie bitów w CONSET

Peryferia I 2 C Rejestry Zawartość rejestru I2CnSTAT - I 2 C Status Register 31:8 7 6 5 4 3 2 1 0 Status - Status 26 możliwych kombinacji bitów statusowych dla działania w 4-ch trybach: Tryb Master Transmitter Tryb Master Receiver Tryb Slave Receiver Tryb Slave Receiver 17 Tabele 454:457 W UM120211.pdf

Peryferia I 2 C Rejestry 18 Zawartość rejestru I2CnSTAT - I 2 C Status Register KOD Zdarzenie 0x08 Bit Start został nadany 0x10 Powtórzony bit startu został nadany 0x18 Adres urządzenia I 2 C (kierunek zapisu) został nadany z potwierdzeniem (ACK) 0x20 Adres urządzenia I 2 C (kierunek zapisu) został wysłany, brak potwierdzenia (ACK) 0x28 Dane zostały wysłane z potwierdzeniem (ACK) 0x30 Dane zostały wysłane, brak potwierdzenia (ACK) 0x38 Utrata magistrali (inne urządzenie master przejęło magistralę) 0x40 Adres urządzenia I 2 C (kierunek odczytu) został nadany z potwierdzeniem (ACK) 0x48 Adres urządzenia I 2 C (kierunek odczytu) został wysłany, brak potwierdzenia (ACK) 0x50 Dane zostały odebrane i wysłano potwierdzenie (ACK) 0x58 Dane zostały odebrane i nie zostało wysłane potwierdzenia (ACK) 0xF8 Stan jałowy na magistrali nic się nie dzieje

Peryferia I 2 C Rejestry I2CnDAT - I 2 C Data Register 31:8 7 6 5 4 3 2 1 0 Data DATA zawiera dane do wysłania lub do odbioru I2CnADR - I 2 C Slave Address Register 31:8 7 6 5 4 3 2 1 0 Adres GC GC General Call: odpowiedź na adres rozgłoszeniowy (0x00) Adres zawiera adres dla interfejsu I 2 C urządzenia pracującego w trybie Slave 19

Peryferia I 2 C Rejestry I2CnSCLH - I 2 C SCL High Duty Cycle Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SCLH I2CnSCLL - I 2 C SCL Low Duty Cycle Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SCLL I 2 C bitfreq = f PCLK I2CSCLH + I2CSCLL 20

Peryferia I 2 C Rejestry I 2 C bitfreq = f PCLK I2CSCLH + I2CSCLL f I2C = 0 400 khz 21

I 2 S

Peryferia I 2 S - na przykładzie LPC2368 Parametry transmisji I 2 S: Magistrala specjalizowana dla interfejsów Audio, Wybór kanałów, Praca na 8, 16 i 32 bitach, Czas akwizycji można dowolnie zmieniać od 16 96 khz 16, (22.05, 32, 44.1, 48, 96 khz) 8 kolejkowe FIFO 23

Peryferia I 2 S - na przykładzie LPC2368

Peryferia I 2 S - rejestry

Peryferia I 2 S - FIFO

Timer

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Specyfika Liczników: 32 bit liczniki z 32 bit-i preskalerami Operacja jako Licznik impulsów lub czasu (counter/timer) Do 32 wejść dla każdego licznika, Cztery 32 bit rejestry porównywania Tryb ciągły Tryb stopowania Tryb resetowania Cztery wyjścia Generacja przerwań 28

Diagram blokowy P1[28]/ O MAT0[0] Match output for Timer 0, channel 0. P1[29]/ O MAT0[1] Match output for Timer 0, channel 0. P3[25]/ O MAT0[0] Match output for Timer 0, channel 0. P3[26]/ O MAT0[1] Match output for Timer 0, channel 1. P1[22]/ O MAT1[0] Match output for Timer 1, channel 0. P1[25]/ O MAT1[1] Match output for Timer 1, channel 1. P0[6]/ O MAT2[0] Match output for Timer 2, channel 0. P0[7]/ O MAT2[1] Match output for Timer 2, channel 1. P0[8]/ O MAT2[2] Match output for Timer 2, channel 2. P0[9]/ O MAT2[3] Match output for Timer 2, channel 3. P4[28]/ O MAT2[0] Match output for Timer 2, channel 0. P4[29]/ O MAT2[1] Match output for Timer 2, channel 1. P0[10]/ O MAT3[0] Match output for Timer 3, channel 0. P0[11]/ O MAT3[1] Match output for Timer 3, channel 1. P1[26]/ I CAP0[0] Capture input for Timer 0, channel 0. P1[27]/ I CAP0[1] Capture input for Timer 0, channel 1. P1[18]/ I CAP1[0] Capture input for Timer 1, channel 0. P1[19]/ I CAP1[1] Capture input for Timer 1, channel 1. 29 P0[4]/ I CAP2[0] Capture input for Timer 2, channel 0. P0[5]/ I CAP2[1] Capture input for Timer 2, channel 1. P0[23]/ I CAP3[0] Capture input for Timer 3, channel 0. P0[24]/ I CAP3[1] Capture input for Timer 3, channel 1.

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 30 TxIR Rejestr przerwania do zerowania, możliwy odczyt przerwania TxTCR Rejestr kontroli czasu liczników TxTC Licznik czasu który zmienia się za każdym PR+1 cyklu PCLK TxPR Rejestr preskalera licznika TxPC Licznik preskalera, zlicz do wartosci z PR TxMCR Rejestr porówania wartości - kontrolowanie przerwań i ich generowanie TxMR0 Rejestr porównania TxMR1,TxMR2,TxMR3, TxCCR Rejestr kontrolny zdarzeń reakcja na impuls, zbocze, generowanie przerwań

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 TxCR0 Wewnętrzny rejestr kopiujący wartość z licznika TC po wykryciu zdarzenia TxCR1 Wewnętrzny rejestr kopiujący wartość z licznika TC po wykryciu zdarzenia TxEMR Zewnętrzny układ porównania reagujący na sygnał z pinu MATn.0-3 TxCTCR Rejestr kontrolny licznika zmiana miedzy zliczaniem impulsów a odliczaniem czasu oraz reakcje na sygnał lub zbocze 31

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxIR - Interrupt Register 31:8 7 6 5 4 3 2 1 0 - C1 C0 M3 M2 M1 M0 MR0 Flaga przerwania od porównania dla kanału 0 MR1 Flaga przerwania od porównania dla kanału 1 MR2 Flaga przerwania od porównania dla kanału 2 MR3 Flaga przerwania od porównania dla kanału 3 CR0 Flaga przerwania od zdarzenia dla kanał 1 CR1 Flaga przerwania od zdarzenia dla kanał 2 32 Przerwanie od danego zdarzenia sygnalizowane jest pojawieniem się stanu wysokiego na zadanym polu, Wpisanie stanu 1 na konkretny bit spowoduje wyzerowanie flagi od tego przerwania. Wpisanie stanu logicznego 0 nie ma żadnego wpływu.

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxCR - Timer Control Register 31:8 31:8 7 6 5 4 3 2 1 0 - CR CE Rejestr odpowiedzialny jest za kontrolę pracy licznika impulsów lub czasu Counter Enable Aktywacja 1 lub dezaktywacja 0 zliczania impulsów przez Timer Counter i Prescaler Counter Counter Reset Resetowanie 1 w tym samym czasie liczników Timer Counter i Prescaler Counter po wystąpieniu następnego zbocza narastającego na sygnale zegarowym PCLK. Rejestry są wyzerowane do momentu nie zwrócenia w TCR [1] stanu niskiego 0 33

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxCTCR - Count Control Register 31:16 31:16 7 6 5 4 3 2 1 0 - CIS T/CM 34 CTCR wykorzystywany jest do przełączania trybu pracy, między licznikiem czasu a licznikiem impulsów (Timer and Counter mode) oraz wyborem momentu zliczania ich za pomocą wejść CAP wówczas wartość w rejestrze TC zostanie zwiększony o jeden Counter/Timer Mode Wybór trybu pracy między Licznikiem Impulsów a licznikiem Czasu wraz z wyborem reakcji na zbocze przy zliczaniu: 00 Timer Mode: na każde rosnące zbocze PCLK 01 Counter Mode: inkremenaracja na zbocze narastające z wejścia CAP 10 Counter Mode: inkremenaracja na zbocze opadające z wejścia CAP 11 Counter Mode: inkremenaracja na oba zbocza z wejścia CAP Count Input Select Wybór wejścia CAPm 00 CAPn 0 01 CAPn 1 Capture Control Register (TnCCR) musi zostać zaprogramowany jako 000

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Timer Counter Registers TnTC 32-bitowy rejestr licznika czasu od wartości 0x0000 0000 do 0xFFFF FFFF i po przekroczeniu tej wartości wraca do 0x0000 0000. Przekroczenie wartości licznika nie wywołuje przerwania. Jednak rejestr porównania może zostać wykorzystany do tego! Prescale Register TnPR 32-bitowy rejestr określający maksymalną wartość zliczania licznika preskalera (Prescale Counter) 35

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Prescale Counter register 32-bitowy rejestr preskalera licznika, który kontroluje podział sygnału PCLK o stałą wartość zanim nastąpi zliczenie impulsów w rejestrze licznika czasu (Timer Counter). Pomaga to w kontroli rozdzielczości czasowej w stosunku do maksymalnego czasu zanim wartość licznika zostanie przekroczona. Licznik preskalera (Prescale Counter register) kontrolowany jest przez rejestr preskalera (Prescale register) i w momencie gdy osiągnie on wartość z tego rejestru (Prescale register) wówczas licznik czasu (Timer Counter) zostaje zwiększony o +1 a licznik preskalera zostaje wyzerowany. TC+1: co 1 PCLK gdy PR = 0, co 2 PCLKs gdy PR = 1, etc. Match Registers MR0 MR3 Wartość z tego rejestru jest ciągle porównywana z licznikiem czasu (Timer Counter). Gdy obie wartości są równe, następuje wywołanie automatycznej akcji: resetu wartości TC, zastopowanie licznika czasu. Można je kontrolować w rejestrze MCR 36

MR3S MR3R MR3I MR2S MR2R MR2I MR1S MR1R MR1I MR0S MR0R MR0I Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxMCR - Match Control Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - MRnI włączanie generowania przerwania 1 w momencie gdy MRn osiąga wartość taką jak w TC MRnR wyzerowanie od MRn, Wartość w TC zostanie wyzerowana w momencie gdy osiągnie taką samą wartość co MRn, MRnS zatrzymanie od MRn, Zliczanie w TC zostanie zatrzymane w momencie osiągnięcia wartości takiej jak w MRn, dodatkowo w TCR[0] zostanie ustawione na stan 0 w momencie gdy MRn = TC n = 0, 1, 2, 3 37

Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxCCR - Capture Control Register 31:16 31:16 15:6 5 4 3 2 1 0 - CAP1I CAP1FE CAP1RE CAP0I CAP0FE CAP0RE 38 CAP0RE reakcja na zbocze narastające dla odpowiadającego wejścia CAPn.0, spowoduje zapamiętanie zawartości licznika TC w odpowiadającym mu rejestrze CR0 CAP0FE - reakcja na zbocze opadające dla odpowiadającego wejścia CAPn.0, spowoduje zapamiętanie zawartości licznika TC w odpowiadającym mu rejestrze CR0 CAP0I ustawienie tego bitu powoduje nie tylko zapamiętanie stanu licznika TC w odpowiadającym mu rejestrze CR0 ale również zgłoszenie przerwania CAP1RE reakcja na zbocze narastające dla odpowiadającego wejścia CAPn.1, spowoduje zapamiętanie zawartości licznika TC w odpowiadającym mu rejestrze CR1 CAP1FE - reakcja na zbocze opadające dla odpowiadającego wejścia CAPn.1, spowoduje zapamiętanie zawartości licznika TC w odpowiadającym mu rejestrze CR1 CAP1I ustawienie tego bitu powoduje nie tylko zapamiętanie stanu licznika TC w odpowiadającym mu rejestrze CR0 ale również zgłoszenie przerwania

EM3 EM2 EM1 EM0 Peryferia Timer 0, 1, 2, 3 - na przykładzie LPC2368 Zawartość rejestru TxEMR - External Match Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - EMC3 EMC2 EMC1 EMC0 EM0 flaga załączania wyjścia MATn.0. W momencie wystąpienia takich samych wartości na TC i MR0 wówczas odpowiedni stan na pinie MATn.0 jest ustawiony. Jego reakcja ustawiana jest na linii EMC0 EMC0 stan tej przestrzeni w rejestrze określa zachowanie wyjścia pinu MATn.0 00 nic nie rób 01 zeruje odpowiednią linię MAT 10 ustawia odpowiednia linię MAT 11 zmienia stan na przeciwny na odpowiedniej lini MAT 39

PWM

Peryferia PWM - na przykładzie LPC2368 Specyfika układu PWM: Operacja zliczania impulsów lub czasu 6 pojedynczych wyjść lub 3 podwójne Niezależny 32 bitowy licznik od licznika Timer/Counter Możliwość zmiany rejestru porównania (MR) w tym samym czasie! 7 rejetrów porównania Operacja jako standardowy licznik 41

PWM Timer/Counter

Peryferia PWM - na przykładzie LPC2368

Peryferia PWM - na przykładzie LPC2368

Peryferia PWM - na przykładzie LPC2368

Peryferia PWM - na przykładzie LPC2368 Resetowanie i ustawianie wyjść dla układu PWM

Peryferia PWM - na przykładzie LPC2368 PWM1IR Rejestr przerwania do zerowania, możliwy odczyt przerwania PWM1TCR Rejestr kontroli czasu liczników PWM1TC Licznik czasu który zmienia się za każdym PR+1 cyklu PCLK PWM1PR Rejestr preskalera licznika PWM1PC Licznik preskalera, zlicz do wartości z PR PWM1MCR Rejestr porównania wartości - kontrolowanie przerwań i ich generowanie PWM1MR0 Rejestr porównania PWM1MR1 PWM1MR6, PWM1CCR Rejestr kontrolny zdarzeń reakcja na impuls, zbocze, generowanie przerwań

Peryferia PWM - na przykładzie LPC2368 PWM1CR0-3 Wewnętrzny rejestr kopiujący wartość z licznika TC po wykryciu zdarzenia PWM1PCR Umożliwia wybór wyjść oraz konkretnych kanałów oraz ustawienie pojedynczego lub podwójnego wyjścia PWM1LER włączanie wyboru NOWEJ wartości porównania PWM1CTCR Rejestr kontrolny licznika zmiana miedzy zliczaniem impulsów a odliczaniem czasu oraz reakcje na sygnał lub zbocze

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1IR - PWM Interrupt Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0-10 9 8-5 4 3 2 1 0 [0] PWMMR0 flaga przerwania od PWM dla kanału 0, występuje gdy licznik i rejestr porównania są równe. [3] PWMMR3 flaga przerwania od PWM dla kanału 3, występuje gdy licznik i rejestr porównania są równe. [4] PWMCAP0 flaga przerwania od wejścia 0 [5] PWMCAP1 flaga przerwania od wejścia 1 [8] PWMMR4 flaga przerwania od PWM dla kanału 4, występuje gdy licznik i rejestr porównania są równe. [10] PWMMR6 flaga przerwania od PWM dla kanału 6, występuje gdy licznik i rejestr porównania są równe.

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1TCR - PWM Timer Control Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - PE - CR CE Counter Enable Licznik PWM i preskaler licznika PWM są włączone i gotowe do zliczania Counter Reset Licznik PWM i preskaler licznika PWM są zsynchronizowane do resetu wartości na następnym wysokim stanie zegarowym PCLK. Liczniki są wyzerowane póki bit (Counter Reset ) nie zostanie wyzerowany PWM Enable Jeśli bit ten jest w stanie 1 wówczas tryb PWM jest włączony, w wypadu wpisania 0 wówczas układ pełni rolę układu czasowolicznikowego.

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1CTCR - PWM Count Control Register 31:8 31:8 7 6 5 4 3 2 1 0 - CIS C/TM Counter/Timer Mode: 00 Praca w trybie pomiaru czasu: TC jest inkrementowane wówczas gdy Prescale Counter zrówna się do Prescale Register 01 Praca w trybie licznika: TC jest inkrementowany na zbocze narastające z wejścia PCAP 10 Praca w trybie licznika: TC jest inkrementowany na zbocze opadające z wejścia PCAP 11 Praca w trybie licznika: TC jest inkrementowany na oba zbocza narastające i opadające z wejścia PCAP Count Input Select wybór wejścia: 00 PCAP1.0 01 CAP1.1

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1PCR - PWM Control Registers 31:15 31:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 A6 A5 A4 A3 A2 A1 - L6 L5 L4 L3 L2 - PWMSEL2 ustawienie bitu skutkuje przełączenie się w tryb podwójny na wyjściu PWM2, zerowanie bitu powoduje przejście w tryb pojedynczy PWMSEL6 ustawienie bitu skutkuje przełączenie się w tryb podwójny na wyjściu PWM6, zerowanie bitu powoduje przejście w tryb pojedynczy PWMENA1 ustawienie powoduje włączenie wyjścia PWM1, zerowanie jego wyłączenie PWMENA6 ustawienie powoduje włączenie wyjścia PWM6, zerowanie jego wyłączenie

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1MCR - PWM Match Control Register 31:16 31:16 20 19 18 11 10 9 8 7 6 5 4 3 2 1 0 6S 6R 6I 3S 3R 3I 2S 2R 2I 1S 1R 1I 0S 0R 0I [0I]: PWMMRnI flaga przerwania od PWMMRn, przerwanie generowane jest e momencie gdy PWMMRn ma taką samą wartość jak PWMTC [0R]: PWMMRnR Zerowanie od PWMMRn, PWMTC jest zerowany w momencie gdy PWMMR0 ma taką samą wartość jak PWMTC [0S]: PWMMRnS Stopowanie PWMMRn, PWMTC oraz PWMPC zostaną zatrzymane a PWMTCR[0] zostanie ustawione na 0 jeśli PWMMRn ma taką samą wartość jak PWMTC n = 0, 1, 2, 3, 4, 5, 6

Peryferia PWM - na przykładzie LPC2368 Zawartość rejestru PWM1LER - PWM Latch Enable Register 31:16 31:16 7 6 5 4 3 2 1 0-6L 5L 4L 3L 2L 1L 0L Rejestr PWM1LER służy do aktualizacji rejestrów PWMMATn gdy układ pracuje w trybie PWM. 0L Ustawienie tego bitu w stan wysoki spowoduje wpisanie do rejestru Match 0 wartości

ARM a gdzie to jest?

57 ARM ilość ma znaczenie

LPC rodzina układów Cortex-M0+ ARM9 58 ARM7 Cortex-M4 MCUs with Cortex-M0 Co-Processors

Cortex-M3 embedded LPC1768 59 https://www.mbed.com/en/ https://developer.mbed.org/platforms/ https://developer.mbed.org/

Cortex Rodzina Cortex składa się z trzech wersji rdzeni: Cortex R - przeznaczonych do stosowania w systemach czasu rzeczywistego (real-time systems), Cortex A - przeznaczonych do stosowania w dużych systemach z zaimplementowanymi systemami operacyjnymi, mają wbudowaną m.in. jednostkę MMU, Cortex M - rdzenie zoptymalizowane cenowo (cost-sensitive), przeznaczone dla aplikacji mikrokontrolerowych. 60

61 Cortex

Zestaw instrukcji ogólnych, obsługa I/O Zaawansowane operacje, manipulacja bitowa Operacja DSP, SIMD, MAC Operacje zmiennoprzecinkowe

Cortex podstawowe pojęcia Jednostka Znaczenie FPU Floating Point Unit jednostka zmiennoprzecinkowa DSP Digital Signal Processing (SIMD Instructions) wsparcie dla operacji DSP, przetwarzanie zygnałó TCM Tightly Coupled Memory pamięć ściśle przyległa ECC Error Code Correction pamięć RAM wyposażona w system kodowania korekcyjnego L1$ Level 1 Cache pamięć podręczna pierwszego poziomu SCU Snoop Control Unit jednostka sterująca pamięci, łączenie wielu procesorów, pamięci MMU Memory Management Unit jednostka zarządzania pamięcią TZ Trust Zone system bezpieczeństwa, ochrona urządzeń NEON Advanced SIMD Instruction efektywne przetwarzanie SIMD - (Single Instruction, Multiple Data) do 16 instrukcji MPx Multi Processing wieloprocesorowość 63 HV DIV Hardware Divide sprzętowa jednostka dzieląca MPU Memory Protection Unit jednostka ochrony pamięci

SCU - Snoop Control Unit Cortex A9 MPcore CPU CPU CPU CPU Cache Instr. Data Cache Cache Instr. Data Cache Cache Instr. Cache Cache Instr. Data Cache Snoop Control Unit (SCU) Accelerator Coherence Port L2 Cache 64 Main Memory

ARM NEON - silnik multimedialny ARM NEON jest blokiem SIMD ogólnego użycia Przeznaczony głównie do obróbki multimediów Pozwala na zwiększenie wydajności przetwarzania grafiki o około 3x w porównaniu z rodziną ARMv5 W przypadku DSP wzrost wydajności może być jeszcze większy (do 8x) Posiada 32 rejestry 64-bitowe łączone w 16 rejestrów 128- bitowych SISD Single Instruction Single Data SIMD - Single Instruction Multiple Data 65 Lista rozkazów ARM oraz Thumb-2 zawiera ponad 100 instrukcji SIMD

66 Skalowność rodziny Cortex M

Cortex M Procesor 32-bitowy: Kolejka instrukcji 3 stopniowa, Architektura harwardzka Lista instrukcji Thumb-2,bardzo zwarty kod przy dużej wydajności Wiele trybów i domen oszczędzania energii Nested Vectored Interrupt Controller,dobrze zdefiniowane czasy i sposoby wywoływania przerwań, Wsparcie dla systemów RTOS, Wsparcie dla debuggerów (JTAG, SWD Serial Wire Debug) 67

Bit band w Cortex-ach Natychmiastowy dostęp do pojedynczego bitu, Dostęp w obszarze RAM (0x20000000) oraz urządzań peryferyjnych (0x40000000) Zazwyczaj aby zmienić stan pojedynczego bitu: - odczyt komórki pamięci do rejestru, - ustawienie interesującego bitu, - Zapis wartości do komórki pamięci Bit band zapis lub odczyt dowolnego bitu na podstawie adresu interesującego bitu 68

NVIC - Nested Vectored Interrupt Controller - kontroler przerwań zagnieżdżonych Wyjątki, najważniejsze w systemie Priorytety przerwań na przykładzie Cortex M3 NMI przerwanie niemaskowalne HardFault błędy krytyczne MemManage manager pamięci BusFault błąd podczas dostępu do pamięci UsageFault niezdefiniowana instrukcja SVCall wywołanie przez instrukcję SVC Debug Monitor tryb debugowania PendSV żądanie opóźnionego wywołania systemu SysTick Timer systemowy, przerwanie okrsowe 69

Cortex M0 Główne cechy: Architektura v6-m prekursor, pierwowzór układów CORTEX Najuboższa wersja procesorów ARM Jednocześnie też najbardziej oszczędna jedynie 85µW/MHz Kompatybilność z wersją Cortex-M3 Struktura składa się z zaledwie 12000 bramek Tylko 56 instrukcji optymalizowanych pod kątem języka C Wsparcie dla nisko-mocowej komunikacji bezprzewodowej: Bluetooth Low Energy (BLE), ZigBee, itp. Wydajność 0.9 DMIPS/MHz Instrukcja mnożenie 32x32 w jednym cyklu Opóźnienie wywołania przerwań: 16 cykli 70

Cortex M1 Główne cechy: Tzw. miękka wersja rdzenia, Rdzeń wykonany jako IP Core z możliwością osadzenie w FPGA, Wsparcie dla układów Xilinx, Actel, Altera 71

Cortex M3 72 Główne cechy: Wprowadzony na rynek w 2004 roku Przewidziany do najbardziej wydajnych mikrokontrolerów Wysoka wydajność i bogactwo cech Mały pobór prądu (12.5 DMIPS/mW) Do 240 źródeł przerwań!!! Wsparcie dla szeregu protokołów szeregowych Wydajność 1.25DMIPS/MHz Wsparcie dla operacji na bitach Mnożenie 32x32 w jednym cyklu, Dzielenie w 2-12 cyklach Kolejka instrukcji (3 stopnie) plus przewidywanie skoków Kontrola pamięci (MPU) Prędkość działania: do 275 MHz /340 DMIPS

LPC43x0 Cortex M4, Cortex M0 Główne cechy: Wieloprocesorowość: rdzeń Cortex M4, koprocesor Cortex M0, Rdzeń Cortex- M4 zoptymalizowany pod kątem DSP Rozbudowane układy peryferyjne, Możliwość rozdzielenia sygnałów zegarowych, Możliwość kontroli mocy każdego rdzenia z osobna 73

LPC43x0 Cortex M4, Cortex M0 Główne cechy: Cortex M4 operacje DSP Cortex M0 kontrola I/O Połączenie do wspólnej magistrali AHB umożliwia: bezpośrednią komunikację pomiędzy jednostkami CPU, współdzielić pamięć 74

LPC43x0 Cortex M4, Cortex M0 Maksymalną wydajność uzyskuje się gdy każda jednostka korzysta z odrębnego fragmentu pamięci 75

ARM, THUMB, THUMB2 zdolność do obsługi instrukcji na danych 16- i 32-bitowych bez konieczności stosowania jakichkolwiek zabiegów, zmniejszenie objętości wynikowego kodu oraz na zwiększenie wypadkowej prędkości, Thumb/Thumb2 - większa, w porównaniu do rozkazów ARM, gęstość upakowania poleceń, Lista Thumb-2 ma pewne rozszerzenia w stosunku do listy ARM (np. sprzętowe dzielenie), Wszystkie rozkazy wykonują się w ściśle określonym czasie zwykle 1 cykl. 4 bitowy kod warunkowy na początku każdej instrukcji. 76

77 Dziękuję za uwagę