Poradnik STM32 v1_9.pdf

(13603 KB) Pobierz
Mikrokontrolery STM32
Układy peryferyjne i nie tylko
(poradnik dla początkujących)
autor: szczywronek (
szczywronek@gmail.com
)
wersja: 1.9
ostatnia modyfikacja: 26.01.2016
Ziemia Obiecana, 31.07.2015
Inwentarz
1. Wstęp formalny .............................................................................................................................. 7
1.1. Co to właściwie jest? („Quo vadis Domine?”) ......................................................................7
1.2. Ja („Quicquid Latine dictum sit, altum videtur”) ...................................................................8
1.3. Ty („Bene tibi!”) ....................................................................................................................8
1.4. Uwagi końcowe („Cogitationis poenam nemo patitur”) ......................................................10
2. Wstęp techniczny .......................................................................................................................... 12
2.1. Od przybytku głowa (nie) boli („Divitiae non sunt bonum") ..............................................12
2.2. O co chodzi z tym rdzeniem? („Nil mirari, nil indignari, sed intellegere”) .........................14
2.3. Hardware („Nemo sine vitiis est!”) ......................................................................................17
2.4. Piśmiennictwo („Littera docet, littera nocet.”) ....................................................................19
2.5. Software („Ex malis eligere minima oportet”) ....................................................................24
2.6. Słowo o bibliotekach („Relata refero”) ................................................................................25
2.7. Wskazówki przed startowe („Ave, Caesar, morituri te salutant”) ........................................30
3. Porty I/O („Ardua prima via est”) ................................................................................................ 36
3.1. Ogarnąć nóżki w F103 (F103) .............................................................................................36
3.2. Nieśmiertelnie Blinkający Hell of World (F103) .................................................................40
3.3. Atomowo macham nogą i nie tylko .....................................................................................44
3.4. Cortex-M4 wybieram Cię! (F334 i F429) ............................................................................48
3.5. Wybór funkcji alternatywnej (F334 i F429) ........................................................................52
3.6. Remapping funkcji alternatywnych (F103) .........................................................................57
3.7. Elektryczna strona medalu ...................................................................................................58
3.8. Skompensuj mi celę (F429) .................................................................................................60
4. Bit banding („Gemma gemmarum”) ............................................................................................ 61
4.1. Ale o co chodzi? ...................................................................................................................61
4.2. Jak to działa? ........................................................................................................................62
4.3. Jasne i proste jak cała matematyka ......................................................................................64
4.4. Makro do bit bandingu .........................................................................................................66
4.5. Kiedy stosować bit banding .................................................................................................69
4.6. A gdzie jest haczyk? .............................................................................................................69
5. Wyjątki („Macte animo, iuvenis!”) .............................................................................................. 72
5.1. Trochę zbędnej teorii o trybach pracy rdzenia .....................................................................72
5.2. Poznajmy wyjątki w Cortexie ..............................................................................................74
5.3. Mechanika działania wyjątków ............................................................................................77
5.4. Priorytety i wywłaszczanie ..................................................................................................79
5.5. Funkcje pomocnicze ............................................................................................................82
5.6. Priorytety przykład praktyczny ............................................................................................84
6. Licznik systemowy SysTick („Magnum opus”) ........................................................................... 88
6.1. Blink me baby one more time ..............................................................................................88
7. Blok EXTI i przerwania zewnętrzne („Facta sunt verbis difficilora”) ......................................... 93
7.1. EXTI (F103) .........................................................................................................................93
7.2. EXTI (F429) .........................................................................................................................99
7.3. EXTI (F334) .......................................................................................................................101
8. Liczniki („Festina lente!”) .......................................................................................................... 105
8.1. Wstęp .................................................................................................................................105
8.2. Blok zliczający, prosty timer ..............................................................................................106
8.3. Update Event (UEV), buforowanie rejestrów i One Pulse Mode ......................................108
8.4. Schemat blokowy licznika .................................................................................................109
8.5. Licznik pędzony z zewnątrz ...............................................................................................111
8.6. Filtrowanie sygnałów zewnętrznych ..................................................................................115
8.7. Tryb enkodera ....................................................................................................................117
8.8. Taktowanie licznika innym licznikiem ..............................................................................119
8.9. Podsumowanie źródeł taktowania ......................................................................................120
8.10. Blok porównujący - PWM ...............................................................................................121
8.11. Blok porównujący - przerwania .......................................................................................128
8.12. Blok porównujący - podsumowanie ................................................................................130
8.13. Blok przechwytujący - Input Capture ..............................................................................131
8.14. Synchronizacja sygnałem zewnętrznym ..........................................................................133
8.15. PWM Input Mode ............................................................................................................136
8.16. Synchronizacja kilku liczników .......................................................................................139
8.17. Liczniki ogólnego przeznaczenia i podstawowe ..............................................................141
8.18. Luźne uwagi na koniec ....................................................................................................142
8.19. Różnice między F103 i F429 (F103 i F429) ....................................................................144
8.20. Licznikowe indywiduum (F334) ......................................................................................147
9. Battery Backup Domain (“Non omnis moriar”) ......................................................................... 159
9.1. Wstęp .................................................................................................................................159
9.2. Backup Registers (F103) ....................................................................................................160
9.3. RTC (F103) ........................................................................................................................163
9.4. Backup Registers (F429) ....................................................................................................166
9.5. Backup SRAM (F429) .......................................................................................................169
9.6. RTC (F429) ........................................................................................................................171
9.7. Backup Registers i RTC (F334) .........................................................................................175
10. Układy watchdog („Duo cum faciunt idem, non est idem”) .................................................... 176
10.1. Watchdog niezależny IWDG ...........................................................................................176
10.2. Watchdog okienkowy WWDG ........................................................................................180
10.3. Porównanie układów watchdog .......................................................................................185
10.4. Układy watchdog w mikrokontrolerze F334 (F334) .......................................................186
11. Reset, zasilanie i tryby oszczędzania energii („Difficilis in otio quies”) ................................. 188
11.1. Reset .................................................................................................................................188
11.2. Zasilanie (F103) ...............................................................................................................190
11.3. Zasilanie (F429) ...............................................................................................................191
11.4. Zasilanie (F334) ...............................................................................................................191
11.5. Debugowanie a tryby uśpienia .........................................................................................191
11.6. Tryby obniżonego poboru mocy (F103) ..........................................................................193
11.7. Tryby obniżonego poboru mocy (F429) ..........................................................................198
11.8. Tryby obniżonego poboru mocy (F334) ..........................................................................206
12. Mechanizm DMA („Annuntio vobis gaudium magnum: habemus DMA”) ............................. 207
12.1. Z czym to się je? ..............................................................................................................207
12.2. DMA (F103) .....................................................................................................................208
12.3. DMA (F429) .....................................................................................................................215
12.4. DMA (F334) .....................................................................................................................224
13. Przetwornik ADC („Superflua non nocent”) ............................................................................ 227
13.1. ADC wstęp (F103) ...........................................................................................................227
13.2. Tryby pracy pojedynczego przetwornika ADC (F103) ....................................................230
13.3. Czas próbkowania (F103) ................................................................................................242
13.4. Tryby pracy dwóch przetworników ADC (F103) ............................................................245
13.5. Bajery (F103) ...................................................................................................................251
13.6. Ogólne spojrzenie na tryby pracy przetwornika ADC (F103 i F429) ..............................256
13.7. Różnice w STM32F429 (F429) .......................................................................................257
13.8. Różnice w STM32F334 (F334) .......................................................................................272
13.9. Końcowe uwagi ...............................................................................................................291
14. Przetwornik DAC („Omne ignotum pro magnifico”) .............................................................. 293
14.1. Wstęp (parametry i tryby pracy) ......................................................................................293
14.2. Zadania praktyczne (F103) ..............................................................................................298
14.3. Zadania praktyczne (F429) ..............................................................................................307
14.4. Odrobina odmiany (F334) ................................................................................................308
14.5. Uwagi końcowe ...............................................................................................................308
15. Interfejs USART („Volenti nihil difficile”) .............................................................................. 309
15.1. USART (F103) .................................................................................................................309
15.2. USART (F429) .................................................................................................................314
15.3. USART (F334) .................................................................................................................316
16. Pamięć Flash i bootowanie („Variatio delectat”) ...................................................................... 323
16.1. Pamięć Flash ....................................................................................................................323
16.2. Tryby uruchamiania i bootloader .....................................................................................325
16.3. Bajty konfiguracyjne (F103) ............................................................................................328
16.4. Bajty konfiguracyjne (F429) ............................................................................................332
16.5. Bajty konfiguracyjne (F334) ............................................................................................333
16.6. Kod w pamięci SRAM - po co? .......................................................................................333
16.7. Funkcja w pamięci sram - jak? ........................................................................................338
16.8. Cały program w pamięci sram - jak? ...............................................................................344
17. System zegarowy („Finita est comoedia”) ............................................................................... 353
17.1. Wstęp ...............................................................................................................................353
17.2. System zegarowy (F103) .................................................................................................355
17.3. System zegarowy (F429) .................................................................................................363
17.4. System zegarowy (F334) .................................................................................................368
18. Hashing randomly encrypted CRC (“Contra facta non valent argumenta”) ............................ 371
18.1. Wstęp z niespodzianką .....................................................................................................371
18.2. Nic nie dzieje się przypadkiem (F429) ............................................................................372
18.3. Suma kontrolna CRC32 (F103 i F429) ............................................................................380
18.4. Sprzętowe CRC8, CRC16 i dowolny wielomian (F103 i F429) .....................................389
18.5. Suma kontrolna CRC (F334) ...........................................................................................389
19. Interfejs SPI (“Potius sero quam numquam”) .......................................................................... 395
19.1. Wstęp (F103 i F429) ........................................................................................................395
19.2. Master ŚPI (F103 i F429) ................................................................................................398
19.3. Master i Slave w jednym SP(al)I domu (F103 i F429) ....................................................405
19.4. Pół-puplex na dwa mikrokontrolery (F103 i F429) .........................................................410
19.5. CRC w SPI (F103 i F429) ................................................................................................420
19.6. Outsider (F334) ................................................................................................................421
20. Komparator i wzmacniacz („Nec temere, nec timide”) ............................................................ 426
20.1. Komparator analogowy (F334) ........................................................................................426
Zgłoś jeśli naruszono regulamin