Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałMarta Sowińska Został zmieniony 6 lat temu
1
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Mikrokontrolery STM32 (z rdzeniem ARM) (na podstawie dokumentacji STMicroelectronics) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
2
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
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. Zygmunt Kubiak
3
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Zygmunt Kubiak
4
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Zygmunt Kubiak
5
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
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 Zygmunt Kubiak
6
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Przebiegi czasowe Zygmunt Kubiak
7
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Analogowy watchdog Zygmunt Kubiak
8
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Opóźnienie konwersji wtrącanej Zygmunt Kubiak
9
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Minimalny czas konwersji w trybie szybkim Zygmunt Kubiak
10
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Schemat blokowy multi ADC Zygmunt Kubiak
11
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Schemat blokowy multi ADC Zygmunt Kubiak
12
Mikrokontrolery STM32 Przetworniki ADC Wprowadzenie
Sensor temperatury (-40 do +125 °C, dokładność ±1,5 °C) Zalecany czas próbkowania -17,1 µs Zygmunt Kubiak
13
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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 Zygmunt Kubiak
14
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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 Zygmunt Kubiak
15
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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 Zygmunt Kubiak
16
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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 Zygmunt Kubiak
17
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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)) Zygmunt Kubiak
18
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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)) Zygmunt Kubiak
19
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
Podstawowy tryb pracy jednoczesnej dwóch ADC (ang. Dual regular simultaneous mode) Przykład pomiaru mocy Zygmunt Kubiak
20
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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 Zygmunt Kubiak
21
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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) Zygmunt Kubiak
22
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
Podwójny naprzemienny tryb wyzwalania ADC (ang. Dual alternate trigger mode) 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. Zygmunt Kubiak
23
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
Podwójny, połączony tryb podstawowy/jednoczesny wstrzykiwany tryb ADC (ang. Dual combined regular/ simultaneous ADC mode) Wstrzyknięte kanały przetwarzane są symultanicznie Zygmunt Kubiak
24
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
Tryb podwójny, kombinowany: jednoczesne wstrzykiwanie + przeplot (ang. Dual combined: injected simultaneous + interleaved mode) Zygmunt Kubiak
25
Mikrokontrolery STM32 Przetworniki ADC Tryby pracy
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. Zygmunt Kubiak
26
Mikrokontrolery STM32 Porty WE/WY (GPIO)
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 Zygmunt Kubiak
27
Mikrokontrolery STM32 Porty WE/WY (GPIO)
Organizacja wejść: „pływające” (bez podciągania), pull-up/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. Zygmunt Kubiak
28
Mikrokontrolery STM32 Porty WE/WY (GPIO)
Podstawowa struktura linii portu we/wy Zygmunt Kubiak
29
Mikrokontrolery STM32 Porty WE/WY (GPIO)
Obwody wejściowe Zygmunt Kubiak
30
Mikrokontrolery STM32 Porty WE/WY (GPIO)
Konfiguracja wejścia analogowego o wysokiej impedancji Zygmunt Kubiak
31
Mikrokontrolery STM32 Kontroler DMA
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. Zygmunt Kubiak
32
Mikrokontrolery STM32 Kontroler DMA
Schemat blokowy DMA Zygmunt Kubiak
33
Mikrokontrolery STM32 Kontroler DMA
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ęć. Zygmunt Kubiak
34
Mikrokontrolery STM32 Kontroler DMA
Zygmunt Kubiak
35
Mikrokontrolery STM32 Kontroler DMA
Tryb peryferia do pamięci Zygmunt Kubiak
36
Mikrokontrolery STM32 Kontroler DMA
Tryb pamięć do układów peryferyjnych Zygmunt Kubiak
37
Mikrokontrolery STM32 Kontroler DMA
Tryb pamięć do pamięci Zygmunt Kubiak
38
Mikrokontrolery STM32 Kontroler DMA
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 Zygmunt Kubiak
39
Mikrokontrolery STM32 Kontroler DMA
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 Zygmunt Kubiak
40
Mikrokontrolery STM32 Kontroler DMA
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 Zygmunt Kubiak
41
Mikrokontrolery STM32 Kontroler DMA
Tryby pracy Zygmunt Kubiak
42
Mikrokontrolery STM32 Kontroler DMA
Priorytety DMA Najwyższy (ang. very high priority) Wysoki (ang. high priority) Średni (ang. medium priority) Niski (ang. low priority) Zygmunt Kubiak
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.