Seria STM32L5 – wysokie bezpieczeństwo przy niskim zużyciu energii
“
Dane techniczne:
- Nazwa produktu: RM0438 Instrukcja obsługi
- Wersja: Rev 8
- Strony: od 1 do 2187
- Data wydania: czerwiec 2025 r.
- Producent: www.st.com
Informacje o produkcie:
Szczegółowe informacje na temat RM0438 można znaleźć w podręczniku referencyjnym
architektura pamięci i magistrali, architektura bezpieczeństwa TrustZone,
organizacja pamięci, wbudowana pamięć SRAM, pamięć flashview, uruchomić
konfiguracja i bezpieczeństwo systemu.
Instrukcje dotyczące stosowania produktu:
Pamięć i architektura magistrali:
Architektura systemu obejmuje szybką magistralę C, wolną magistralę C, magistralę S,
Magistrala DMA, magistrala DMA kontrolera SDMMC i magistrala BusMatrix.
Architektura bezpieczeństwa TrustZone:
Wyjaśnia domyślny stan zabezpieczeń TrustZone i TrustZone
klasyfikacja peryferyjna.
Organizacja pamięci:
Opisuje mapę pamięci, adresy graniczne rejestrów i
organizacja wbudowanej pamięci SRAM.
Wbudowana pamięć SRAM:
Szczegóły Kontrola parzystości SRAM2, ochrona zapisu, ochrona odczytu,
operacje kasowania.
Pamięć flash ponadview:
Zapewnia ponadview pamięci flash używanej w systemie.
Konfiguracja rozruchu:
Obejmuje ustawienia konfiguracji rozruchu systemu.
Bezpieczeństwo systemu:
Wprowadzenie do środków bezpieczeństwa systemu.
Najczęściej zadawane pytania (FAQ):
P: Gdzie mogę znaleźć informacje o resetowaniu rejestru
wartości?
A: Wartości resetowania rejestru są szczegółowo opisane w sekcji 1.3
podręcznik.
P: Czym jest architektura bezpieczeństwa TrustZone?
A: Architektura bezpieczeństwa TrustZone została wyjaśniona w sekcji 2.2
instrukcji.
P: Jak skonfigurować ustawienia rozruchu?
A: Instrukcje dotyczące konfiguracji rozruchu można znaleźć w sekcji 3
instrukcji.
„`
RM0438 Instrukcja obsługi
Zaawansowane 32-bitowe mikrokontrolery serii STM5L32 oparte na architekturze Arm®
Wstęp
Niniejszy podręcznik jest przeznaczony dla programistów aplikacji. Zawiera kompletne informacje na temat korzystania z pamięci i urządzeń peryferyjnych mikrokontrolerów STM32L552xx i STM32L562xx. Mikrokontrolery STM32L552xx i STM32L562xx należą do serii mikrokontrolerów STM32L5x2, różniących się rozmiarem pamięci, obudową i urządzeniami peryferyjnymi. Informacje dotyczące zamówień oraz charakterystyki mechanicznej i elektrycznej urządzenia znajdują się w odpowiednich kartach katalogowych. Informacje na temat rdzenia Arm® Cortex®-M33 można znaleźć w podręczniku technicznym Cortex®-M33. Mikroprocesory STM32L552xx i STM32L562xx wykorzystują najnowocześniejszą, opatentowaną technologię ST.
Powiązane dokumenty
· Podręcznik techniczny Cortex®-M33 dostępny na stronie http://infocenter.arm.com · Karty katalogowe STM32L552xx i STM32L562xx · Arkusze erraty STM32L552xx i STM32L562xx
Czerwiec 2025
RM0438 Wersja 8
1/2187
www.st.com
1
Zawartość
Zawartość
RM0438
1
Konwencje dokumentacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.1 Informacje ogólne . ...
1.2 Wykaz skrótów rejestrów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
1.3 Wartość resetu rejestru . ...
1.4 Słownik . ...
1.5 Dostępność urządzeń peryferyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
2
Architektura pamięci i magistrali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.1 Architektura systemu . ...
2.1.1 Szybka magistrala C . ...
2.1.2 Powolna magistrala C . ...
2.1.3 Magistrala S. ...
2.1.4 Magistrala DMA . ...
2.1.5 Magistrala DMA kontrolera SDMMC . ...
2.1.6 Magistrala . ...
2.2 Architektura bezpieczeństwa TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.2.1 Domyślny stan zabezpieczeń TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.2.2 Klasyfikacja peryferyjna TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.3 Organizacja pamięci . ...
2.3.1 Wprowadzenie . ...
2.3.2 Mapa pamięci i adresy graniczne rejestrów . . . . . . . . . . . . . . . . . . . . . . . 87
2.4 Wbudowana pamięć SRAM . ...
2.4.1 Kontrola parzystości SRAM2 . ...
2.4.2 Ochrona przed zapisem SRAM2 . ...
2.4.3 Ochrona odczytu pamięci SRAM2 . ...
2.4.4 Kasowanie pamięci SRAM2 . ...
2.5 Pamięć Flash ponadview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
3
Konfiguracja rozruchu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4
Bezpieczeństwo systemu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.1 Wprowadzenie . ...
4.2 Kluczowe funkcje bezpieczeństwa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2/2187
RM0438 Wersja 8
RM0438
Zawartość
4.3 4.4 4.5 4.6
4.7 4.8
4.9 4.10 4.11 4.12 4.13
Bezpieczna instalacja . ...
4.4.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4.4.2 Unikalny wpis rozruchowy i BOOT_LOCK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.4.3 Niezmienny korzeń zaufania w pamięci flash systemu . . . . . . . . . . . . . . . . . . . . . . . . 102
Bezpieczna aktualizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Izolacja zasobów przy użyciu TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.6.1 Wprowadzenie . ... 103 4.6.2 Przydział pamięci i urządzeń peryferyjnych za pomocą IDAU/SAU . . . . . . . . . . . . . . . . 103 4.6.3 Przydział pamięci i urządzeń peryferyjnych za pomocą GTZC . . . . . . . . . . . . . . . . . . . . . . 8 33 Zarządzanie zabezpieczeniami w urządzeniach peryferyjnych obsługujących TrustZone . ... 104 4.6.4 Dezaktywacja zabezpieczeń TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Inne izolacje zasobów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
4.7.1 Izolacja czasowa z wykorzystaniem bezpiecznej ochrony skóry (HDP) . . . . . . . . . . . . . 117
Bezpieczne wykonanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
4.8.1 Wprowadzenie . ... 118 4.8.2 Tampwykrywanie i reagowanie na . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Bezpieczne przechowywanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.9.1 Wprowadzenie . ...
Silniki kryptograficzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.10.1 Wprowadzenie . ... . . . . . . . . 121
Cykl życia produktu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.11.1 Zarządzanie cyklem życia z ochroną odczytu (RDP) . . . . . . . . . . . . . 124 4.11.2 Zalecane ustawienia bajtów opcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Debugowanie z kontrolą dostępu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.12.1 Ochrona przed debugowaniem z ochroną odczytu (RDP) . . . . . . . . . . . . . . . . . . . . 125
Ochrona własności intelektualnej oprogramowania i wspólny rozwój 126
RM0438 Wersja 8
3/2187
54
Zawartość
RM0438
4.13.1
4.13.2 4.13.3
Ochrona własności intelektualnej oprogramowania z zabezpieczeniem odczytu (RDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Ochrona własności intelektualnej oprogramowania za pomocą OTFDEC . . . . . . . . . . . . 127
Inne zabezpieczenia własności intelektualnej oprogramowania . . . . . . . . . . . . . . . . . . . 129
5
Kontroler Global TrustZone® (GTZC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.1 Wprowadzenie do GTZC . ...
5.2 Główne cechy GTZC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.2.1 Architektura systemu GTZC TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.3 Opis funkcjonalny GTZC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.3.1 Schemat blokowy GTZC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.3.2 Definicja nielegalnego dostępu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.3.3 Kontroler bezpieczeństwa TrustZone (TZSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.3.4 Kontroler ochrony pamięci – oparty na blokach (MPCBB) . . . . . . . . . . . . . . 134
5.3.5 Nielegalny kontroler dostępu TrustZone (TZIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.6 Stan włączania/resetowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.3.7 Żądania DMA . ...
5.4 Wydarzenia GTZC . ...
5.5 Rejestry GTZC_TZSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
5.5.1 Rejestr sterujący GTZC_TZSC (GTZC_TZSC_CR) . . . . . . . . . . . . . . . . . . . 136
5.5.2
Rejestr bezpiecznej konfiguracji GTZC_TZSC 1 (GTZC_TZSC_SECCFGR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.5.3
Rejestr bezpiecznej konfiguracji GTZC_TZSC 2 (GTZC_TZSC_SECCFGR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.5.4
Rejestr konfiguracji uprawnień GTZC_TZSC 1 (GTZC_TZSC_PRIVCFGR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.5.5
Rejestr konfiguracji uprawnień GTZC_TZSC 2 (GTZC_TZSC_PRIVCFGR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.5.6
GTZC_TZSC pamięć zewnętrzna x rejestr znaku wodnego niezabezpieczonego 1 (GTZC_TZSC_MPCWMxANSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.5.7
Pamięć zewnętrzna GTZC_TZSC x niezabezpieczony rejestr znaku wodnego 2 (GTZC_TZSC_MPCWMxBNSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.5.8 Mapa rejestrów GTZC_TZSC i wartości resetowania . . . . . . . . . . . . . . . . . . . . . . . . 148
5.6 Rejestry GTZC_MPCBB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.6.1 Rejestr sterujący GTZC_MPCBBx (GTZC_MPCBBx_CR) (x = 1 do 2) . 150
5.6.2 Rejestr blokady 1 GTZC_MPCBB1 (GTZC_MPCBB1_LCKVTR1) . . . . . . 151
5.6.3
Rejestr blokady 2 GTZC_MPCBB1 (GTZC_MPCBB2_LCKVTR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4/2187
RM0438 Wersja 8
RM0438
Zawartość
5.6.4
Rejestr wektorowy GTZC_MPCBBx y (GTZC_MPCBBx_VCTRy) (x = 1 do 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
5.6.5 Mapa rejestrów GTZC_MPCBB1 i wartości resetowania . . . . . . . . . . . . . . . . . . . . 153
5.6.6 Mapa rejestrów GTZC_MPCBB2 i wartości resetowania . . . . . . . . . . . . . . . . . . . . 153
5.7 Rejestry GTZC_TZIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
5.7.1 Rejestr włączający przerwanie GTZC_TZIC 1 (GTZC_TZIC_IER1) . . . . . . . 154
5.7.2 Rejestr włączający przerwanie GTZC_TZIC 2 (GTZC_TZIC_IER2) . . . . . . . 157
5.7.3 Rejestr włączający przerwanie GTZC_TZIC 3 (GTZC_TZIC_IER3) . . . . . . . 159
5.7.4 Rejestr stanu GTZC_TZIC 1 (GTZC_TZIC_SR1) . . . . . . . . . . . . . . . . . 160
5.7.5 Rejestr stanu GTZC_TZIC 2 (GTZC_TZIC_SR2) . . . . . . . . . . . . . . . . . 163
5.7.6 Rejestr stanu GTZC_TZIC 3 (GTZC_TZIC_SR3) . . . . . . . . . . . . . . . . . 165
5.7.7 Flaga GTZC_TZIC wyczyść rejestr 1 (GTZC_TZIC_FCR1) . . . . . . . . . . . . . 166
5.7.8 Flaga GTZC_TZIC wyczyść rejestr 2 (GTZC_TZIC_FCR2) . . . . . . . . . . . . . 169
5.7.9 Flaga GTZC_TZIC wyczyść rejestr 3 (GTZC_TZIC_FCR3) . . . . . . . . . . . . . 171
5.7.10 Mapa rejestrów GTZC_TZIC i wartości resetowania . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
6
Wbudowana pamięć flash (FLASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
6.1 Wprowadzenie . ...
6.2 Główne cechy pamięci FLASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
6.3 Opis funkcjonalny pamięci flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.3.1 Organizacja pamięci flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.3.2 Korekcja kodów błędów (ECC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6.3.3 Opóźnienie dostępu do odczytu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.3.4 Niska objętośćtagczytam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.3.5 Operacje programowania i kasowania pamięci flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.3.6 Sekwencje kasowania pamięci głównej Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.3.7 Sekwencje programowania pamięci głównej Flash . . . . . . . . . . . . . . . . . . . . . . . 185
6.3.8 Flagi błędów Flash . ...
6.3.9
Funkcja odczytu i zapisu (RWW) dostępna tylko w trybie podwójnego banku (DBANK = 1) . ...
6.4 Bajty opcji pamięci flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.4.1 Opis bajtów opcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
6.4.2 Programowanie bajtów opcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
6.5 Zabezpieczenia i ochrona uprawnień Flash TrustZone . . . . . . . . . . . . . . . . . . . 193
6.5.1 Ochrona bezpieczeństwa TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.5.2 Bezpieczna ochrona obszaru oparta na znaku wodnym . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.5.3 Bezpieczna ochrona skóry (HDP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
RM0438 Wersja 8
5/2187
54
Zawartość
RM0438
6.5.4 Ochrona oparta na bezpiecznym obszarze blokowym (SECBB) . . . . . . . . . . . . . . . . . . . . . 196 6.5.5 Wymuszanie rozruchu z bezpiecznego adresu pamięci . . . . . . . . . . . . . . . . . . . . . . . 197 6.5.6 Stan atrybutów zabezpieczeń pamięci flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 6.5.7 Rejestry pamięci flash — tryby uprzywilejowane i nieuprzywilejowane . . . . . . . . . . . . . . . . . 198
6.6 Zabezpiecz pamięć systemową . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
6.6.1 Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 6.6.2 RSS przydziela zasoby bootloaderowi . ... . . . . . . . . . . 198
6.7 Ochrona pamięci FLASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.7.1 Ochrona przed zapisem (WRP) . ...
6.8 Przerwania pamięci FLASH . ...
6.9.1 Rejestr kontroli dostępu do pamięci Flash (FLASH_ACR) . . . . . . . . . . . . . . . . . . . . . . 213 6.9.2 Rejestr klucza wyłączania pamięci Flash (FLASH_PDKEYR) . . . . . . . . . . . . . . . . 214 6.9.3 Rejestr klucza niezabezpieczonego pamięci Flash (FLASH_NSKEYR) . . . . . . . . . . . . . . . . 215 6.9.4 Rejestr klucza zabezpieczonego pamięci Flash (FLASH_SECKEYR) . . . . . . . . . . . . . . . . . 215 6.9.5 Rejestr klucza opcji Flash (FLASH_OPTKEYR) . . . . . . . . . . . . . . . . . . . . . 216 6.9.6 Niska objętość FlashtagRejestr klucza (FLASH_LVEKEYR) . . . . . . . . . . . . . . . . 216 6.9.7 Rejestr stanu pamięci Flash (FLASH_NSSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 6.9.8 Rejestr stanu pamięci Flash (FLASH_SECSR) . . . . . . . . . . . . . . . . . . . . . . . . . . 218 6.9.9 Niezabezpieczony rejestr sterujący pamięci Flash (FLASH_NSCR) . . . . . . . . . . . . . . 220 6.9.10 Rejestr sterowania zabezpieczeniami pamięci Flash (FLASH_SECCR) . . . . . . . . . . . . . . . . . . . . 222 6.9.11 Rejestr ECC pamięci Flash (FLASH_ECCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 6.9.12 Rejestr opcji pamięci Flash (FLASH_OPTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 6.9.13 Rejestr adresu 0 niezabezpieczonego rozruchu pamięci flash (FLASH_NSBOOTADD0R) 227 6.9.14 Rejestr adresu 1 niezabezpieczonego rozruchu pamięci flash (FLASH_NSBOOTADD1R) 228 6.9.15 Rejestr adresu 0 bezpiecznego rozruchu pamięci flash (FLASH_SECBOOTADD0R) . . 228 6.9.16 Rejestr banku 1 zabezpieczonego watermak1 pamięci flash (FLASH_SECWM1R1) . . . . 229 6.9.17 Rejestr 1 zabezpieczonego watermak2 pamięci flash (FLASH_SECWM1R2) . . . . . . . . 230 6.9.18 Rejestr adresu obszaru A pamięci flash WPR1 (FLASH_WRP1AR) . . . . . . . . . 231 6.9.19 Rejestr adresu obszaru B pamięci Flash WPR1 (FLASH_WRP1BR) . . . . . . . . . 232 6.9.20 Rejestr bezpiecznego zapisu Flash watermak2 (FLASH_SECWM2R1) . . . . . . . . . . . 233 6.9.21 Rejestr 2 bezpiecznej pamięci Flash watermak2 (FLASH_SECWM2R2) . . . . . . . . 234 6.9.22 Rejestr adresu obszaru A pamięci Flash WPR2 (FLASH_WRP2AR) . . . . . . . . . 235 6.9.23 Rejestr adresu obszaru B pamięci Flash WPR2 (FLASH_WRP2BR) . . . . . . . . . 236
6/2187
RM0438 Wersja 8
RM0438
Zawartość
6.9.24
6.9.25
6.9.26 6.9.27 6.9.28
Rejestr banku 1 oparty na blokach pamięci FLASH (FLASH_SECBB1Rx) (gdzie x=1..4) . ...
Rejestr banku 2 oparty na blokach pamięci FLASH (FLASH_SECBB2Rx) (gdzie x=1..4) . ...
Rejestr sterujący bezpiecznego HDP FLASH (FLASH_SECHDPCR) . . . . . . . . 238
Rejestr konfiguracji uprawnień FLASH (FLASH_PRIVCFGR) . . . . . . . 238
Mapa rejestrów FLASH i wartości resetowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
7
Pamięć podręczna instrukcji (ICACHE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
7.1 Wprowadzenie do ICACHE . ...
7.2 Główne cechy ICACHE . ...
7.3 Implementacja ICACHE . ...
7.4 Opis funkcjonalny ICACHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
7.4.1 Schemat blokowy ICACHE . ...
7.4.2 Resetowanie ICACHE i zegary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
7.4.3 ICACHE TAG pamięć . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.4.4 Bezpośrednio mapowany ICACHE (pamięć podręczna jednokierunkowa) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
7.4.5 Włączanie ICACHE . ...
7.4.6 Ruch buforowalny i niebuforowalny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
7.4.7 Ponowne mapowanie adresów . ...
7.4.8 Dostęp do pamięci podręcznej . ...
7.4.9 Pamięć podręczna dual-master . ...
7.4.10 Zabezpieczenia ICACHE . ...
7.4.11 Konserwacja ICACHE . ...
7.4.12 Monitorowanie wydajności ICACHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
7.4.13 Rozruch ICACHE . ...
7.5 Tryby niskiego poboru mocy ICACHE . ...
7.6 Zarządzanie błędami i przerwaniami ICACHE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
7.7 Rejestry ICACHE . ...
7.7.1 Rejestr sterujący ICACHE (ICACHE_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
7.7.2 Rejestr statusu ICACHE (ICACHE_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
7.7.3 Rejestr włączający przerwanie ICACHE (ICACHE_IER) . . . . . . . . . . . . . . . . . . . 255
7.7.4 Rejestr czyszczenia flagi ICACHE (ICACHE_FCR) . . . . . . . . . . . . . . . . . . . . . . . . . . 255
7.7.5 Rejestr monitora trafień ICACHE (ICACHE_HMONR) . . . . . . . . . . . . . . . . . . . 256
7.7.6 Rejestr monitora braków ICACHE (ICACHE_MMONR) . . . . . . . . . . . . . . . . 256
7.7.7 Rejestr konfiguracji regionu x ICACHE (ICACHE_CRRx) . . . . . . . . . . 256
7.7.8 Mapa rejestrów ICACHE . ...
RM0438 Wersja 8
7/2187
54
Zawartość
RM0438
8
Sterowanie mocą (PWR) . ...
8.1 Zasilacze i domeny zasilania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
8.1.1 Niezależne zasilanie urządzeń peryferyjnych analogowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.1.2 Niezależna szyna zasilania wejścia/wyjścia . ...
8.1.3 Zasilanie niezależnych transceiverów USB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.1.4 Domena podtrzymania bateryjnego . ...
8.2 Pojemność zasilania systemutagrozporządzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.2.1 objtagregulator e . ...
8.2.2 Wbudowany przetwornica obniżająca napięcie SMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
8.2.3 Schemat zasilacza z przetwornicą obniżającą napięcie SMPS . . . . . . . . . . . . . . . . 268
8.2.4 Przetwornica obniżająca napięcie SMPS w porównaniu z trybem niskiego poboru mocy . . . . . . . . . . . . . . 269
8.2.5 Objętość dynamicznatagzarządzanie skalowaniem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
8.2.6 Domena VDD12 i zewnętrzny SMPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
8.3 Nadzór nad zasilaniem . ...
8.3.1
Resetowanie przy włączaniu zasilania (POR) / resetowanie przy wyłączaniu zasilania (PDR) / resetowanie przy spadku napięcia (BOR) . ...
8.3.2 Programowalna objętośćtagdetektor e (PVD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
8.3.3 Objętość peryferyjnatage monitoring (PVM) . . . . . . . . . . . . . . . . . . . . . . . . . . 275
8.3.4 Objętość górnatagmonitorowanie progów e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
8.3.5 Monitorowanie progów temperatury . ...
8.4 Zarządzanie energią . ...
8.4.1 Tryby zasilania . ...
8.4.2 Tryb pracy . ...
8.4.3 Tryb pracy o niskim poborze mocy (tryb LP) . ...
8.4.4 Tryby niskiego poboru mocy . ...
8.4.5 Tryb uśpienia . ...
8.4.6 Tryb uśpienia o niskim poborze mocy (uśpienie LP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
8.4.7 Tryb Stop 0 . ...
8.4.8 Tryb Stop 1 . ...
8.4.9 Tryb Stop 2 . ...
8.4.10 Tryb czuwania . ...
8.4.11 Tryb wyłączania . ...
8.4.12 Automatyczne wybudzanie z trybu niskiego poboru mocy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
8.5 Bezpieczeństwo PWR TrustZone . ...
8.5.1 Tryby uprzywilejowane i nieuprzywilejowane PWR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
8.6 Rejestry PWR . ...
8/2187
RM0438 Wersja 8
RM0438
Zawartość
8.6.1 8.6.2 8.6.3 8.6.4 8.6.5 8.6.6 8.6.7 8.6.8 8.6.9 8.6.10 8.6.11 8.6.12 8.6.13 8.6.14 8.6.15 8.6.16 8.6.17 8.6.18 8.6.19 8.6.20 8.6.21 8.6.22 8.6.23 8.6.24 8.6.25 8.6.26
Rejestr sterowania mocą 1 (PWR_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 Rejestr sterowania mocą 2 (PWR_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Rejestr sterowania mocą 3 (PWR_CR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 Rejestr sterowania mocą 4 (PWR_CR4) . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Rejestr stanu zasilania 1 (PWR_SR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Rejestr stanu zasilania 2 (PWR_SR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Rejestr czyszczenia stanu zasilania (PWR_SCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Rejestr sterujący podciąganiem portu zasilania A (PWR_PUCRA) . . . . . . . . . . . . . . 308 Rejestr sterujący pull-down portu zasilania A (PWR_PDCRA) . . . . . . . . . . . 308 Rejestr sterujący pull-up portu zasilania B (PWR_PUCRB) . . . . . . . . . . . . . . 309 Rejestr sterujący pull-down portu zasilania B (PWR_PDCRB) . . . . . . . . . . . 310 Rejestr sterujący pull-up portu zasilania C (PWR_PUCRC) . . . . . . . . . . . . 310 Rejestr sterujący pull-down portu zasilania C (PWR_PDCRC) . . . . . . . . . . . 311 Rejestr sterujący podciąganiem portu zasilania D (PWR_PUCRD) . . . . . . . . . . . . . . 311 Rejestr sterujący podciąganiem portu zasilania D (PWR_PDCRD) . . . . . . . . . . . . 312 Rejestr sterujący podciąganiem portu zasilania E (PWR_PUCRE) . . . . . . . . . . . . . . 313 Rejestr sterujący podciąganiem portu zasilania E (PWR_PDCRE) . . . . . . . . . . . 313 Rejestr sterujący podciąganiem portu zasilania F (PWR_PUCRF) . . . . . . . . . . . . . . 314 Rejestr sterujący podciąganiem portu zasilania F (PWR_PDCRF) . . . . . . . . . . . 314 Rejestr sterujący podciąganiem portu zasilania G (PWR_PUCRG) . . . . . . . . . . . . . . 315 Rejestr sterujący podciąganiem portu zasilania G (PWR_PDCRG) . . . . . . . . . . . . 316 Rejestr sterujący podciąganiem portu zasilania H (PWR_PUCRH) . . . . . . . . . . . . 316 Rejestr sterujący podciąganiem portu zasilania H (PWR_PDCRH) . . . . . . . . . . . . 317 Rejestr konfiguracji bezpiecznego zasilania (PWR_SECCFGR) . . . . . . . . . . . 317 Rejestr konfiguracji uprawnień zasilania (PWR_PRIVCFGR) . . . . . . . . . 319 Mapa rejestru PWR i wartości resetowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
9
Resetowanie i sterowanie zegarem (RCC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
9.1 Resetowanie . ...
9.1.1 Resetowanie zasilania . ...
9.1.2 Resetowanie systemu . ...
9.1.3 Resetowanie domeny zapasowej . ...
9.2 Piny RCC i sygnały wewnętrzne . ...
9.3 Zegary . ...
9.3.1 Zegar HSE . ...
9.3.2 Zegar HSI16 . ...
9.3.3 Zegar MSI . ...
RM0438 Wersja 8
9/2187
54
Zawartość
RM0438
9.3.4 Zegar HSI48 . ... . ... . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.3.5 Wybór zegara systemowego (SYSCLK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.3.6 Częstotliwość źródła zegara a głośnośćtagSkalowanie . . . . . . . . . . . . . . . . . . . . . . . 335 9.3.11 System bezpieczeństwa zegara (CSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.3.12 System bezpieczeństwa zegara na LSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.3.13 Zegar ADC . . . . . . . . . . . . . . ... . . . . . . . . . . . . . . . . . . . . 336 9.3.14 Zegar nadzorujący . ... 336 9.3.15 Pomiar zegara wewnętrznego/zewnętrznego za pomocą TIM336/TIM9.3.16/TIM337 . . . . . 9.3.17 337 Rejestry włączające zegar peryferyjny
(RCC_AHBxENR, RCC_APBxENRy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9.4 Tryby niskiego poboru mocy . ... . . . . 340 9.5 Przerwania RCC . ...
9.8.1 Rejestr sterujący zegarem RCC (RCC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.8.2 Rejestr kalibracji wewnętrznych źródeł zegara RCC (RCC_ICSCR) . . . . . . . 348 9.8.3 Rejestr konfiguracji zegara RCC (RCC_CFGR) . . . . . . . . . . . . . . . . . . . 349 9.8.4 Rejestr konfiguracji PLL RCC (RCC_PLLCFGR) . . . . . . . . . . . . . . . 352 9.8.5 Rejestr konfiguracji RCC PLLSAI1 (RCC_PLLSAI1CFGR) . . . . . . . . 355 9.8.6 Rejestr konfiguracji RCC PLLSAI2 (RCC_PLLSAI2CFGR) . . . . . . . . 358 9.8.7 Rejestr włączenia przerwania zegara RCC (RCC_CIER) . . . . . . . . . . . . . . . . . . 360 9.8.8 Rejestr flagi przerwania zegara RCC (RCC_CIFR) . . . . . . . . . . . . . . . . . . . . 361 9.8.9 Rejestr zerowania przerwania zegara RCC (RCC_CICR) . . . . . . . . . . . . . . . . . . 363 9.8.10 Rejestr resetowania urządzeń peryferyjnych RCC AHB1 (RCC_AHB1RSTR) . . . . . . . . . . . 364 9.8.11 Rejestr resetowania urządzeń peryferyjnych RCC AHB2 (RCC_AHB2RSTR) . . . . . . . . . . . 365 9.8.12 Rejestr resetowania urządzeń peryferyjnych RCC AHB3 (RCC_AHB3RSTR) . . . . . . . . . . . 367 9.8.13 Rejestr resetowania urządzeń peryferyjnych RCC APB1 1 (RCC_APB1RSTR1) . . . . . . . . 368 9.8.14 Rejestr resetowania urządzeń peryferyjnych RCC APB1 2 (RCC_APB1RSTR2) . . . . . . . . 370 9.8.15 Rejestr resetowania urządzeń peryferyjnych RCC APB2 (RCC_APB2RSTR) . . . . . . . . . . . 371
10/2187
RM0438 Wersja 8
RM0438
Zawartość
9.8.16 9.8.17 9.8.18 9.8.19 9.8.20 9.8.21 9.8.22
9.8.23
9.8.24
9.8.25
9.8.26
9.8.27
9.8.28
9.8.29 9.8.30 9.8.31 9.8.32
9.8.33 9.8.34 9.8.35 9.8.36 9.8.37 9.8.38 9.8.39 9.8.40 9.8.41 9.8.42
Rejestr włączania zegara peryferyjnego RCC AHB1 (RCC_AHB1ENR) . . . . . 373 Rejestr włączania zegara peryferyjnego RCC AHB2 (RCC_AHB2ENR) . . . . . 374 Rejestr włączania zegara peryferyjnego RCC AHB3 (RCC_AHB3ENR) . . . . . . . 376
Rejestr włączania zegara peryferyjnego RCC APB1 1 (RCC_APB1ENR1) . . . 377 Rejestr włączania zegara peryferyjnego RCC APB1 2 (RCC_APB1ENR2) . . . 379
Rejestr włączania zegara urządzeń peryferyjnych RCC APB2 (RCC_APB2ENR). . . . . . 381 Rejestr włączania zegarów urządzeń peryferyjnych RCC AHB1 w trybach uśpienia i zatrzymania (RCC_AHB1SMENR). . ... 382
Włączanie zegarów peryferyjnych RCC AHB3 w rejestrze trybów uśpienia i zatrzymania (RCC_AHB3SMENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 Włączanie zegarów peryferyjnych RCC APB1 w rejestrze trybów uśpienia i zatrzymania 1 (RCC_APB1SMENR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Włączanie zegarów peryferyjnych RCC APB1 w rejestrze trybów uśpienia i zatrzymania 2 (RCC_APB1SMENR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Rejestr włączania zegarów peryferyjnych RCC APB2 w trybach uśpienia i zatrzymania (RCC_APB2SMENR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Rejestr konfiguracji niezależnego zegara peryferyjnych RCC 1 (RCC_CCIPR1) . ... . . . . . 393
Rejestr sterowania/statusu RCC (RCC_CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Rejestr RC odzyskiwania zegara RCC (RCC_CRRCR) . . . . . . . . . . . . . . . . . . . . . 400 Rejestr 2 konfiguracji zegara niezależnego od urządzeń peryferyjnych RCC (RCC_CCIPR2) . ...
Rejestr konfiguracji opóźnienia protokołu OCTOSPI (RCC_DLYCFGR) . . . . . . . . . . 402 Rejestr bezpiecznej konfiguracji RCC (RCC_SECCFGR) . . . . . . . . . . . . . . 403 Rejestr bezpiecznego stanu RCC (RCC_SECSR) . . . . . . . . . . . . . . . . . . . . . . . . 405
Rejestr stanu bezpieczeństwa RCC AHB1 (RCC_AHB1SECSR) . . . . . . . . . . 407 Rejestr stanu bezpieczeństwa RCC AHB2 (RCC_AHB2SECSR) . . . . . . . . . . . 408 Rejestr stanu bezpieczeństwa RCC AHB3 (RCC_AHB3SECSR) . . . . . . . . . . . 410
Rejestr stanu bezpieczeństwa RCC APB1 1 (RCC_APB1SECSR1) . . . . . . . 411 Rejestr stanu bezpieczeństwa RCC APB1 2 (RCC_APB1SECSR2) . . . . . . . 414 Rejestr stanu bezpieczeństwa RCC APB2 (RCC_APB2SECSR) . . . . . . . . . . . 415
Mapa rejestrów RCC . ...
10
System odzyskiwania zegara (CRS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
10.1 Wprowadzenie do CRS . ...
10.2 Główne cechy CRS . ...
RM0438 Wersja 8
11/2187
54
Zawartość
RM0438
10.3 10.4
10.5 10.6 10.7
Implementacja CRS . ...
10.4.1 Schemat blokowy CRS . ... . . . . . . . . . . . . . . . . . 425 10.4.2 Pomiar błędu częstotliwości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 10.4.3 Ocena błędu częstotliwości i automatyczne przycinanie . . . . . . . . . . . . . . . . . 426 10.4.4 Inicjalizacja i konfiguracja CRS . ...
CRS w trybach niskiego poboru mocy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 Przerwania CRS . ... . . . . . . . . . . . . . . . . . 429
10.7.1 Rejestr sterujący CRS (CRS_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 10.7.2 Rejestr konfiguracyjny CRS (CRS_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 10.7.3 Rejestr przerwania i stanu CRS (CRS_ISR) . . . . . . . . . . . . . . . . . . . . . . . 431 10.7.4 Rejestr czyszczenia flagi przerwania CRS (CRS_ICR) . . . . . . . . . . . . . . . . . . . . . . . 433 10.7.5 Mapa rejestrów CRS . ...
11
Porty wejścia/wyjścia ogólnego przeznaczenia (GPIO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
11.1 Wprowadzenie . ...
11.2 Główne cechy GPIO . ...
11.3 Opis funkcjonalny GPIO . ...
11.3.1 Ogólnego przeznaczenia wejście/wyjście (GPIO) . ...
11.3.2 Multiplekser i mapowanie funkcji alternatywnych pinów wejścia/wyjścia . . . . . . . . . . . . . . . . . 438
11.3.3 Rejestry sterujące portem wejścia/wyjścia . ...
11.3.4 Rejestry danych portu I/O . ...
11.3.5 Obsługa danych wejścia/wyjścia na poziomie bitowym . ...
11.3.6 Mechanizm blokowania GPIO . ...
11.3.7 Alternatywna funkcja wejścia/wyjścia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
11.3.8 Zewnętrzne linie przerwań/wybudzenia . ...
11.3.9 Konfiguracja wejściowa . ...
11.3.10 Konfiguracja wyjścia . ...
11.3.11 Konfiguracja funkcji alternatywnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
11.3.12 Konfiguracja analogowa . ...
11.3.13 Używanie pinów oscylatora HSE lub LSE jako GPIO . . . . . . . . . . . . . . . . . . . . . 443
11.3.14 Wykorzystanie pinów GPIO w obszarze zasilania RTC . . . . . . . . . . . . . . . . . . . . . 443
11.3.15 Używanie PH3 jako GPIO . ...
12/2187
RM0438 Wersja 8
RM0438
Zawartość
11.4 11.5 11.6
Bezpieczeństwo TrustZone . ...
Tryby uprzywilejowane i nieuprzywilejowane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Rejestry GPIO . ...
11.6.1 Rejestr trybu portu GPIO (GPIOx_MODER) (x = A do H) . ...
11.6.2 Rejestr typu wyjścia portu GPIO (GPIOx_OTYPER) (x = A do H) . ...
11.6.3 Rejestr prędkości wyjściowej portu GPIO (GPIOx_OSPEEDR) (x = A do H) . ...
11.6.4 Rejestr podciągający/obniżający port GPIO (GPIOx_PUPDR) (x = A do H) . ...
11.6.5 Rejestr danych wejściowych portu GPIO (GPIOx_IDR) (x = A do H) . ...
11.6.6 Rejestr danych wyjściowych portu GPIO (GPIOx_ODR) (x = A do H) . ...
11.6.7 Rejestr ustawiania/resetowania bitów portu GPIO (GPIOx_BSRR) (x = A do H) . ...
11.6.8 Rejestr blokady konfiguracji portu GPIO (GPIOx_LCKR) (x = A do H) . ...
11.6.9 Rejestr dolny funkcji alternatywnej GPIO (GPIOx_AFRL) (x = A do H) . ...
11.6.10 Rejestr wysokiego poziomu funkcji alternatywnej GPIO (GPIOx_AFRH) (x = A do H) . ...
11.6.11 Rejestr resetowania bitów portu GPIO (GPIOx_BRR) (x = A do H) . . . . . . . . . . . . . . 452
11.6.12 Rejestr bezpiecznej konfiguracji GPIO (GPIOx_SECCFGR) (x = A do H) . 452
11.6.13 Mapa rejestrów GPIO . ...
12
Kontroler konfiguracji systemu (SYSCFG) . . . . . . . . . . . . . . . . . . . . . . . . . . 456
12.1 Główne funkcje SYSCFG . ...
12.2 Zabezpieczenia i uprawnienia SYSCFG TrustZone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
12.3 Rejestry SYSCFG . ...
12.3.1 Rejestr bezpiecznej konfiguracji SYSCFG (SYSCFG_SECCFGR) . . . . . 458
12.3.2 Rejestr konfiguracji SYSCFG 1 (SYSCFG_CFGR1) . . . . . . . . . . . . . . 459
12.3.3 Rejestr maski przerwania FPU (SYSCFG_FPUIMR) . . . . . . . . . . . . . . . . . . . . 461
12.3.4 Rejestr blokady niezabezpieczonej procesora SYSCFG (SYSCFG_CNSLCKR) . . . . . 461
12.3.5 Rejestr blokady bezpieczeństwa procesora SYSCFG (SYSCFG_CSLOCKR) . . . . . . . . 462
12.3.6 Rejestr konfiguracji SYSCFG 2 (SYSCFG_CFGR2) . . . . . . . . . . . . . . 463
12.3.7 Rejestr sterujący i stanu pamięci SYSCFG SRAM2 (SYSCFG_SCSR) . . . . 464
12.3.8 Rejestr kluczy SRAM2 SYSCFG (SYSCFG_SKR) . . . . . . . . . . . . . . . . . . . . . . 465
RM0438 Wersja 8
13/2187
54
Zawartość
RM0438
12.3.9 Rejestr ochrony zapisu SRAM2 w SYSCFG (SYSCFG_SWPR) . . . . . . 465 12.3.10 Rejestr ochrony zapisu SRAM2 2 w SYSCFG (SYSCFG_SWPR2) . . . 466 12.3.11 Rejestr poleceń RSS w SYSCFG (SYSCFG_RSSCMDR) . . . . . . . . . . 466 12.3.12 Mapa rejestrów SYSCFG . ...
13
Macierz połączeń urządzeń peryferyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
13.1 Wprowadzenie . ...
13.2 Podsumowanie połączenia . ...
13.3 Szczegóły połączeń międzysystemowych . ...
13.3.1 Od timera (TIM1/TIM2/TIM3/TIM4/TIM5/TIM8/TIM15/TIM16/TIM17) do timera (TIM1/TIM2/TIM3/TIM4/TIM5/TIM8/TIM15) . . . . . . . . . . . . . . . . . . . 470
13.3.2 Z timera (TIM1/TIM2/TIM3/TIM4/TIM6/TIM8/TIM15) i EXTI do ADC (ADC1/ADC2) . ...
13.3.3 Z ADC1/ADC2 do timera (TIM1/TIM8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
13.3.4 Z timera (TIM2/TIM4/TIM5/TIM6/TIM7/TIM8) i EXTI do DAC (DAC1/DAC2) . ...
13.3.5 Z timera (TIM1/TIM3/TIM4/TIM6/TIM7/TIM8/TIM16/LPTIM1) i EXTI do DFSDM1 . ...
13.3.6 Z DFSDM1 do timera (TIM1/TIM8/TIM15/TIM16/TIM17) . . . . . . . . . . 473
13.3.7 Z HSE, LSE, LSI, MSI, MCO, RTC do timera (TIM2/TIM15/TIM16/TIM17) . ...
13.3.8 Z RTC, COMP1, COMP2 do timera o niskim poborze mocy (LPTIM1/LPTIM2/LPTIM3) . ...
13.3.9 Od timera (TIM1/TIM2/TIM3/TIM8/TIM15) do komparatorów (COMP1/COMP2) . ...
13.3.10 Z ADC (ADC1) do ADC (ADC2) . ...
13.3.11 Z USB do timera (TIM2) . ...
13.3.12 Ze źródła analogowego wewnętrznego do ADC (ADC1/ADC2) i OPAMP (OPAMP1/OPAM2). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
13.3.13 Od komparatorów (COMP1/COMP2) do timerów (TIM1/TIM2/TIM3/TIM8/TIM15/TIM16/TIM17) . . . . . . . . . . . . . . . . . . . . . . . . . . 475
13.3.14 Od błędów systemowych do timerów (TIM1/TIM8/TIM15/TIM16/TIM17) . . . . 476
13.3.15 Od timerów (TIM16/TIM17) do IRTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
13.3.16 Z ADC (ADC1/ADC2) do DFSDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
14
Kontroler bezpośredniego dostępu do pamięci (DMA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
14.1 Wprowadzenie . ...
14.2 Główne cechy DMA . ...
14.3 Implementacja DMA . ...
14/2187
RM0438 Wersja 8
RM0438
Zawartość
14.4
14.5 14.6
14.3.1 DMA1 i DMA2 . ...
Opis funkcjonalny DMA . ...
14.4.1 Schemat blokowy DMA . ... . . . . . . . . . . . . . . . . . . . 480 14.4.2 Arbitraż DMA . ... 481 14.4.3 Szerokość, wyrównanie i kolejność bajtów danych DMA . . . . . . . . . . . . . . . . . . . . . . . . . 481 14.4.4 Zarządzanie błędami DMA . ...
Przerwania DMA . ...
14.6.1 Rejestr stanu przerwania DMA (DMA_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 14.6.2 Rejestr zerowania flagi przerwania DMA (DMA_IFCR) . . . . . . . . . . . . . . . . . . . . . . . 494 14.6.3 Rejestr konfiguracji kanału x DMA (DMA_CCRx) . ... . . . . 495 14.6.4 Rejestr adresu kanału DMA x pamięci 500 (DMA_CM14.6.5ARx) . . . . . . . . 501 14.6.6 Rejestr adresu kanału DMA x pamięci 0 (DMA_CM0ARx) . . . . . . . . 501 14.6.7 Mapa rejestrów DMA . ...
15
Multiplekser żądań DMA (DMAMUX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
15.1 Wprowadzenie . ...
15.2 Główne funkcje DMAMUX . ...
15.3 Implementacja DMAMUX . ...
15.3.1 Instancjacja DMAMUX . ...
15.3.2 Mapowanie DMAMUX . ...
15.4 Opis funkcjonalny DMAMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
15.4.1 Schemat blokowy DMAMUX . ...
15.4.2 Sygnały DMAMUX . ...
15.4.3 Kanały DMAMUX . ...
15.4.4 Kanały bezpieczne/niezabezpieczone DMAMUX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
15.4.5 Kanały uprzywilejowane/nieuprzywilejowane DMAMUX . . . . . . . . . . . . . . . . . . . . . . . . . . 513
15.4.6 Multiplekser linii żądań DMAMUX . ...
15.4.7 Generator żądań DMAMUX . ...
15.5 Przerwania DMAMUX . ...
RM0438 Wersja 8
15/2187
54
Zawartość
RM0438
15.6
Rejestry DMAMUX . ...
15.6.1 Rejestr konfiguracji kanału x multipleksera linii żądań DMAMUX (DMAMUX_CxCR) . ...
15.6.2 Rejestr stanu kanału przerwania multipleksera linii żądań DMAMUX (DMAMUX_CSR) . ...
15.6.3 Rejestr flagi czyszczenia kanału przerwania multipleksera linii żądań DMAMUX (DMAMUX_CCFR) . ...
15.6.4 Rejestr konfiguracji kanału x generatora żądań DMAMUX (DMAMUX_RGxCR) . ...
15.6.5 Rejestr stanu przerwania generatora żądań DMAMUX (DMAMUX_RGSR) . ...
15.6.6 Rejestr flagi czyszczenia przerwania generatora żądań DMAMUX (DMAMUX_RGCFR) . ...
15.6.7 Mapa rejestrów DMAMUX . ...
16
Zagnieżdżony kontroler przerwań wektorowych (NVIC) . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
16.1 Główne cechy NVIC . ...
16.2 Rejestr wartości kalibracji SysTick . ...
16.3 Wektory przerwań i wyjątków . ...
17
Rozszerzone przerwania i kontroler zdarzeń (EXTI) . . . . . . . . . . . . . . . . . . . . 533
17.1 Główne cechy EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
17.2 Schemat blokowy EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
17.2.1 Połączenia EXTI pomiędzy urządzeniami peryferyjnymi i procesorem . . . . . . . . . . . . . . . . . . 535
17.2.2 Mapowanie przerwań/zdarzeń EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
17.3 Opis funkcjonalny EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
17.3.1 Wybudzanie konfigurowalnego wejścia zdarzeń EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
17.3.2 Pobudzenie wejścia zdarzenia bezpośredniego EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
17.3.3 Wybór multipleksera EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
17.4 Zachowanie funkcjonalne EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
17.5 Ochrona zdarzeń EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
17.5.1 Ochrona bezpieczeństwa EXTI . ...
17.5.2 Ochrona uprawnień EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
17.6 Rejestry EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
17.6.1 17.6.2 17.6.3 17.6.4
Rejestr wyboru wyzwalacza rosnącego EXTI (EXTI_RTSR1) . . . . . . . . . . . . . . 543 Rejestr wyboru wyzwalacza opadającego EXTI (EXTI_FTSR1) . . . . . . . . . . . . . 544 Rejestr zdarzeń przerwania programowego EXTI (EXTI_SWIER1) . . . . . . . . . . . 545 Rejestr oczekujący na zbocze narastające EXTI (EXTI_RPR1) . . . . . . . . . . . . . . . . 546
16/2187
RM0438 Wersja 8
RM0438
Zawartość
17.6.5 Rejestr oczekujący na zbocze opadające EXTI (EXTI_FPR1) . . . . . . . . . . . . . . . . 547 17.6.6 Rejestr konfiguracji zabezpieczeń EXTI (EXTI_SECCFGR1) . . . . . . . . . . 548 17.6.7 Rejestr konfiguracji uprawnień EXTI (EXTI_PRIVCFGR1) . . . . . . . . . 549 17.6.8 Rejestr wyboru wyzwalacza rosnącego EXTI (EXTI_RTSR2) . . . . . . . . . . . . . . 549 17.6.9 Rejestr wyboru wyzwalacza opadającego EXTI (EXTI_FTSR2) . . . . . . . . . . . . . 550 17.6.10 Rejestr zdarzeń przerwania programowego EXTI (EXTI_SWIER2) . . . . . . . . . . . 551 17.6.11 Rejestr oczekujący na zbocze narastające EXTI (EXTI_RPR2) . . . . . . . . . . . . . . . . 551 17.6.12 Rejestr oczekujący na zbocze opadające EXTI (EXTI_FPR2) . . . . . . . . . . . . . . . . 552 17.6.13 Rejestr włączania zabezpieczeń EXTI (EXTI_SECCFGR2) . . . . . . . . . . . . . . . 553 17.6.14 Rejestr włączania uprawnień EXTI (EXTI_PRIVCFGR2) . . . . . . . . . . . . . . 553 17.6.15 Rejestr wyboru przerwania zewnętrznego EXTI (EXTI_EXTICRn) . . . . . . . . 554 17.6.16 Rejestr blokady EXTI (EXTI_LOCKR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 17.6.17 Wybudzanie procesora EXTI z rejestrem maski przerwań (EXTI_IMR1) . . . . . . . 557 17.6.18 Wybudzanie procesora EXTI z rejestrem maski zdarzeń (EXTI_EMR1) . . . . . . . . 558 17.6.19 Wybudzanie procesora EXTI z rejestrem maski przerwań (EXTI_IMR2) . . . . . . . 559 17.6.20 Wybudzanie procesora EXTI z rejestrem maski zdarzeń (EXTI_EMR2) . . . . . . . . 559 17.6.21 Mapa rejestrów EXTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560
18
Jednostka obliczeniowa cyklicznej kontroli nadmiarowej (CRC) . . . . . . . . . . . . . . . . . . . 563
18.1 Wprowadzenie do CRC . ...
18.2 Główne cechy CRC . ...
18.3 Opis funkcjonalny CRC . ...
18.3.1 Schemat blokowy CRC . ...
18.3.2 Sygnały wewnętrzne CRC . ...
18.3.3 Operacja CRC . ...
18.4 Rejestry CRC . ...
18.4.1 18.4.2 18.4.3 18.4.4
Rejestr danych CRC (CRC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Niezależny od CRC rejestr danych (CRC_IDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Rejestr sterujący CRC (CRC_CR) . ... . . . . . . . . . . . . . . . . . . . . 567
18.4.5 Wielomian CRC (CRC_POL) . ...
18.4.6 Mapa rejestrów CRC . ...
19
Elastyczny kontroler pamięci statycznej (FSMC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
19.1 Wprowadzenie do FMC . ...
19.2 Główne cechy FMC . ...
RM0438 Wersja 8
17/2187
54
Zawartość
RM0438
19.3 19.4 19.5 19.6
19.7
Schemat blokowy FMC . ...
19.4.1 Obsługiwane pamięci i transakcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Mapowanie adresów urządzeń zewnętrznych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
19.5.1 Mapowanie adresów NOR/PSRAM . ...
Kontroler pamięci flash NOR/PSRAM . ...
19.6.1 Sygnały interfejsu pamięci zewnętrznej . ... 576 19.6.2 Asynchroniczne transakcje kontrolera pamięci flash NOR/PSRAM . . . . . . . . . . . . 578 19.6.3 Transakcje synchroniczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 19.6.4 Rejestry kontrolera NOR/PSRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Kontroler pamięci flash NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
19.7.1 Sygnały interfejsu pamięci zewnętrznej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 19.7.2 Obsługiwane pamięci flash NAND i transakcje . . . . . . . . . . . . . . . . . . 614 19.7.3 Diagramy czasowe dla pamięci flash NAND . ... . . . . . . . . . . . . . . 615 19.7.4 Funkcjonalność oczekiwania na pamięć flash NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 19.7.5 Obliczanie kodu korekcji błędów (ECC)
w pamięci flash NAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 19.7.7 Rejestry kontrolera pamięci flash NAND . ... . . . 618
20
Interfejs Octo-SPI (OCTOSPI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
20.1 Wprowadzenie do OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
20.2 Główne cechy OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
20.3 Implementacja OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
20.4 Opis funkcjonalny OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
20.4.1 Schemat blokowy OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
20.4.2 Piny OCTOSPI i sygnały wewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
20.4.3 Interfejs OCTOSPI do trybów pamięci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
20.4.4 Protokół poleceń regularnych OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
20.4.5 Interfejs sygnału protokołu poleceń regularnych OCTOSPI . . . . . . . . . . . . . . 634
20.4.6 Protokół HyperBus . ...
20.4.7 Cechy szczególne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
18/2187
RM0438 Wersja 8
RM0438
Zawartość
20.5 20.6 20.7
20.4.8 Wprowadzenie do trybu pracy OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . 642 20.4.9 Tryb pośredni OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642 20.4.10 Tryb automatycznego odpytywania stanu OCTOSPI . . . . . . . . . . . . . . . . . . . . . . 644 20.4.11 Tryb mapowania pamięci OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 20.4.12 Wprowadzenie do konfiguracji OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . 646 20.4.13 Konfiguracja systemu OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 20.4.14 Konfiguracja urządzenia OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 20.4.15 Konfiguracja zwykłego trybu poleceń OCTOSPI . . . . . . . . . . . . . . . . 649 20.4.16 Konfiguracja protokołu OCTOSPI HyperBus . . . . . . . . . . . . . . . . . . . . . 651 20.4.17 Zarządzanie błędami OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 20.4.18 OCTOSPI ZAJĘTY i PRZERWIJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 20.4.19 Rekonfiguracja lub dezaktywacja OCTOSPI . . . . . . . . . . . . . . . . . . . . . . 653 20.4.20 Zachowanie NCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Dopasowanie adresu i numer danych. . . . . . . . . . . . . . . . . . . . . . . . . . . 655 Przerwania OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 rejestrów OCTOSPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
20.7.1 Rejestr kontrolny OCTOSPI (OCTOSPI_CR) . . . . . . . . . . . . . . . . . . . . . 657 20.7.2 Rejestr konfiguracji urządzenia OCTOSPI 1 (OCTOSPI_DCR1) . . . . . . 659 20.7.3 Rejestr konfiguracji urządzenia OCTOSPI 2 (OCTOSPI_DCR2) . . . . . . 661 20.7.4 Rejestr konfiguracji urządzenia OCTOSPI 3 (OCTOSPI_DCR3) . . . . . . 662 20.7.5 Rejestr konfiguracji urządzenia OCTOSPI 4 (OCTOSPI_DCR4) . . . . . . 662 20.7.6 Rejestr stanu OCTOSPI (OCTOSPI_SR) . . . . . . . . . . . . . . . . . . . . . . 663 20.7.7 Rejestr kasowania flagi OCTOSPI (OCTOSPI_FCR) . . . . . . . . . . . . . . . . . . 664 20.7.8 Rejestr długości danych OCTOSPI (OCTOSPI_DLR) . . . . . . . . . . . . . . . . 664 20.7.9 Rejestr adresowy OCTOSPI (OCTOSPI_AR) . . . . . . . . . . . . . . . . . . . . 665 20.7.10 Rejestr danych OCTOSPI (OCTOSPI_DR) . . . . . . . . . . . . . . . . . . . . . . . 665 20.7.11 Rejestr maski stanu odpytywania OCTOSPI (OCTOSPI_PSMKR) . . . . . . . 666 20.7.12 Rejestr dopasowania stanu odpytywania OCTOSPI (OCTOSPI_PSMAR) . . . . . . . 667 20.7.13 Rejestr interwałów odpytywania OCTOSPI (OCTOSPI_PIR) . . . . . . . . . . . . . . 667 20.7.14 Rejestr konfiguracji komunikacji OCTOSPI (OCTOSPI_CCR) . . 667 20.7.15 Rejestr konfiguracji taktowania OCTOSPI (OCTOSPI_TCR) . . . . . . . . . . 670 20.7.16 Rejestr instrukcji OCTOSPI (OCTOSPI_IR) . . . . . . . . . . . . . . . . . . . 670 20.7.17 Rejestr bajtów alternatywnych OCTOSPI (OCTOSPI_ABR) . . . . . . . . . . . . . 671 20.7.18 Rejestr limitu czasu małej mocy OCTOSPI (OCTOSPI_LPTR) . . . . . . . . . . 671 20.7.19 Rejestr konfiguracji komunikacji opakowania OCTOSPI
(OCTOSPI_WPCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672 20.7.20 Rejestr konfiguracji taktowania zawijania OCTOSPI (OCTOSPI_WPTCR) . . 674
RM0438 Wersja 8
19/2187
54
Zawartość
RM0438
20.7.21 Rejestr instrukcji zawijania OCTOSPI (OCTOSPI_WPIR) . . . . . . . . . . . . 674 20.7.22 OCTOSPI zawijanie rejestru bajtów alternatywnych (OCTOSPI_WPABR) . . . . . . 675 20.7.23 OCTOSPI zapisuje rejestr konfiguracji komunikacji
(OCTOSPI_WCCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675 20.7.24 Rejestr konfiguracyjny czasu zapisu OCTOSPI (OCTOSPI_WTCR) . . . . 677 20.7.25 Rejestr instrukcji zapisu OCTOSPI (OCTOSPI_WIR) . . . . . . . . . . . . . 678 20.7.26 OCTOSPI zapis rejestru bajtów alternatywnych (OCTOSPI_WABR) . . . . . . . 678 20.7.27 Rejestr konfiguracji opóźnienia OCTOSPI HyperBus
(OCTOSPI_HLCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679 20.7.28 Mapa rejestrów OCTOSPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
21
Przetworniki analogowo-cyfrowe (ADC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
21.1 Wprowadzenie do przetwornika ADC . ...
21.2 Główne cechy przetwornika ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
21.3 Implementacja ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
21.4 Opis funkcjonalny przetwornika ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686
21.4.1 Schemat blokowy przetwornika ADC . ...
21.4.2 Piny ADC i sygnały wewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
21.4.3 Zegary ADC . ...
21.4.4 Łączność ADC1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
21.4.5 Interfejs AHB podrzędny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
21.4.6 Tryb głębokiego wyłączania zasilania ADC (DEEPPWD) i głośność ADCtagregulator e (ADVREGEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
21.4.7 Kanały wejściowe jednostronne i różnicowe . . . . . . . . . . . . . . . . . . . . . . . . 693
21.4.8 Kalibracja (ADCAL, ADCALDIF, ADC_CALFACT) . . . . . . . . . . . . . . . . . 693
21.4.9 Sterowanie włączaniem/wyłączaniem przetwornika ADC (ADEN, ADDIS, ADRDY) . . . . . . . . . . . . . . . . . . . . . . . . . 696
21.4.10 Ograniczenia przy zapisie bitów sterujących przetwornika ADC . . . . . . . . . . . . . . . . . . . . . . . 697
21.4.11 Wybór kanału (ADC_SQRy, ADC_JSQR) . . . . . . . . . . . . . . . . . . . . . . . 698
21.4.12 Programowalne kanałowo sampczas trwania (SMPR1, SMPR2) . . . . . 699
21.4.13 Tryb pojedynczej konwersji (CONT = 0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
21.4.14 Tryb konwersji ciągłej (CONT = 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
21.4.15 Konwersje początkowe (ADSTART, JADSTART) . . . . . . . . . . . . . . . . . . . . . . . 701
21.4.16 Czas działania przetwornika ADC . ...
21.4.17 Zatrzymywanie trwającej konwersji (ADSTP, JADSTP) . . . . . . . . . . . . . . . . 702
21.4.18 Konwersja na zewnętrznym wyzwalaczu i polaryzacja wyzwalacza (EXTSEL, EXTEN, JEXTSEL, JEXTEN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
21.4.19 Zarządzanie kanałami wtryskiwanymi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
21.4.20 Tryb nieciągły (DISCEN, DISCNUM, JDISCEN) . . . . . . . . . . . . 708
20/2187
RM0438 Wersja 8
RM0438
Zawartość
21.5 21.6 21.7
21.4.21 Kolejka kontekstu dla wstrzykiwanych konwersji . . . . . . . . . . . . . . . . . . . . . . . . . . . 709 21.4.22 Rozdzielczość programowalna (RES) – tryb szybkiej konwersji . . . . . . . . . . . 717 21.4.23 Koniec konwersji, koniec sampfaza konwersji (EOC, JEOC, EOSMP) . . 718 21.4.24 Koniec sekwencji konwersji (EOS, JEOS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 718 21.4.25 Diagramy czasowe np.ample (tryby pojedynczy/ciągły,
wyzwalacze sprzętowe/programowe) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719 21.4.26 Zarządzanie danymi . ... 721 21.4.27 Dynamiczne funkcje niskiego poboru mocy . ...
AWD1CH, AWD2CH, AWD3CH, AWD_HTx, AWD_LTx, AWDx) . . . . . 732 21.4.30 Oversampler . ... . . . . . . . . . . . . . . . . . . . . . . . . . 736 21.4.31 Monitorowanie zasilania VBAT . ...tagodniesienie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758
Przetwornik ADC w trybie niskiego poboru mocy . ... . . . . . . 759
21.7.1 Rejestr przerwań i stanu przetwornika ADC (ADC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . 761 21.7.2 Rejestr włączania przerwań przetwornika ADC (ADC_IER) . . . . . . . . . . . . . . . . . . . . . . . . . . 763 21.7.3 Rejestr sterujący przetwornika ADC (ADC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765 21.7.4 Rejestr konfiguracji przetwornika ADC (ADC_CFGR) . . . . . . . . . . . . . . . . . . . . . . . . . 768 21.7.5 Rejestr konfiguracji ADC 2 (ADC_CFGR2) . . . . . . . . . . . . . . . . . . . . . . . 772 21.7.6 Rejestry ADCamprejestr czasu 1 (ADC_SMPR1) . . . . . . . . . . . . . . . . . . . . . . . . . 774 21.7.7 ADC samprejestr czasu 2 (ADC_SMPR2) . . . . . . . . . . . . . . . . . . . . . . . . . 775 21.7.8 Rejestr progu watchdoga ADC 1 (ADC_TR1) . . . . . . . . . . . . . . . . . . . . 776 21.7.9 Rejestr progu watchdoga ADC 2 (ADC_TR2) . . . . . . . . . . . . . . . . . . 776 21.7.10 Rejestr progu watchdoga ADC 3 (ADC_TR3) . . . . . . . . . . . . . . . . . . 777 21.7.11 Rejestr regularnej sekwencji przetwornika ADC 1 (ADC_SQR1) . . . . . . . . . . . . . . . . . . . . . 778 21.7.12 Rejestr regularnej sekwencji przetwornika ADC 2 (ADC_SQR2) . . . . . . . . . . . . . . . . . . . . 779 21.7.13 Rejestr regularnej sekwencji przetwornika ADC 3 (ADC_SQR3) . . . . . . . . . . . . . . . . . . . . 780 21.7.14 Rejestr regularnej sekwencji przetwornika ADC 4 (ADC_SQR4) . . . . . . . . . . . . . . . . . 781 21.7.15 Rejestr danych regularnych przetwornika ADC (ADC_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781 21.7.16 Rejestr sekwencji wstrzykiwanej do przetwornika ADC (ADC_JSQR) . . . . . . . . . . . . . . . . . . . . . . . . . 782 21.7.17 Rejestr przesunięcia y przetwornika ADC (ADC_OFRy) . ... 784 21.7.18 Rejestr danych kanału y wtryskiwanego przez przetwornik ADC (ADC_JDRy) . . . . . . . . . . . . . . . . . . . 785
RM0438 Wersja 8
21/2187
54
Zawartość
RM0438
21.8 21.9
21.7.19 Rejestr konfiguracji analogowego układu watchdog 2 przetwornika ADC (ADC_AWD2CR) . . . . 785 21.7.20 Rejestr konfiguracji analogowego układu watchdog 3 przetwornika ADC (ADC_AWD3CR) . . . . 786 21.7.21 Rejestr wyboru trybu różnicowego przetwornika ADC (ADC_DIFSEL) . . . . . . . . . . 786 21.7.22 Współczynniki kalibracji przetwornika ADC (ADC_CALFACT) . . . . . . . . . . . . . . . . . . . . . . . . . . 787
Wspólne rejestry ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
21.8.1 Wspólny rejestr stanu przetwornika ADC (ADC_CSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 787 21.8.2 Wspólny rejestr sterujący przetwornika ADC (ADC_CCR) . . . . . . . . . . . . . . . . . . . . . . . . 789 21.8.3 Wspólny rejestr danych regularnych przetwornika ADC dla trybu dualnego (ADC_CDR) . . . . . . 792
Mapa rejestrów ADC . ...
22
Przetwornik cyfrowo-analogowy (DAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
22.1 Wprowadzenie do przetwornika DAC . ...
22.2 Główne cechy przetwornika DAC . ...
22.3 Implementacja DAC . ...
22.4 Opis funkcjonalny przetwornika DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
22.4.1 Schemat blokowy przetwornika DAC . ...
22.4.2 Włączanie kanału DAC . ...
22.4.3 Format danych DAC . ...
22.4.4 Konwersja DAC . ...
22.4.5 Objętość wyjściowa DACtagtj. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
22.4.6 Wybór wyzwalacza DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
22.4.7 Żądania DMA . ...
22.4.8 Generowanie hałasu . ...
22.4.9 Generowanie fali trójkątnej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 805
22.4.10 Tryby kanału DAC . ...
22.4.11 Kalibracja bufora kanału DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
22.4.12 Tryby konwersji kanału DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
22.4.13 Tryby konwersji dwóch kanałów DAC (jeśli dostępne są dwa kanały) . ...
22.5 DAC w trybach niskiego poboru mocy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 815
22.6 Przerwania DAC . ...
22.7 Rejestry DAC . ...
22.7.1 Rejestr sterujący DAC (DAC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 816
22.7.2 Rejestr wyzwalacza oprogramowania DAC (DAC_SWTRGR) . . . . . . . . . . . . . . . . . . . . 820
22.7.3 Rejestr danych DAC kanału 1, 12-bitowy, wyrównany do prawej strony (DAC_DHR12R1) . ...
22/2187
RM0438 Wersja 8
RM0438
Zawartość
22.7.4 Rejestr danych kanału 1 DAC z 12-bitowym wyrównaniem do lewej strony (DAC_DHR12L1) . ...
22.7.5 Rejestr danych 1-bitowych wyrównanych do prawej strony kanału DAC 8 (DAC_DHR8R1) . ...
22.7.6 Rejestr danych kanału 2 DAC, 12-bitowy, wyrównany do prawej strony (DAC_DHR12R2) . ...
22.7.7 Rejestr danych kanału 2 DAC z 12-bitowym wyrównaniem do lewej strony (DAC_DHR12L2) . ...
22.7.8 Rejestr danych 2-bitowych wyrównanych do prawej strony kanału DAC 8 (DAC_DHR8R2) . ...
22.7.9 Podwójny 12-bitowy rejestr danych DAC wyrównany do prawej strony (DAC_DHR12RD) . ...
22.7.10 Podwójny przetwornik cyfrowo-analogowy (DAC_DHR12LD) o 12-bitowej, wyrównanej do lewej stronie pamięci danych . ...
22.7.11 Podwójny 8-bitowy rejestr danych DAC wyrównany do prawej strony (DAC_DHR8RD) . ...
22.7.12 Rejestr wyjściowy danych kanału 1 DAC (DAC_DOR1) . . . . . . . . . . . . . . . . . . . . 825
22.7.13 Rejestr wyjściowy danych kanału 2 DAC (DAC_DOR2) . . . . . . . . . . . . . . . . . . . . 825
22.7.14 Rejestr stanu DAC (DAC_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 825
22.7.15 Rejestr sterujący kalibracją DAC (DAC_CCR) . . . . . . . . . . . . . . . . . . . . . . . . 827
22.7.16 Rejestr sterujący trybem DAC (DAC_MCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
22.7.17 Kanał DAC 1 sample i przytrzymaj samprejestr czasu le (DAC_SHSR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
22.7.18 Kanał DAC 2 sample i przytrzymaj samprejestr czasu le (DAC_SHSR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
22.7.19 DAC-iamprejestr czasu le i przytrzymania (DAC_SHHR) . . . . . . . . . . . . . . . . . 829
22.7.20 DAC-iamprejestr czasu odświeżania le and hold (DAC_SHRR) . . . . . . . . . 830
22.7.21 Mapa rejestrów DAC . ...
23
TomtagBufor odniesienia (VREFBUF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
23.1 Wprowadzenie do VREFBUF . ...
23.2 Opis funkcjonalny VREFBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 833
23.3 Przycinanie VREFBUF . ...
23.4 Rejestry VREFBUF . ...
23.4.1 Rejestr sterowania i stanu VREFBUF (VREFBUF_CSR) . . . . . . . . . . . 835
23.4.2 Rejestr sterujący kalibracją VREFBUF (VREFBUF_CCR) . . . . . . . . . . . 836
23.4.3 Mapa rejestrów VREFBUF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
24
Komparator (COMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837
24.1 Wprowadzenie . ...
RM0438 Wersja 8
23/2187
54
Zawartość
RM0438
24.2 24.3
24.4 24.5 24.6
Główne cechy COMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837 Opis funkcjonalny COMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
24.3.1 Schemat blokowy COMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838 24.3.2 Piny COMP i sygnały wewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838 24.3.3 Resetowanie i zegary COMP . ... . . . 839 24.3.4 Mechanizm LOCK komparatora . ... . . . . . . . . . . . . . . . . . . . . . . . 839 24.3.5 Funkcja wygaszania wyjścia komparatora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840 24.3.6 Tryby mocy i prędkości COMP . ...
Tryby niskiego poboru mocy COMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842 Przerwania COMP . ... . . . . . . . . . . . 842
24.6.1 Rejestr sterowania i stanu komparatora 1 (COMP1_CSR) . . . . . . . . . . . 843 24.6.2 Rejestr sterowania i stanu komparatora 2 (COMP2_CSR) . . . . . . . . . . . . 845 24.6.3 Mapa rejestrów COMP . ...
25
Operacyjny amplifierzy (OPAMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
25.1 Wprowadzenie . ...
25.2 OPAMP główne cechy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
25.3 OPAMP opis funkcjonalny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
25.3.1 OPAMP reset i zegary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
25.3.2 Konfiguracja początkowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
25.3.3 Trasowanie sygnału . ...
25.3.4 OPAMP tryby . ...
25.3.5 Kalibracja . ...
25.4 OPAMP tryby niskiego poboru mocy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 856
25.5 OPAMP rejestry . ...
25.5.1 OPAMP1 rejestr sterujący/statusu (OPAMP1_CSR) . . . . . . . . . . . . . . . . . . . 857
25.5.2 OPAMP1 rejestr przycinania offsetowego w trybie normalnym (OPAMP1_OTR) . . 858
25.5.3 OPAMP1 rejestr przycinania offsetowego w trybie niskiego poboru mocy (OPAMP1_LPOTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
25.5.4 OPAMP2 rejestr sterujący/statusu (OPAMP2_CRS) . . . . . . . . . . . . . . . . . . . 859
25.5.5 OPAMP2 rejestr przycinania offsetowego w trybie normalnym (OPAMP2_OTR) . . 860
25.5.6 OPAMP2 rejestr przycinania offsetowego w trybie niskiego poboru mocy (OPAMP2_LPOTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
25.5.7 OPAMP zarejestruj mapę . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
24/2187
RM0438 Wersja 8
RM0438
Zawartość
26
Filtr cyfrowy dla modulatorów sigma-delta (DFSDM) . . . . . . . . . . . . . . . . . . 862
26.1 Wprowadzenie . ...
26.2 Główne cechy DFSDM . ...
26.3 Implementacja DFSDM . ...
26.4 Opis funkcjonalny DFSDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 865
26.4.1 Schemat blokowy DFSDM . ...
26.4.2 Piny DFSDM i sygnały wewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
26.4.3 Resetowanie DFSDM i zegary . ...
26.4.4 Transceivery kanału szeregowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
26.4.5 Konfigurowanie wejściowego interfejsu szeregowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
26.4.6 Równoległe wprowadzanie danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
26.4.7 Wybór kanału . ...
26.4.8 Konfiguracja filtra cyfrowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881
26.4.9 Jednostka integrująca . ...
26.4.10 Analogowy układ nadzorujący . ...
26.4.11 Detektor zwarcia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
26.4.12 Detektor ekstremalny . ...
26.4.13 Blok jednostek danych . ...
26.4.14 Format danych podpisanych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
26.4.15 Uruchamianie konwersji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
26.4.16 Tryb ciągły i szybki tryb ciągły . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888
26.4.17 Pierwszeństwo żądań . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
26.4.18 Optymalizacja mocy w trybie pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
26.5 Przerwania DFSDM . ...
26.6 Transfer DMA DFSDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
26.7 Rejestry kanału y DFSDM (y=0..3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
26.7.1 Rejestr konfiguracji kanału y DFSDM (DFSDM_CHyCFGR1) . . . . 892
26.7.2 Rejestr konfiguracji kanału y DFSDM (DFSDM_CHyCFGR2) . . . . 894
26.7.3 Rejestr analogowego układu nadzorującego i detektora zwarć kanału y DFSDM (DFSDM_CHyAWSCDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 895
26.7.4 Rejestr danych filtru nadzorującego kanał DFSDM (DFSDM_CHyWDATR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 896
26.7.5 Rejestr wejściowy danych kanału y DFSDM (DFSDM_CHyDATINR) . . . . . . 896
26.7.6 Rejestr opóźnienia kanału y DFSDM (DFSDM_CHyDLYR) . . . . . . . . . . . . 897
26.8 Rejestry modułu filtra DFSDM x (x=0..3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
26.8.1 Filtr DFSDM x rejestr sterujący 1 (DFSDM_FLTxCR1) . . . . . . . . . . . . . . 898
26.8.2 Filtr DFSDM x rejestr sterujący 2 (DFSDM_FLTxCR2) . . . . . . . . . . . . . . 901
RM0438 Wersja 8
25/2187
54
Zawartość
RM0438
26.8.3 Rejestr przerwania i stanu filtra DFSDM x (DFSDM_FLTxISR) . . . . . 902
26.8.4 Rejestr czyszczenia flagi przerwania filtra DFSDM x (DFSDM_FLTxICR) . . . . . 904
26.8.5 Rejestr wyboru grupy kanałów wtryskiwanych przez filtr DFSDM x (DFSDM_FLTxJCHGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
26.8.6 Filtr DFSDM x rejestr sterujący (DFSDM_FLTxFCR) . . . . . . . . . . . . . . . . 905
26.8.7 Rejestr danych filtra DFSDM x dla grupy wstrzykiwanej (DFSDM_FLTxJDATAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 906
26.8.8 Rejestr danych filtra x DFSDM dla kanału regularnego (DFSDM_FLTxRDATAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907
26.8.9 Rejestr wysokiego progu filtra DFSDM x analogowego układu nadzorującego (DFSDM_FLTxAWHTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
26.8.10 Rejestr niskiego progu filtru DFSDM x analogowy watchdog (DFSDM_FLTxAWLTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
26.8.11 Rejestr stanu filtra DFSDM x analogowego układu nadzorującego (DFSDM_FLTxAWSR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
26.8.12 Rejestr flagi czyszczenia filtra DFSDM x analogowego układu nadzorującego (DFSDM_FLTxAWCFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
26.8.13 Rejestr maksymalny detektora ekstremów filtru DFSDM x (DFSDM_FLTxEXMAX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 910
26.8.14 Rejestr minimalny detektora ekstremów filtru DFSDM x (DFSDM_FLTxEXMIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
26.8.15 Rejestr timera konwersji filtra DFSDM x (DFSDM_FLTxCNVTIMR) . . 911
26.8.16 Mapa rejestrów DFSDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 912
27
Kontroler dotykowy (TSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
27.1 Wprowadzenie . ...
27.2 Główne cechy TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 920
27.3 Opis funkcjonalny TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
27.3.1 Schemat blokowy TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 921
27.3.2 Nabywanie danych o przeniesieniu ładunku powierzchniowegoview . . . . . . . . . . . . . . . . . . . 921
27.3.3 Resetowanie i zegary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
27.3.4 Sekwencja pozyskiwania transferu ładunku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 924
27.3.5 Funkcja rozproszonego widma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925
27.3.6 Maksymalny błąd liczby . ...
27.3.7 SampWybór trybu wejścia/wyjścia kondensatora i kanału wejścia/wyjścia . . . . . . . . . . . 926
27.3.8 Tryb akwizycji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
27.3.9 Histereza wejścia/wyjścia i sterowanie przełącznikiem analogowym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 927
27.4 Tryby niskiego poboru mocy TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
27.5 Przerwania TSC . ...
26/2187
RM0438 Wersja 8
RM0438
Zawartość
27.6
Rejestry TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928
27.6.1 Rejestr sterujący TSC (TSC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 928 27.6.2 Rejestr włączający przerwanie TSC (TSC_IER) . . . . . . . . . . . . . . . . . . . . . . . . . 931 27.6.3 Rejestr zerowania przerwania TSC (TSC_ICR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 27.6.4 Rejestr stanu przerwania TSC (TSC_ISR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 932 27.6.5 Rejestr sterujący histerezą wejścia/wyjścia TSC (TSC_IOHCR) . . . . . . . . . . . . . . . . . 933 27.6.6 Rejestr sterujący przełącznikiem analogowym wejścia/wyjścia TSC
(TSC_IOASCR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933 27.6.7 We/wy TSCampRejestr sterujący kanałem wejścia/wyjścia (TSC_IOSCR) . . . . . . . . . . . . . . . . . . . 934 27.6.8 Rejestr sterujący kanałem wejścia/wyjścia TSC (TSC_IOCCR) . . . . . . . . . . . . . . . . . . . 934 27.6.9 Rejestr stanu sterowania grupy wejść/wyjść TSC (TSC_IOGCSR) . . . . . . . . . . . . . 935 27.6.10 Rejestr licznika grupy x wejść/wyjść TSC (TSC_IOGxCR) . . . . . . . . . . . . . . . . . 935 27.6.11 Mapa rejestrów TSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936
28
Generator prawdziwie losowych liczb (RNG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938
28.1 Wprowadzenie do RNG . ...
28.2 Główne cechy RNG . ...
28.3 Opis funkcjonalny RNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
28.3.1 Schemat blokowy RNG . ...
28.3.2 Sygnały wewnętrzne RNG . ...
28.3.3 Generowanie liczb losowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
28.3.4 Inicjalizacja RNG . ...
28.3.5 Działanie generatora liczb losowych (RNG) . ...
28.3.6 Taktowanie RNG . ...
28.3.7 Zarządzanie błędami . ...
28.3.8 Użycie generatora liczb losowych o niskim poborze mocy . ...
28.4 Przerwania RNG . ...
28.5 Czas przetwarzania RNG . ...
28.6 Walidacja źródła entropii RNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
28.6.1 Wprowadzenie . ...
28.6.2 Warunki walidacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 947
28.6.3 Gromadzenie danych . ...
28.7 Rejestry RNG . ...
28.7.1 Rejestr sterujący RNG (RNG_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948
28.7.2 Rejestr stanu RNG (RNG_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 950
28.7.3 Rejestr danych RNG (RNG_DR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
28.7.4 Rejestr kontroli stanu RNG (RNG_HTCR) . . . . . . . . . . . . . . . . . . . . . . 952
RM0438 Wersja 8
27/2187
54
Zawartość
RM0438
28.7.5 Mapa rejestrów RNG . ...
29
Sprzętowy akcelerator AES (AES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
29.1 Wprowadzenie . ...
29.2 Główne cechy AES . ...
29.3 Implementacja AES . ...
29.4 Opis funkcjonalny AES . ...
29.4.1 Schemat blokowy AES . ...
29.4.2 Sygnały wewnętrzne AES . ...
29.4.3 Rdzeń kryptograficzny AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954
29.4.4 Procedura AES do wykonania operacji szyfrowania . . . . . . . . . . . . . . . . . . . . . . . 960
29.4.5 Przygotowanie klucza rundy deszyfrowania AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
29.4.6 Kradzież szyfrogramu AES i uzupełnianie danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . 963
29.4.7 Zawieszanie i wznawianie zadań AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
29.4.8 Podstawowe tryby łączenia łańcuchowego AES (ECB, CBC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964
29.4.9 Tryb licznika AES (CTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969
29.4.10 Tryb Galois/licznika AES (GCM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
29.4.11 Kod uwierzytelniania wiadomości AES Galois (GMAC) . . . . . . . . . . . . . . . . 976
29.4.12 Licznik AES z CBC-MAC (CCM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978
29.4.13 Rejestry danych AES i wymiana danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 983
29.4.14 Rejestry kluczy AES . ...
29.4.15 Rejestry wektorów inicjalizacyjnych AES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
29.4.16 Interfejs AES DMA . ...
29.4.17 Zarządzanie błędami AES . ...
29.5 Przerwania AES . ...
29.6 Opóźnienie przetwarzania AES . ...
29.7 Rejestry AES . ...
29.7.1 Rejestr sterujący AES (AES_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 989
29.7.2 Rejestr stanu AES (AES_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991
29.7.3 Rejestr wejściowy danych AES (AES_DINR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
29.7.4 Rejestr wyjściowy danych AES (AES_DOUTR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 993
29.7.5 Rejestr klucza AES 0 (AES_KEYR0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
29.7.6 Rejestr klucza AES 1 (AES_KEYR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994
29.7.7 Rejestr klucza AES 2 (AES_KEYR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
29.7.8 Rejestr klucza AES 3 (AES_KEYR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
29.7.9 Rejestr wektora inicjalizacyjnego AES 0 (AES_IVR0) . . . . . . . . . . . . . . . . . . . . . . 995
28/2187
RM0438 Wersja 8
RM0438
Zawartość
29.7.10 Rejestr wektora inicjalizacji AES 1 (AES_IVR1) . . . . . . . . . . . . . . . . . . . . . 996 29.7.11 Rejestr wektora inicjalizacji AES 2 (AES_IVR2) . . . . . . . . . . . . . . . . . . . . . 996 29.7.12 Rejestr wektora inicjalizacji AES 3 (AES_IVR3) . . . . . . . . . . . . . . . . . . . . 996 29.7.13 Rejestr klucza AES 4 (AES_KEYR4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 29.7.14 Rejestr klucza AES 5 (AES_KEYR5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 29.7.15 Rejestr klucza AES 6 (AES_KEYR6) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 997 29.7.16 Rejestr klucza AES 7 (AES_KEYR7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998 29.7.17 Rejestry zawieszenia AES (AES_SUSPxR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998 29.7.18 Mapa rejestrów AES . ...
30
Procesor skrótu (HASH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
30.1 Wprowadzenie . ...
30.2 Główne cechy HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001
30.3 Implementacja HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
30.4 Opis funkcjonalny HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
30.4.1 Schemat blokowy HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1002
30.4.2 Sygnały wewnętrzne HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
30.4.3 O bezpiecznych algorytmach skrótu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
30.4.4 Podawanie danych komunikatów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
30.4.5 Obliczanie skrótu wiadomości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
30.4.6 Wypełnienie wiadomości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
30.4.7 Operacje HMAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
30.4.8 Operacje zawieszenia/wznowienia HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
30.4.9 Interfejs HASH DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
30.4.10 Zarządzanie błędami HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
30.4.11 Czas przetwarzania HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012
30.5 Przerwania HASH . ...
30.6 Rejestry HASH . ...
30.6.1 Rejestr sterujący HASH (HASH_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014
30.6.2 Rejestr wejściowy danych HASH (HASH_DIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1016
30.6.3 Rejestr początkowy HASH (HASH_STR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
30.6.4 Rejestry skrótu HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018
30.6.5 Rejestr włączający przerwanie HASH (HASH_IMR) . . . . . . . . . . . . . . . . . . . . . . 1019
30.6.6 Rejestr stanu HASH (HASH_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
30.6.7 Rejestry wymiany kontekstu HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
30.6.8 Mapa rejestrów HASH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1021
RM0438 Wersja 8
29/2187
54
Zawartość
RM0438
31
Silnik deszyfrowania w locie (OTFDEC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
31.1 Wprowadzenie do OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
31.2 Główne cechy OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1023
31.3 Opis funkcjonalny OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
31.3.1 Schemat blokowy OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
31.3.2 Sygnały wewnętrzne OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
31.3.3 Odszyfrowywanie OTFDEC w locie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
31.3.4 Wykorzystanie OTFDEC algorytmu AES w deszyfrowaniu w trybie licznika . . . . . . . . . . . . . . 1026
31.3.5 Zarządzanie kontrolą przepływu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
31.3.6 Zarządzanie błędami OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1027
31.4 Przerwania OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
31.5 Informacje o aplikacji OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
31.5.1 Proces inicjalizacji OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028
31.5.2 OTFDEC i zarządzanie energią . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
31.5.3 Szyfrowanie dla OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
31.5.4 Kod źródłowy klucza OTFDEC CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
31.6 Rejestry OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1032
31.6.1 Rejestr sterujący OTFDEC (OTFDEC_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . 1032
31.6.2 Rejestr konfiguracji kontroli dostępu uprzywilejowanego OTFDEC (OTFDEC_PRIVCFGR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
31.6.3 Rejestr konfiguracji regionu x OTFDEC (OTFDEC_RxCFGR) . . . . . 1033
31.6.4 Rejestr adresu początkowego regionu x OTFDEC (OTFDEC_RxSTARTADDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1035
31.6.5 Rejestr adresu końcowego regionu x OTFDEC (OTFDEC_RxENDADDR) . 1035
31.6.6 Region OTFDEC x rejestr nonce 0 (OTFDEC_RxNONCER0) . . . . . 1036
31.6.7 Region OTFDEC x rejestr nonce 1 (OTFDEC_RxNONCER1) . . . . . 1037
31.6.8 Rejestr klucza regionu x OTFDEC 0 (OTFDEC_RxKEYR0) . . . . . . . . . . . 1037
31.6.9 Rejestr klucza regionu x OTFDEC 1 (OTFDEC_RxKEYR1) . . . . . . . . . . . 1038
31.6.10 Rejestr klucza regionu x OTFDEC 2 (OTFDEC_RxKEYR2) . . . . . . . . . . . 1038
31.6.11 Rejestr klucza regionu x OTFDEC 3 (OTFDEC_RxKEYR3) . . . . . . . . . . . 1039
31.6.12 Rejestr stanu przerwania OTFDEC (OTFDEC_ISR) . . . . . . . . . . . . . . . . 1039
31.6.13 Rejestr czyszczenia przerwania OTFDEC (OTFDEC_ICR) . . . . . . . . . . . . . . . . . 1040
31.6.14 Rejestr włączający przerwanie OTFDEC (OTFDEC_IER) . . . . . . . . . . . . . . . . 1041
31.6.15 Mapa rejestrów OTFDEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1042
32
Akcelerator klucza publicznego (PKA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
32.1 Wprowadzenie . ...
30/2187
RM0438 Wersja 8
RM0438
Zawartość
32.2 32.3
32.4
32.5 32.6 32.7
Główne cechy PKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046 Opis funkcjonalny PKA . ...
32.3.1 Schemat blokowy PKA . ... . . . . . . . . . . . . . . . . . 1046 32.3.2 Przyspieszenie klucza publicznego PKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047 32.3.3 Typowe zastosowania PKA . ... . . 1047 32.3.4 Zarządzanie błędami PKA . ...
Tryby pracy PKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1052
32.4.1 Wprowadzenie . ... . . . . . . . . . . . 1052 32.4.2 Odejmowanie modularne . ... . . . . . . . . . . . 1053 32.4.3 Inwersja modularna . ... . ... 1054 32.4.4 Porównanie arytmetyczne . ... . . . . . . . . . 1054 32.4.5 Mnożenie skalarne ECC Fp . ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1055
Exampliczba konfiguracji i czasów przetwarzania . . . . . . . . . . . . . . . . . . . . . 1064
32.5.1 Obsługiwane krzywe eliptyczne . ...
Przerwania PKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067 Rejestry PKA . ...
32.7.1 Rejestr kontrolny PKA (PKA_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068 32.7.2 Rejestr stanu PKA (PKA_SR) . ... 1069 32.7.3 Pamięć RAM PKA . ...
RM0438 Wersja 8
31/2187
54
Zawartość
RM0438
32.7.5 Mapa rejestru PKA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1071
33
Zaawansowane timery sterujące (TIM1/TIM8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
33.1 Wprowadzenie do TIM1/TIM8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
33.2 Główne cechy TIM1/TIM8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1072
33.3 Opis funkcjonalny TIM1/TIM8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1074
33.3.1 Jednostka podstawy czasu . ...
33.3.2 Tryby licznika . ...
33.3.3 Licznik powtórzeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
33.3.4 Wejście wyzwalacza zewnętrznego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
33.3.5 Wybór zegara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1090
33.3.6 Przechwytywanie/porównywanie kanałów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094
33.3.7 Tryb przechwytywania danych wejściowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096
33.3.8 Tryb wejściowy PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
33.3.9 Tryb wymuszonego wyjścia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
33.3.10 Tryb porównywania wyjść . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
33.3.11 Tryb PWM . ...
33.3.12 Tryb PWM asymetryczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1103
33.3.13 Tryb łączony PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
33.3.14 Tryb PWM 3-fazowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1105
33.3.15 Wyjścia uzupełniające i wstawianie w czasie martwym . . . . . . . . . . . . . . . . . 1106
33.3.16 Korzystanie z funkcji break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108
33.3.17 Wejścia dwukierunkowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
33.3.18 Czyszczenie sygnału OCxREF w przypadku zdarzenia zewnętrznego . . . . . . . . . . . . . . . . 1115
33.3.19 Generowanie PWM w 6 krokach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
33.3.20 Tryb jednoimpulsowy . ...
33.3.21 Tryb ponownego wyzwalania jednym impulsem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
33.3.22 Tryb interfejsu enkodera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1120
33.3.23 Ponowne mapowanie bitów UIF . ...
33.3.24 Funkcja XOR wejścia timera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
33.3.25 Współpraca z czujnikami Halla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
33.3.26 Synchronizacja timera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126
33.3.27 Synchronizacja przetwornika ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1130
33.3.28 Tryb serii DMA . ...
33.3.29 Tryb debugowania . ...
33.4 Rejestry TIM1/TIM8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1132
33.4.1 Rejestr sterujący TIMx 1 (TIMx_CR1)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . 1132
32/2187
RM0438 Wersja 8
RM0438
Zawartość
33.4.2 Rejestr sterujący TIMx 2 (TIMx_CR2)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . 1133
33.4.3 Rejestr sterujący trybem podrzędnym TIMx (TIMx_SMCR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1136
33.4.4 Rejestr włączania przerwania/DMA TIMx (TIMx_DIER)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1138
33.4.5 Rejestr stanu TIMx (TIMx_SR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1140
33.4.6 Rejestr generowania zdarzeń TIMx (TIMx_EGR)(x = 1, 8) . . . . . . . . . . . . . 1142
33.4.7 Rejestr trybu przechwytywania/porównywania TIMx 1 (TIMx_CCMR1)(x = 1, 8) . . 1143
33.4.8 Rejestr trybu przechwytywania/porównywania TIMx 1 [alternatywny] (TIMx_CCMR1)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
33.4.9 Rejestr trybu przechwytywania/porównywania TIMx 2 (TIMx_CCMR2)(x = 1, 8) . . 1147
33.4.10 Rejestr trybu przechwytywania/porównywania TIMx 2 [alternatywny] (TIMx_CCMR2)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1148
33.4.11 Rejestr włączający przechwytywanie/porównywanie TIMx (TIMx_CCER)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1149
33.4.12 Licznik TIMx (TIMx_CNT)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
33.4.13 Preskaler TIMx (TIMx_PSC)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1153
33.4.14 Rejestr automatycznego przeładowywania TIMx (TIMx_ARR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . 1153
33.4.15 Rejestr licznika powtórzeń TIMx (TIMx_RCR)(x = 1, 8) . . . . . . . . . . . . 1154
33.4.16 Rejestr przechwytywania/porównania TIMx 1 (TIMx_CCR1)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
33.4.17 Rejestr przechwytywania/porównania TIMx 2 (TIMx_CCR2)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
33.4.18 Rejestr przechwytywania/porównania TIMx 3 (TIMx_CCR3)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1155
33.4.19 Rejestr przechwytywania/porównania TIMx 4 (TIMx_CCR4)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
33.4.20 Rejestr przerwy i czasu martwego TIMx (TIMx_BDTR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
33.4.21 Rejestr sterujący DMA TIMx (TIMx_DCR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1160
33.4.22 Adres DMA TIMx dla pełnego transferu (TIMx_DMAR)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
33.4.23 Rejestr opcji TIM1 1 (TIM1_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
33.4.24 Rejestr opcji TIM8 1 (TIM8_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162
33.4.25 Rejestr trybu przechwytywania/porównywania TIMx 3 (TIMx_CCMR3)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
33.4.26 Rejestr przechwytywania/porównania TIMx 5 (TIMx_CCR5)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1164
33.4.27 Rejestr przechwytywania/porównania TIMx 6 (TIMx_CCR6)(x = 1, 8) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165
RM0438 Wersja 8
33/2187
54
Zawartość
RM0438
33.4.28 Rejestr opcji TIM1 2 (TIM1_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1165 33.4.29 Rejestr opcji TIM1 3 (TIM1_OR3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1167 33.4.30 Rejestr opcji TIM8 2 (TIM8_OR2) . ... 1168 33.4.31 Rejestr opcji TIM8 3 (TIM8_OR3) . ... . . . . . . . . . . . . . . 1170
34
Uniwersalne timery (TIM2/TIM3/TIM4/TIM5) . . . . . . . . . . . . . . . . . . 1177
34.1 Wprowadzenie do TIM2/TIM3/TIM4/TIM5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1177
34.2 Główne cechy TIM2/TIM3/TIM4/TIM5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1177
34.3 Opis funkcjonalny TIM2/TIM3/TIM4/TIM5 . . . . . . . . . . . . . . . . . . . . . . . . .1179
34.3.1 Jednostka podstawy czasu . ...
34.3.2 Tryby licznika . ...
34.3.3 Wybór zegara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1191
34.3.4 Przechwytywanie/porównywanie kanałów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
34.3.5 Tryb przechwytywania danych wejściowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1197
34.3.6 Tryb wejściowy PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
34.3.7 Tryb wymuszonego wyjścia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1199
34.3.8 Tryb porównywania wyjść . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1200
34.3.9 Tryb PWM . ...
34.3.10 Tryb PWM asymetryczny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1204
34.3.11 Tryb łączony PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205
34.3.12 Czyszczenie sygnału OCxREF w przypadku zdarzenia zewnętrznego . . . . . . . . . . . . . . . . 1206
34.3.13 Tryb jednoimpulsowy . ...
34.3.14 Tryb ponownego wyzwalania jednym impulsem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1209
34.3.15 Tryb interfejsu enkodera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1210
34.3.16 Ponowne mapowanie bitów UIF . ...
34.3.17 Funkcja XOR wejścia timera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212
34.3.18 Timery i synchronizacja zewnętrznego wyzwalacza . . . . . . . . . . . . . . . . . . . . . . . 1213
34.3.19 Synchronizacja timera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1216
34.3.20 Tryb serii DMA . ...
34.3.21 Tryb debugowania . ...
34.4 Rejestry TIM2/TIM3/TIM4/TIM5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
34.4.1 Rejestr sterujący TIMx 1 (TIMx_CR1)(x = 2 do 5) . . . . . . . . . . . . . . . . . . . . 1223
34.4.2 Rejestr sterujący TIMx 2 (TIMx_CR2)(x = 2 do 5) . . . . . . . . . . . . . . . . . . . . 1224
34.4.3 Rejestr sterujący trybem podrzędnym TIMx (TIMx_SMCR)(x = 2 do 5) . . . . . . . 1226
34.4.4 Rejestr włączania przerwania/DMA TIMx (TIMx_DIER)(x = 2 do 5) . . . . . . 1229
34/2187
RM0438 Wersja 8
RM0438
Zawartość
34.4.5 Rejestr stanu TIMx (TIMx_SR)(x = 2 do 5) . . . . . . . . . . . . . . . . . . . . . . . . 1230 34.4.6 Rejestr generowania zdarzeń TIMx (TIMx_EGR)(x = 2 do 5) . . . . . . . . . . 1231 34.4.7 Rejestr 1 trybu przechwytywania/porównywania TIMx (TIMx_CCMR1)(x = 2 do 5) . 1232 34.4.8 Rejestr 1 trybu przechwytywania/porównywania TIMx [alternatywny] (TIMx_CCMR1)
(x = od 2 do 5) . ...
(x = 2 do 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237 34.4.11 Rejestr włączający przechwytywanie/porównywanie TIMx
(TIMx_CCER)(x = od 2 do 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238 34.4.12 Licznik TIMx (TIMx_CNT)(x = od 2 do 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1239 34.4.13 Licznik TIMx [alternatywny] (TIMx_CNT)(x = od 2 do 5) . . . . . . . . . . . . . . . 1240 34.4.14 Preskaler TIMx (TIMx_PSC)(x = 2 do 5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240 34.4.15 Rejestr automatycznego przeładowywania TIMx (TIMx_ARR)(x = 2 do 5) . . . . . . . . . . . . . . . 1241 34.4.16 Rejestr przechwytywania/porównania TIMx 1 (TIMx_CCR1)(x = 2 do 5) . . . . . . . 1241 34.4.17 Rejestr przechwytywania/porównania TIMx 2 (TIMx_CCR2)(x = 2 do 5) . . . . . . . 1241 34.4.18 Rejestr przechwytywania/porównania TIMx 3 (TIMx_CCR3)(x = 2 do 5) . . . . . . . 1242 34.4.19 Rejestr przechwytywania/porównania TIMx 4 (TIMx_CCR4)(x = 2 do 5) . . . . . . . 1242 34.4.20 Rejestr sterujący DMA TIMx (TIMx_DCR)(x = 2 do 5) . . . . . . . . . . . . . . 1243 34.4.21 Adres DMA TIMx dla pełnego transferu (TIMx_DMAR)(x = 2 do 5) . . . . . . 1244 34.4.22 Rejestr opcji TIM2 1 (TIM2_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 34.4.23 Rejestr opcji TIM3 1 (TIM3_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244 34.4.24 Rejestr opcji TIM2 2 (TIM2_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 34.4.25 Rejestr opcji TIM3 2 (TIM3_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1245 34.4.26 Mapa rejestrów TIMx . ...
35
Uniwersalne timery (TIM15/TIM16/TIM17) . . . . . . . . . . . . . . . . . . . . 1250
35.1 Wprowadzenie do TIM15/TIM16/TIM17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1250
35.2 Główne cechy TIM15 . ...
35.3 Główne cechy TIM16/TIM17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1251
35.4 Opis funkcjonalny TIM15/TIM16/TIM17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1254
35.4.1 Jednostka podstawy czasu . ...
35.4.2 Tryby licznika . ...
35.4.3 Licznik powtórzeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1260
35.4.4 35.4.5 35.4.6 35.4.7
Wybór zegara . ... . . 1261 Tryb wejściowy PWM (tylko dla TIM1263) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1265
RM0438 Wersja 8
35/2187
54
Zawartość
RM0438
35.5
35.4.8 Tryb wymuszonego wyjścia . ... . . . . . . . . . . . . . . . . . . . . . . 1267 35.4.9 Tryb łączony PWM (tylko TIM1268) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.4.10 1269 Wyjścia uzupełniające i wstawianie z czasem martwym . . . . . . . . . . . . . . . . . 35.4.11 15 Korzystanie z funkcji break . ... . . . 1270 35.4.12 Wejścia dwukierunkowego przerwania . ... . . . . . . . . . . . . . . . . . . . . . . 1271 35.4.13 Tryb ponownego wyzwalania jednym impulsem (tylko TIM1273) . . . . . . . . . . . . . . . . . . . . . . . 35.4.14 1278 Przemapowanie bitów UIF . ... . . . . . . . . . . . . . . 35.4.15 6 Synchronizacja zewnętrznego wyzwalacza (tylko TIM1279) . . . . . . . . . . . . . . . . . . . . . 35.4.16 1281 Tryb Slave, połączony tryb resetowania i wyzwalania . . . . . . . . . . . . . . . . . . . . . . . . 35.4.17 15 Tryb serii DMA . ... 1282 35.4.18 Synchronizacja timera (TIM1283) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35.4.19 15 Używanie wyjścia timera jako wyzwalacza dla innych timerów (TIM1284/TIM35.4.20) . . . . . . 15 1285 Tryb debugowania . ...
Rejestry TIM15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290
35.5.1 Rejestr sterujący TIM15 1 (TIM15_CR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1290 35.5.2 Rejestr sterujący TIM15 2 (TIM15_CR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1291 35.5.3 Rejestr sterujący trybu podrzędnego TIM15 (TIM15_SMCR) . . . . . . . . . . . . . 1293 35.5.4 Rejestr włączania przerwania/DMA TIM15 (TIM15_DIER) . . . . . . . . . . . . . 1294 35.5.5 Rejestr stanu TIM15 (TIM15_SR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1295 35.5.6 Rejestr generowania zdarzeń TIM15 (TIM15_EGR) . . . . . . . . . . . . . . . . . 1297 35.5.7 Rejestr 15 trybu przechwytywania/porównywania TIM1 (TIM15_CCMR1) . . . . . . . 1298 35.5.8 Rejestr 15 trybu przechwytywania/porównywania TIM1 [alternatywny] (TIM15_CCMR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1299 35.5.9 Rejestr umożliwiający przechwytywanie/porównywanie TIM15 (TIM15_CCER) . . . . . . . . . . . 1302 35.5.10 Licznik TIM15 (TIM15_CNT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305 35.5.11 Preskaler TIM15 (TIM15_PSC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1305 35.5.12 Rejestr automatycznego przeładowywania TIM15 (TIM15_ARR) . . . . . . . . . . . . . . . . . . . . . . . 1305 35.5.13 Rejestr licznika powtórzeń TIM15 (TIM15_RCR) . . . . . . . . . . . . . . . . . 1306 35.5.14 Rejestr przechwytywania/porównania TIM15 1 (TIM15_CCR1) . . . . . . . . . . . . . 1306 35.5.15 Rejestr przechwytywania/porównania TIM15 2 (TIM15_CCR2) . . . . . . . . . . . . . . . . . 1307 35.5.16 Rejestr przerwy i czasu martwego TIM15 (TIM15_BDTR) . . . . . . . . . . . . . 1307 35.5.17 Rejestr sterujący DMA TIM15 (TIM15_DCR) . . . . . . . . . . . . . . . . . . . . . . . . . 1310
36/2187
RM0438 Wersja 8
RM0438
Zawartość
35.6
35.5.18 Adres DMA TIM15 dla pełnego transferu (TIM15_DMAR) . . . . . . . . . . . . . 1310 35.5.19 Rejestr opcji TIM15 1 (TIM15_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311 35.5.20 Rejestr opcji TIM15 2 (TIM15_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1311 35.5.21 Mapa rejestrów TIM15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1313
Rejestry TIM16/TIM17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1316
35.6.1 Rejestr sterujący TIMx 1 (TIMx_CR1)(x = 16 do 17) . . . . . . . . . . . . . . . . 1316 35.6.2 Rejestr sterujący TIMx 2 (TIMx_CR2)(x = 16 do 17) . . . . . . . . . . . . . . . . 1317 35.6.3 Rejestr włączania DMA/przerwania TIMx (TIMx_DIER)(x = 16 do 17) . . . . 1318 35.6.4 Rejestr stanu TIMx (TIMx_SR)(x = 16 do 17) . . . . . . . . . . . . . . . . . 1319 35.6.5 Rejestr generowania zdarzeń TIMx (TIMx_EGR)(x = 16 do 17) . . . . . . . . 1320 35.6.6 Rejestr 1 trybu przechwytywania/porównywania TIMx
(TIMx_CCMR1)(x = 16 do 17) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1321 35.6.7 Rejestr 1 trybu przechwytywania/porównywania TIMx [alternatywny] (TIMx_CCMR1)(x = 16 do 17) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1322 35.6.8 Rejestr włączania przechwytywania/porównywania TIMx (TIMx_CCER)(x = 16 do 17) . 1324 35.6.9 Licznik TIMx (TIMx_CNT)(x = 16 do 17) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1326 35.6.10 Preskaler TIMx (TIMx_PSC)(x = 16 do 17) . . . . . . . . . . . . . . . . . . . . . . . . 1327 35.6.11 Rejestr automatycznego przeładowywania TIMx (TIMx_ARR)(x = 16 do 17) . . . . . . . . . . . 1327 35.6.12 Rejestr licznika powtórzeń TIMx (TIMx_RCR)(x = 16 do 17) . . . . . . . . 1328 35.6.13 Rejestr przechwytywania/porównania TIMx 1 (TIMx_CCR1)(x = 16 do 17) . . . . . 1328 35.6.14 Rejestr przerwy i czasu martwego TIMx (TIMx_BDTR)(x = 16 do 17) . . . . 1329 35.6.15 Rejestr sterujący DMA TIMx (TIMx_DCR)(x = 16 do 17) . . . . . . . . . . . . 1331 35.6.16 Adres DMA TIMx dla pełnego transferu (TIMx_DMAR)(x = 16 do 17) . . . . 1332 35.6.17 Rejestr opcji TIM16 1 (TIM16_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332 35.6.18 Rejestr opcji TIM16 2 (TIM16_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1333 35.6.19 Rejestr opcji TIM17 1 (TIM17_OR1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1334 35.6.20 Rejestr opcji TIM17 2 (TIM17_OR2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1335 35.6.21 Mapa rejestrów TIM16/TIM17 . ...
36
Podstawowe timery (TIM6/TIM7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339
36.1 Wprowadzenie do TIM6/TIM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339
36.2 Główne cechy TIM6/TIM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1339
36.3 Opis funkcjonalny TIM6/TIM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1340
36.3.1 Jednostka podstawy czasu . ...
36.3.2 Tryb zliczania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1342
36.3.3 Ponowne mapowanie bitów UIF . ...
36.3.4 Źródło zegara . ...
RM0438 Wersja 8
37/2187
54
Zawartość
RM0438
36.4
36.3.5 Tryb debugowania . ...
Rejestry TIM6/TIM7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1346
36.4.1 Rejestr sterujący TIMx 1 (TIMx_CR1)(x = 6 do 7) . . . . . . . . . . . . . . . . . . . 1346 36.4.2 Rejestr sterujący TIMx 2 (TIMx_CR2)(x = 6 do 7) . . . . . . . . . . . . . . . . . . 1348 36.4.3 Rejestr umożliwiający przerwanie/DMA TIMx (TIMx_DIER)(x = 6 do 7) . . . . . . 1348 36.4.4 Rejestr stanu TIMx (TIMx_SR)(x = 6 do 7) . . . . . . . . . . . . . . . . . . . . 1349 36.4.5 Rejestr generowania zdarzeń TIMx (TIMx_EGR)(x = 6 do 7) . . . . . . . . . . . . 1349 36.4.6 Licznik TIMx (TIMx_CNT)(x = 6 do 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1349 36.4.7 Preskaler TIMx (TIMx_PSC)(x = 6 do 7) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1350 36.4.8 Rejestr automatycznego przeładowywania TIMx (TIMx_ARR)(x = 6 do 7) . . . . . . . . . . . . . . . . 1350 36.4.9 Mapa rejestrów TIMx . ...
37
Timer niskiego poboru mocy (LPTIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
37.1 Wprowadzenie do LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
37.2 Główne cechy LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
37.3 Implementacja LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1352
37.4 Opis funkcjonalny LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353
37.4.1 Schemat blokowy LPTIM . ...
37.4.2 Piny LPTIM i sygnały wewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1353
37.4.3 Mapowanie sygnału wejściowego i wyzwalacza LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1354
37.4.4 Resetowanie LPTIM i zegary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1355
37.4.5 Filtr zakłóceń . ...
37.4.6 Preskaler . ...
37.4.7 Multiplekser wyzwalający . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1356
37.4.8 Tryb pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1357
37.4.9 Funkcja limitu czasu . ...
37.4.10 Generowanie przebiegów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359
37.4.11 Aktualizacja rejestru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1360
37.4.12 Tryb licznika . ...
37.4.13 Włączanie timera . ...
37.4.14 Resetowanie licznika timera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1362
37.4.15 Tryb enkodera . ...
37.4.16 Licznik powtórzeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1364
37.4.17 Tryb debugowania . ...
37.5 Tryby niskiego poboru mocy LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1366
37.6 Przerwania LPTIM . ...
38/2187
RM0438 Wersja 8
RM0438
Zawartość
37.7
Rejestry LPTIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1367
37.7.1 Rejestr przerwania i stanu LPTIM (LPTIM_ISR) . . . . . . . . . . . . . . . . . 1367 37.7.2 Rejestr czyszczenia przerwania LPTIM (LPTIM_ICR) . . . . . . . . . . . . . . . . . . . . . . 1368 37.7.3 Rejestr włączania przerwania LPTIM (LPTIM_IER) . . . . . . . . . . . . . . . . . . . 1369 37.7.4 Rejestr konfiguracji LPTIM (LPTIM_CFGR) . . . . . . . . . . . . . . . . . . . 1370 37.7.5 Rejestr sterujący LPTIM (LPTIM_CR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1373 37.7.6 LPTIM porównuje r
Dokumenty / Zasoby
![]() |
Seria ST STM32L5 – wysokie bezpieczeństwo i niskie zużycie energii [plik PDF] Instrukcja użytkownika RM0438, Seria STM32L5, Wysoki poziom bezpieczeństwa przy niskim zużyciu energii, Seria STM32L5, Wysoki poziom bezpieczeństwa przy niskim zużyciu energii, Niskie zużycie energii, Zużycie energii |