Procesory osadzone ETD 7211 W6 26.11.2018
Peryferia przetwornik ADC - na przykładzie LPC2368 Parametry przetwornika ADC: 6 kanałów multipleksowany, konwersja od 3 do 10 bitów, zakres pomiarowy 0 3V, indywidualny rejestr wyniku dla każdego kanału, przetwarzanie na zasadzie sukcesywnej aproksymacji, czas przetwarzania ~ 2,44 µs ziarno: q=u/2 N = 3/1024 = 2,93 mv 2
Peryferia przetwornik DAC - na przykładzie LPC2368 Przetwornik DAC N = 10 bitów, V REF = 3,3V, 1 2,5µs 700 350 µa 3
Peryferia port szeregowy RS232 - na przykładzie LPC2368 Zgodny ze standardem 16550 Szybkość transmisji: 1200, 2400, 4800, 9600, 19200, 57600, 115 200 bitów/s 16-bit bufor dla nadawczo-odbiorczej kolejki FIFO UART1 tryb modemu 4
Peryferia port szeregowy RS232 - UART1 na przykładzie LPC2368 UART Universal Asynchronous Receiver Transmitter 3,3 V 0 1 2 3 4 5 6 7 P +8 V stan IDLE bit startu 0 5 8 bitów danych bit parzystości -8 V 5 LPC2368: UART0/2/3 UART1 możliwość budowy modemu bity stopu: 1, 2 lub 1.5
Zegar systemowy CLK kilka pf 6 Źródło sygnału: generator sygnałowy, rezonator kwarcowy częstotliwość sygnału zegarowego: 1 MHz 24 MHz
Dane MAM Memory Acceleration Module Zadanie: przyspieszenie dostępu do pamięci FLASH 8 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
Kod sekwencyjny Dane i skoki Zarówno dane i kod MAM Memory Acceleration Module TRYB 0 TRYB 1 TRYB 2 Rdzeń ARM Rdzeń ARM Rdzeń ARM MAM MAM MAM FLASH FLASH FLASH 9 MAM tryby pracy: całkowicie wyłączony (tylko Flash), częściowo włączony (Flash + MAM), całkowicie załączony (MAM)
MAM Memory Acceleration Module MAM Control Register MMCR MAM Timing Register MAMTIM 10
Code Read Protection CRP - ochrona systemu Code Read Protection (CRP) mechanizm zabezpieczający oprogramowanie oraz sprzęt. W układach LPC dostępne są trzy różne poziomy ochrony. CRP jest wywoływany zapisem odpowiedniego wzorca: CRP1 (0x12345678) CRP2 (0x87654321) CRP3 (0x43218765) w pamięci pod adresem (0x000001FC). 11
Code Read Protection CRP - ochrona systemu, sprzętu CRP1 CRP2 CRP3 Dostęp do układu za pośrednictwem interfejsu JTAG zablokowany modyfikacja pamięci tylko w trybie ISP modyfikacja pamięci tylko w trybie ISP: odczyt, zapis, kopiowanie brak możliwości programowania ISP brak dostępu do pamięci RAM, poniżej adresu 0x40000200 modyfikacja pamięci jedynie przez program IAP In Application Programming brak możliwości modyfikacji sektora 0 12 możliwość wyczyszczenia całej zawartości pamięci możliwość wyczyszczenia całej zawartości pamięci brak możliwości wyczyszczenia pamięci, brak możliwości ponownego zapisu, testowania
13 Code Read Protection CRP - ochrona systemu, sprzętu
14 Procedura wejścia w tryb programowania ISP, ze sprawdzeniem CRP
Programator ISP układów LPC - konstrukcja niskobudżetowa
MEMMAP - Memory mapping - mapowanie pamięci Memory mapping - relokacja obszarów pamięci pod inny adres: - możliwość uruchomienia program z dowolnego obszaru pamięci, - przeniesione zostają wektory przerwań np. z Flash (0x000000000) do obszaru pamięci RAM (0x40000000) lub obszar bootloadera BOOT ROM AND FLASH 32 kb ON-CHIP STATIC RAM - w skrócie wewnętrzna pamięć RAM 16 512 kb ON-CHIP NON-VOLATILE MEMORY - w skrócie wewnętrzna pamięć FLASH
17 MEMMAP - Memory mapping - mapowanie pamięci
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 18
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 19
Obniżony pobór mocy - rejestry kontrolno-sterujące Rejestr umożliwiający sterowanie trybami obniżonego poboru mocy to: PCON Power Control wybór trybu pracy PCONP Power Control for Peripherals odłączenie bloków per. od CLK INTWAKE Interrupt Wakeup przypisanie urządzenia wybudzającego PCON BOD Brown-Out Detector - nadzorca linii zasilającej układ, - reset układu przy 2.6 V lub 2,9 20
Obniżony pobór mocy - INTWAKE 21
Obniżony pobór mocy - PCONP Power Control for Peripherals PCONP głównie redukcja mocy statycznej pobieranej przez układy 22
RTC Real Time Clock - zegar czasu rzeczywistego Sprzętowy zegar-kalendarz taktowany z rezonatora 32768 Hz, licznik sekund, minut, godzin, dni, miesięcy, lat, możliwość wygenerowania alarmu przerwania możliwość pracy w trybie Power Down Mode 23
25 RTC Real Time Clock - zegar czasu rzeczywistego
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 26
27 SPI diagram blokowy
28 Peryferia SPI
Peryferia SPI Tryb Master Nadawanie/Odbiór danych w trybie master: 1. Ustawienie rejestru zegara SPI tak by pracował on z wymaganą szybkością, 2. Ustawienie danych do rejestru sterującego SPI, 3. Wpisanie danej do transmisji wpisanie rozpoczyna wysyłanie danych 4. Czekanie na ustawienie flagi SPIF w rejestrze SPI po całym cyklu wysyłania danych 5. Odczytania rejestru statusowego SPI 6. Odczytanie danych z rejestru danych SPI (nie wymagane) 7. Powrót do punktu trzeciego w wypadku potrzeby wysłania większej ilości danych Uwaga: Wysyłanie lub odczyt z rejestru danych SPI jest wymagane wyzerowanie flagi statusowej SPI 29
Peryferia SPI Tryb Slave Nadawanie/Odbiór danych w trybie slave: 1. Ustawienie rejestru kontrolnego SPI do wymaganych ustawień, 2. Wpisanie do rejestru SPI danych potrzebnych do wysłania (jeśli potrzeba) gdy nie występuje żadna operacja transferu po interfejsie SPI 3. Czekanie na ustawienie flagi SPIF flaga zostanie ustawiona po zaakceptowaniu ostatniej danej z transferu SPI, 4. Odczytanie rejestru statusowego SPI 5. Odczytanie z rejestru danych SPI odebranych informacji 6. Powrót do punktu 2. gdy wymagany jest odczyt kolejnych danych Uwaga: przesyłanie danych jest możliwe w momencie aktywowania linii SSEL 30
Peryferia SPI Rejestry Do konfiguracji i kontroli magistrali SPI wykorzystywanych jest 5 głównych rejestrów: S0SPCR Rejestr kontrolny SPI S0SPSR Rejestr statusowy SPI S0SPDR Rejestr Danych SPI dwukierunkowy rejestr umożliwiający nadanie i odczyt danych z magistrali SPI S0SPCCR Rejestr Zegara SPI w trybie master S0SPINT Rejestr Flag SPI wykorzystywany w przerwaniach 31
Peryferia SPI Rejestry Zawartość rejestru S0SPCR - SPI Control Register 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - BITS SP LS MS CL CA B - BitEnable określa wysyłaną ilość bitów danych: 0 wysyła 8 bitów danych, 1 wysyła ilość danych zdefiniowanych na pozycji BITS CPHA określa fazę próbkowania danych: 0 dane próbkowane na zboczu aktywującym, 1 dane próbkowane na zboczu deaktywującym CPOL Określa polaryzację sygnału zegarowego: 0 aktywowanie w stanie wysokim, 1 aktywowany w stanie niskim MSTR wybór trybu pracy Master/Slave: 0 Slave, 1 Master LSBF wybór kierunku przepływu danych: 0 bit MSB [7] pierwszy, 1 bit LSB [0] pierwszy SPIE wybór aktywacji przerwań od interfejsu SPI: 0 przerwania są wyłączone, 1 przerwanie jest generowane za każdym razem gdy flagi SPIF lub MODF są aktywne 32
Peryferia SPI Rejestry Zawartość rejestru S0SPCR - SPI Control Register 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - BITS SP LS MS CL CA B - 33
Peryferia SPI Rejestry Zawartość rejestru S0SPSR - SPI Status Register 31:8 7 6 5 4 3 2 1 0 S W R M A - ABRT Slave Abort: ustawiony w momencie gdy sygnał SSEL zostanie dezaktywowany zanim dane zostaną przesłane, MODF - Mode Fault : ustawiany w momencie gdy sygnał SSEL zostanie aktywowany gdy SPI działa w trybie master, ROVR Read overrun : ustawiany w momencie gdy dane są odczytywane przez interfejs SPI w momencie gdy nie zostały one odczytane z rejestru danych, WCOL - Write Collision: ustawiany w momencie gdy dana jest wpisana do SPI ale komunikacja po interfejsie SPI trwa nadal SPIF - Data Transfer Complete: ustawiany w momencie gdy transmisja za pomocą interfejsu SPI zostanie zakończona flaga zostaje wyzerowana w momencie dostępu do rejestru SPDR 34
Peryferia SPI Rejestry Zawartość rejestru S0SPDR - SPI Data Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Dane H DANE L Dane L dwukierunkowy rejestr odczytu i zapisu Dane H w momencie ustawienia w rejestrze SPCR bitu 2, i ustawianiu odpowiednio ilości bitów [8:11] możliwe jest wykorzystanie tej przestrzeni bitowej do wysyłania danych. Uwaga: w momencie ustawienia mniejszej ilości bitów niż 16, bity nie używane są zastępowane zerami (0) 35
Peryferia SPI Rejestry Zawartość rejestru S0SPCCR - SPI Clock Counter Register 31:8 31:8 F CLK = P CLK SPCCR0 7 6 5 4 3 2 1 0 Counter Uwaga: Zegar taktujący SPI (Peripheral Clock) jest ustawiany w rejestrze PCLKSEL0 w sekcji dla PCLK_SPI. 36
Peryferia SPI Rejestry Zawartość rejestru S0SPINT - SPI Interrupt Register 31:8 31:8 7:1 0 - I I SPI Interrupt Flag: Flaga przerwania od SPI, ustawiana jest w momencie gdy SPI generuje przerwanie, Zerowane w momencie wpisania 1 w ten bit. Uwaga: tylko i wyłącznie gdy SPI Interrupt BIT jest w stanie wysokim oraz przerwanie od SPI0 w VIC jest w włączone (stan wysoki) 37
SSP
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 39
40 PrimeCell SSP diagram blokowy
Peryferia SSP PIN SPI SSI Microwire SCK0/1 SCK CLK S K SSEL0/1 SSEL FS CS MISO0/1 MISO DR(M) SI(M) DX(S) SO(S) MOSI0/1 MOSI DX(S) SO(S) DR(M) SI(M) Serial Clock sygnał zegarowy używany do synchronizacji urządzeń podpiętych pod magistralę, urzadzenie w trybie MASTER generuje ten sygnał Frame Sync/Slave Select sygnał generowany na krótko przed wywołaniem transmisji (SSPn) Master In Slave Out z Slave do Master, W momencie wyboru urządzenia jako Slave i bir SSEL/FS nie jest w stanie wysokim, Slave nie będzie nadawać danych. Master Out Slave In dane wysyłane od mastera do slave a 41
Peryferia - SSP Texas Instruments Synchronous Serial 42 Texas Instruments Synchronous Serial Frame Format
Peryferia - SSP SPI Format: CPOL=0 i CPHA=0 43
Peryferia - SSP SPI Format: CPOL=1 and CPHA=0 44
Peryferia - SSP SPI Format: CPOL=1 and CPHA=1 45
Peryferia - SSP Microwire Frame Format 46 8 bitowe słowo nadawcze 4 16 bitów danych odbiorczych Całkowita ramka od 13 do 25 bitów
Peryferia SSP Rejestry Do konfiguracji i kontroli magistrali SSP wykorzystywanych jest 10 głównych rejestrów: CR0 Control Register 0: Rejestr kontroli magistrali SSP CR1 Control Register 1: Rejestr kontroli magistrali SSP DR Data Register: Rejestr danych SR Status Register: Rejestr statusowy CPSR Clock Prescale Register: Rejestr Preskalera IMSC Interrupt Mask Set and Clear Register: Rejestr Przerwań RIS Raw Interrupt Status Register MIS Masked Interrupt Status Register ICR SSPICR Interrupt Clear Register DMACR DMA Control Register: Rejestr kontroli DMA dla kolejki Rx i Tx FIFO 47
Peryferia SSP Rejestry Zawartość rejestru SSP0DR - SSP Data Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DANE Dane dwukierunkowy rejestr odczytu i zapisu 48
Peryferia SSP Rejestry Zawartość rejestru SSP0DR - SSP Data Register 31:16 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 DANE Dane dwukierunkowy rejestr odczytu i zapisu Zawartość rejestru SSP0CPSR - SPI Clock Prescale Register 31:8 31:8 7 6 5 4 3 2 1 0 CPSDVSR Uwaga: CPSDVSR min = 2 49
Peryferia SSP Rejestry Zawartość rejestru SSP0CR0 - SSP Control Register 0 31:16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SCR CA CL FRF DSS DSS - Data Size Select: wybór wielkości ramki danych 0011: 4bit 1111: 16bit-ów FRF - Frame Format: Wybór trybu transmisji danych: 00 SPI, 01 TI, 10 Microwire, 11 nie wspierana CPOL Określa polaryzację sygnału zegarowego: 0 aktywowanie w stanie wysokim, 1 aktywowany w stanie niskim CPHA Określa fazę próbkowania danych: 0 dane próbkowane na zboczu aktywującym, 1 dane próbkowane na zboczu deaktywującym SCR Serial Clock Rate: CPSDVSR znajduje się w rejestrze SSP0CPSR 50 F CLK = P CLK (CPSDVSR [SCR+1])
Peryferia SSP Rejestry Zawartość rejestru SSP0CR1 - SSP Control Register 1 31:8 7 6 5 4 3 2 1 0 - SO MS S L LBM - Loop Back Mode: Dane pobierane są z wyjścia do wejścia i z wejścia do wyjścia. SSE - SSP Enable: 0 kontroler SSP jest wyłączony, 1 kontroler SSP będzie komunikować się z innymi urządzeniami na magistrali. Wszystkie inne rejestry powinny zostać ustawione, zanim na ten bit zostanie wpisana 1 MS Master/Slave Mode: wybór trybu pracy Master/Slave: 0 Master, 1 Slave!! SOD Slave Output Disable: przez ustawienie w stan wysoki istnieje możliwość blokowania wysyłania danych w trybie Slave (MS 1) 51
Peryferia SSP Rejestry Zawartość rejestru SSP0CSR - Status Register 31:8 7 6 5 4 3 2 1 0 - BS RF RN TN TF TFE Transmit FIFO Empty: flaga ustawiana jest w momencie gdy kolejka FIFO do transmisji jest pusta TNF Transmit FIFO Not Full: flaga jest w stanie niskim gdy kolejka Tx FIFO jest pełna, stan wysoki sygnalizuje że nie jest pełna RNE Receive FIFO Not Empty: flaga jest w stanie niskim gdy kolejka FIFO do odbioru danych jest pełna, stan wysoki sygnalizuje że nie jest pełna RFF Receive FIFO Full: flaga ustawiana jest w momencie gdy kolejka FIFO do odbioru jest pełna BSY Busy: flaga jest zerowa w trybie IDLE, a ustawiona w momencie wysyłania/odbioru danych lub/i Tx FIFO NIE jest PUSTA 52 Uwaga: Rejestr służy tylko do odczytu flag statutowych
Peryferia SSP Rejestry Zawartość rejestru SSPnIMSC - Interrupt Mask Set/Clear Register 31:8 7 6 5 4 3 2 1 0 - TX RX RT RO RORIM uaktywnienie przerwań gdy nastąpi przepełnienie kolejki odbioru Rx FIFO, a następna dana nadpisze już istniejące RTIM uaktywnienie przerwań w momencie nastąpienia przekroczenia czasu przy odbiorze danych. Zdarzenie, to nastąpi w momencie gdy kolejka odbioru Rx FIFO nie jest pusta, a przekroczony zostanie czas odbioru danych. RXIM uaktywnienie przerwań w momencie gdy kolejka odbioru Rx FIFO jest co najmniej w połowie pełna TXIM uaktywnienie przerwań w momencie gdy kolejka transmisji Tx FIFO jest co najmniej w połowie pusta 53 Uwaga: Maskowanie oznacza aktywację obsługi przerwań!!
Peryferia SSP Rejestry SSPnIMSC - Interrupt Mask Set/Clear Register 31:8 7 6 5 4 3 2 1 0 - TX RX RT RO Zawartość rejestru SSP0ICR - Interrupt Clear Register 31:8 7 6 5 4 3 2 1 0 - RT RO 54 RORIM Zerowanie przerwania w momencie gdy nastąpi przepełnienie kolejki odbioru Rx FIFO, a następna dana nadpisze już istniejące RTIM Zerowanie przerwania w momencie gdy nastąpieni przekroczenie czasu przy odbiorze danych. Zdarzenie, to nastąpi w momencie gdy kolejka odbioru Rx FIFO nie jest pusta, a przekroczony zostanie czas odbioru danych.
55 Dziękuję za uwagę