Dwukanałowy wzmacniacz fazoczuły sterowany cyfrowo
Transcript of Dwukanałowy wzmacniacz fazoczuły sterowany cyfrowo
Procesory osadzone
ETD 7211
Przydatne funkcje układu, peryferia
W6 – 13.11.2019
Peryferia – przetwornik ADC - na przykładzie LPC2368
2
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/2N = 3/1024 = 2,93 mV
Peryferia – przetwornik DAC - na przykładzie LPC2368
3
Przetwornik DAC
N = 10 bitów, VREF = 3,3V,
1 – 2,5µs
700 – 350 µA
Peryferia – port szeregowy RS232 - na przykładzie LPC2368
4
• 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
Peryferia – port szeregowy RS232 - UART1 na przykładzie LPC2368
UART – Universal Asynchronous Receiver Transmitter
0 1 2 3 4 5 6 7 P 3,3 V
+8 V
-8 V
stan IDLE
bit startu „0”
5÷8 – bitów danych
bit parzystości
bity stopu:
1, 2 lub 1.5
LPC2368:
UART0/2/3
UART1 – możliwość budowy modemu 5
Zegar systemowy CLK
6
Źródło sygnału: generator sygnałowy, rezonator kwarcowy
częstotliwość sygnału zegarowego: 1 MHz – 24 MHz
kilka pF
Zadanie: przyspieszenie dostępu do pamięci FLASH
MAM – Memory Acceleration Module
8
Rdzeń ARM
Pamięć FLASH
Interfejs
Bufory
128
Da
ne
15 adres
Magistrala
Local Bus
• 128 bitowa organizacja pamięci
• odczyt czterech 32-bitowych
rozkazów ARM lub osiem 16-
bitowych Thumb
• 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
• Data Buffer
• Prefetch Buffer
• Branch Tail Buffer
MAM
TRYB 0
MAM – Memory Acceleration Module
9
Rdzeń ARM
FLASH
TRYB 1 TRYB 2
MAM
Rdzeń ARM
FLASH
MAM
Rdzeń ARM
FLASH
Ko
d s
ekw
en
cyjn
y
Dan
e i s
ko
ki
Za
rów
no
da
ne i k
od
MAM tryby pracy:
• całkowicie wyłączony (tylko Flash), częściowo włączony (Flash +
MAM), całkowicie załączony (MAM)
MAM – Memory Acceleration Module
10
MAM Control Register
MMCR
MAM Timing Register
MAMTIM
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
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
12
Code Read Protection – CRP - ochrona systemu, sprzętu
13
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
512 kB ON-CHIP NON-VOLATILE MEMORY
- w skrócie wewnętrzna pamięć FLASH
32 kB ON-CHIP STATIC RAM
- w skrócie wewnętrzna pamięć RAM
BOOT ROM AND FLASH
16
MEMMAP - Memory mapping - mapowanie pamięci
17
Obniżony pobór mocy
18
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
Obniżony pobór mocy
19
Power Down Deep Power-Down
- sygnał zegarowy całkowicie wyłączony
- po wznowieniu działania, układ PLL oraz dzielniki sygnałów muszą zostać
ponownie skonfigurowane
- odłączone zostaje napięcia zasilające
interfejsy logiczne
- ekstremalnie niski pobór prądu
- z trybu power down mikrokontroler
mogą wyprowadzić jedynie te bloki,
które do działania nie wymagają
sygnału zegarowego
- wznowienie działania: RTC lub RESET
zewnętrzny
Obniżony pobór mocy - rejestry kontrolno-sterujące
20
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
Obniżony pobór mocy - INTWAKE
21
…
Obniżony pobór mocy - PCONP – Power Control for Peripherals
22
PCONP – głównie redukcja
mocy statycznej pobieranej
przez układy
RTC – Real Time Clock - zegar czasu rzeczywistego
23
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
RTC – Real Time Clock - zegar czasu rzeczywistego
25
Peryferia – SPI Serial Peripheral Interface - na przykładzie LPC2368
26
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…
SPI – diagram blokowy
27
Peryferia – SPI
28
Peryferia – SPI Tryb Master
29
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
Peryferia – SPI Tryb Slave
30
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
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
32
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
- 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
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31:16
Peryferia – SPI Rejestry
• Zawartość rejestru S0SPCR - SPI Control Register
33
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
- BITS SP LS MS CL CA B -
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31:16
Peryferia – SPI Rejestry
• Zawartość rejestru S0SPSR - SPI Status Register
7 6 5 4 3 2 1 0 31:8
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
35
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
Dane H DANE L 31:16
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)
Peryferia – SPI Rejestry
• Zawartość rejestru S0SPCCR - SPI Clock Counter
Register 7 6 5 4 3 2 1 0 31:8
Counter 31:8
𝐹𝐶𝐿𝐾 =𝑃𝐶𝐿𝐾
SPCCR0
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 7:1 0 31:8
I 31:8
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
39
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
PrimeCell SSP – diagram blokowy
40
Peryferia – SSP
SCK0/1 SCK CLK S K
41
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
PIN SPI SSI Microwire
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)
Peryferia - SSP Texas Instruments Synchronous Serial
Texas Instruments Synchronous Serial Frame Format
42
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
• 8 bitowe słowo nadawcze
• 4 – 16 bitów danych odbiorczych
• Całkowita ramka od 13 do 25 bitów 46
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
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
DANE 31:16
Dane – dwukierunkowy rejestr odczytu i zapisu
48
Peryferia – SSP Rejestry
• Zawartość rejestru SSP0DR - SSP Data Register
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
DANE 31:16
Dane – dwukierunkowy rejestr odczytu i zapisu
• Zawartość rejestru SSP0CPSR - SPI Clock
Prescale Register
7 6 5 4 3 2 1 0 31:8
CPSDVSR 31:8
Uwaga: CPSDVSR𝒎𝒊𝒏 = 𝟐
49
Peryferia – SSP Rejestry
• Zawartość rejestru SSP0CR0 - SSP Control Register 0
50
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
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
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31:16
𝐹𝐶𝐿𝐾 =𝑃𝐶𝐿𝐾
(CPSDVSR × [SCR+1])
Peryferia – SSP Rejestry
• Zawartość rejestru SSP0CR1 - SSP Control Register 1
51
7 6 5 4 3 2 1 0 31:8
- 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)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 31:16
31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31:16
S MS SO
Peryferia – SSP Rejestry
7 6 5 4 3 2 1 0 31:8
- TN BS RF RN TF
• Zawartość rejestru SSP0CSR - Status Register
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
Uwaga: Rejestr służy tylko do odczytu flag statutowych
52
Peryferia – SSP Rejestry
7 6 5 4 3 2 1 0 31:8
- RT TX RX RO
• Zawartość rejestru SSPnIMSC - Interrupt Mask
Set/Clear Register
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
Uwaga: Maskowanie oznacza aktywację obsługi przerwań!! 53
Peryferia – SSP Rejestry
7 6 5 4 3 2 1 0 31:8
- RT RO
• Zawartość rejestru SSP0ICR - Interrupt Clear
Register
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. 54
7 6 5 4 3 2 1 0 31:8
- RT TX RX RO
SSPnIMSC - Interrupt Mask Set/Clear Register
Dziękuję za uwagę
55