Instytut Informatyki Politechnika Poznańska
12 bitowy przetwornik ADC Metoda SAR (ang. successive approximation) Konfigurowalna rozdzielczość: 12b, 10b, 8b,6b Do 19 kanałów analogowych pomiary z 16 źródeł zewnętrznych, dwóch wewnętrznych oraz kanał VBAT Wyrównanie wyniku do lewej lub prawej 16b rej. Analogowy watchdog wykrywa przekroczenie zdefiniowanych przez użytkownika limitów napięcia wejściowego. Zakres napięć wejściowych: VREF- <= VIN <= VREF+ Wymagane napięcia zasilania ADC: 2,4V do 3,6V dla pełnej prędkości i większe od 1,8 przy małej prędkości. 2
3
4
Przełączanie do trybu praca/obniżony pobór energii (kilka µa) bit ADON Dwa zegary systemowe: ADCCLK praca przetwornika, sterowany z preskalera (APB2/2, /4, /6, lub /8) Zegar interfejsu cyfrowego równy APB2 16 multipleksowanych kanałów, które mogą być organizowane w dwie grupy: : praca podstawowa (do 16 konwersji) i wstrzykiwanie (do 4 konwersji) Kanał sensora temperatury, kanały napięć VREFINT i VBAT 5
Przebiegi czasowe 6
Analogowy watchdog 7
Opóźnienie konwersji wtrącanej 8
Minimalny czas konwersji w trybie szybkim 9
Schemat blokowy multi ADC 10
Schemat blokowy multi ADC 11
Sensor temperatury (-40 do +125 C, dokładność ±1,5 C) Zalecany czas próbkowania -17,1 µs 12
Skan wielokanałowy tryb pojedynczej konwersji Sekwencer ADC pozwala skonfigurować dowolny ciąg pomiarów do 16 kanałów z różnymi czasami próbkowania, w dowolnej kolejności Oszczędność oprogramowania Pomiar parametrów ze sobą powiązanych 13
Pojedynczy kanał tryb ciągłej konwersji Tryb ciągłych pomiarów z jednego kanału na czas nieokreślony praca w tle, bez ingerencji procesora Dodatkowo może być wykorzystany kanał DMA (w trybie kołowym ), co zmniejsza obciążenie CPU Metoda obsługi: DMA i przerwania Metoda stosowana, np. w procesach regulacji ciągłej 14
Wielokanałowy skan tryb ciągłej konwersji Sekwencer umożliwia skonfigurowanie dowolnego ciągu maksymalnie 16 kanałów, z różnymi czasami próbkowania Tryb analogiczny do trybu pojedynczego cyklu z tym, że sekwencja jest powtarzana aż do zatrzymania 15
Tryb konwersji wstrzykiwanej (ang. Injected conversion mode) Tryb jest stosowany w przypadku uruchamiania konwersji przez zdarzenie zewnętrzne lub program Wstrzykiwana grupa ma pierwszeństwo przed podstawowym cyklem przetwarzania 16
Podstawowy tryb pracy jednoczesnej dwóch ADC (ang. Dual regular simultaneous mode) Tryb jednoczesnej pracy dwóch przetworników: ADC1 master i ADC2 slave, które są synchronizowane wewnętrznie Przykład: ADC1 konwertuje sekwencję 16 kanałów od 15 do 0, a ADC2 sekwencję kanałów od 0 do 15 (oddzielne sekwecery) Zast. potrzeba jednoczesności pomiarów (np. moc = u(t) x i(t)) 17
Podstawowy tryb pracy jednoczesnej dwóch ADC (ang. Dual regular simultaneous mode) Tryb jednoczesnej pracy dwóch przetworników: ADC1 master i ADC2 slave, które są synchronizowane wewnętrznie Przykład: ADC1 konwertuje sekwencję 16 kanałów od 15 do 0, a ADC2 sekwencję kanałów od 0 do 15 (oddzielne sekwecery) Zast. potrzeba jednoczesności pomiarów (np. p(t) = u(t) x i(t)) 18
Podstawowy tryb pracy jednoczesnej dwóch ADC (ang. Dual regular simultaneous mode) Przykład pomiaru mocy 19
Tryb pracy jednoczesnej dwóch ADC z szybkim przeplotem (ang. Dual fast interleaved mode) Tryb umożliwia zwiększenie prędkości przetwarzania z jednego kanału zalecane użycie DMA, zamiast przerwań 14 MHz maksymalna częstotliwość zegara ADC (1 M próbek) Wyniki przechowywane są w rejestrze danych ADC1 (format 32 bity) Przykład: 14 MHz/7 = 2 MHz częstotliwość próbkowania 20
Tryb pracy jednoczesnej dwóch ADC z wolnym przeplotem (ang. Dual slow interleaved mode) Przetwarzanie w cyklu 14 okresów zegara ADC zalecane użycie DMA, zamiast przerwań Przykład: 14 MHz/7 = 2 MHz częstotliwość próbkowania Wyniki przechowywane są w rejestrze danych ADC1 (format 32 bity) 21
Podwójny naprzemienny tryb wyzwalania ADC alternate trigger mode) (ang. Dual Tryb ten można wykorzystywać jedynie do wstrzykiwania grup kanałów przełączanych przez to samo zewnętrzne źródło. Maksymalna liczba kanałów w grupie wynosi 4 dla każdego ADC. 22
Podwójny, połączony tryb podstawowy/jednoczesny wstrzykiwany tryb ADC (ang. Dual combined regular/ simultaneous ADC mode) Wstrzyknięte kanały przetwarzane są symultanicznie 23
Tryb podwójny, kombinowany: jednoczesne wstrzykiwanie + przeplot (ang. Dual combined: injected simultaneous + interleaved mode) 24
Tryb podwójny, kombinowany: jednoczesne wstrzykiwanie + przeplot (ang. Dual combined: injected simultaneous + interleaved mode) Przykład: Metoda mieszana może być stosowana w zasilaczach awaryjnych UPS (ang. uninterrruptible power suply) napięcie monitorowane jest w trybie z przeplotem natomiast energia (pomiar napięcia i prądu) pobierana przez obciążenie w trybie jednoczesnego podwójnego wstrzykiwania. 25
Porty WE/WY (GPIO ang. general-purpose I/O) Każdy port posiada: Cztery 32-bitowe rejestry konfiguracyjne (GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR, GPIOx_PUPDR) 32-bitowy rejestr set/reset (GPIOx_BSRR) Dwa 32-bitowe rejestry alternatywnego wyboru funkcji (GPIOx_AFRH, GPIOx_AFRL) Do 16 we/wy pod kontrolą Organizacja wyjść: push-pull lub open drain + pull-up/down Wyjście danych z rejestru danych (GPIOx_ODR) lub układów peryferyjnych Selekcja prędkości dla każdego we/wy 26
Organizacja wejść: pływające (bez podciągania), pullup/down, analog Dane we zapisywane do rejestru wejściowego danych (GPIOx_IDR) lub do układów peryferyjnych Typowy prąd obciążenia (wpływający/wypływający) wyjścia - 8mA; możliwy jest tryb, w którym max prąd wpływający może wynosić 20mA. Uwaga suma prądów wszystkich wyprowadzeń, prądu CPU oraz pozostałych układów wewnętrznych mikrokontrolera nie może przekroczyć max wartości dopuszczalnej około 150mA. 27
Podstawowa struktura linii portu we/wy 28
Obwody wejściowe 29
Konfiguracja wejścia analogowego o wysokiej impedancji 30
DMA (ang. Direct memory access) układ bezpośredniego dostępu do pamięci. Szybki transfer danych między peryferiami i pamięcią lub między pamięcią a pamięcią bez pośrednictwa CPU. Dwa kontrolery DMA mają w sumie 16 strumieni (po 8 każdy), każdy dedykowany jest do zarządzania żądaniami dostępu do pamięci od jednego lub więcej układów peryferyjnych. Każdy strumień może zawierać do 8 kanałów (żądań) i każdy ma arbitra do obsługi priorytetów żądań kierowanych do DMA. Możliwość programowania liczby danych, transferowanych od 1 do 65535 Transfer układów peryferyjnych liczba danych nie jest znana, transfer jest kontrolowany źródłowe lub docelowe urządzenie peryferyjne, które generuje sygnał końca. 31
Schemat blokowy DMA 32
Możliwe transakcje Układ peryferyjny do pamięci Pamięć do układu peryferyjnego Pamięć do pamięci Kontroler DMA zawiera dwa porty ABH: port ABH pamięci, podłączony do pamięci i port AHB peryferyjny, łączony z peryferiami Port ABH slave jest wykorzystany do programowania kontrolera DMA (obsługuje tylko 32 bitowy dostęp). W przykładzie na następnym slajdzie, port ABH układów peryferyjnych kontrolera DMA1 nie jest włączony i dlatego strumienie DMA2 są w stanie wykonać transfery pamięćpamięć. 33
34
Tryb peryferia do pamięci 35
Tryb pamięć do układów peryferyjnych 36
Tryb pamięć do pamięci 37
Tryb pracy Po włączeniu danego trybu (ustawienie bitu EN w rej. DMA_SxCR) niezwłocznie rozpoczyna się wypełnianie przez źródło stosu FIFO Przy każdym żądaniu od ud urządzenia docelowego następuje pobieranie danych z FIFO W trybie bezpośrednim (gdy wartość DMDIS w rej DMA_SxFCR ma wartość 0 ) zapełnienie FIFO nie jest uwzględniane 38
Tryb pracy Po włączeniu danego trybu (ustawienie bitu EN w rej. DMA_SxCR) niezwłocznie rozpoczyna się wypełnianie przez źródło stosu FIFO Przy każdym żądaniu od ud urządzenia docelowego następuje pobieranie danych z FIFO W trybie bezpośrednim (gdy wartość DMDIS w rej DMA_SxFCR ma wartość 0 ) zapełnienie FIFO nie jest uwzględniane 39
Tryby pracy Tryb przesyłania porcjowego(ang. burst mode) Kontroler DMA, jęśli ma do przesłania dane, zajmuje magistralę, nie dopuszczając do niej CPU Zaleta: większa szybkość transferu danych Wada: blokowanie CPU na czas transferu, w niektórych przypadkach nie do zaakceptowania Tryb zajmowania cykli magistrali (ang. bus stealing) Podkradanie cykli magistrali przez kontroler DMA. Spowolnienie pracy CPU ale nie blokowanie Gdy DMA zgłosi potrzebę przesłania danych, to CPU przed rozpoczęciem cyklu magistrali zostaje wstrzymany. DMA transferuje jedno słowo poczym oddaje kontrolę magistrali do CPU Tryb częściej wykorzystywany w mikrokontrolerach 40
Tryby pracy 41
Priorytety DMA Najwyższy (ang. very high priority) Wysoki (ang. high priority) Średni (ang. medium priority) Niski (ang. low priority) 42