Laboratorium Procesorów Sygnałowych Moduł STM32F407 Discovery GPIO, C/A, akcelerometr I. Informacje wstępne Celem ćwiczenia jest zapoznanie z: Budową i programowaniem modułu STM32 F4 Discovery Korzystaniem z przetwornika c/a Odczytem danych z akcelerometru. Podczas zajęć student korzysta z modułu STM32 F4 Discovery, programowanego w środowisku KEIL µvision IDE. Dodatkowo podczas ćwiczenia jest wykorzystywany oscyloskop. Podczas wykonywania ćwiczenia należy wykonać polecenia i udzielić w sprawozdaniu odpowiedzi na punkty oznaczone P1, P2,. Sprawozdanie musi zwierać na początku tabelkę tytułową. UWAGA: Sprawozdanie należy przekazać prowadzącemu na koniec zajęć. Moduł STM F4 Discovery jest zbudowany w oparciu o mikrokontroler STM32F407VGT, który zawiera rdzeń Cortex-M4F firmy ARM. Moduł zawiera także programator/debugger ST-LINK/V2 oraz 3-osiowy akcelerometr. Widok płytki pokazano na rys. 1. Rys. 1. Widok modułu STM32 F4 Należy zwrócić uwagę, aby nie spowodować zwarcia pinów znajdujących się od spodniej strony modułu! Laboratorium Procesorów Sygnałowych Strona 1 z 5
Środowisko KEIL µvision IDE jest jednym z kilku środowisk, które umożliwiają przygotowanie oprogramowania oraz przeprowadzenie procesu debuggowania. Rys. 2. Widok środowiska KEIL µvision IDE Układ LIS3DSH zainstalowany na płytkach STM32F407 Discovery w wersji MB997C (PCB rev C) jest niskomocowym, trzyosiowym akcelerometrem. Układ komunikuje się z mikrokontrolerem za pomocą interfejsu szeregowego SPI i umożliwia pomiar przyspieszeń ±2g/±4g/±6g/±8g/±16g z szybkością od 3.125 Hz do 1.6 khz. Rys. 3. Elementy modułu STM32F407 Literatura [1] Discovery kit with STM32F407VG MCU http://www.st.com/en/evaluation-tools/stm32f4discovery.html [2] Getting Started with MDK Create Applications with μvision for ARM Cortex -M Microcontrollers https://armkeil.blob.core.windows.net/product/mdk5-getting-started.pdf [3] µvision User's Guide http://www.keil.com/support/man/docs/uv4/ [4] All STM32F4 libraries https://stm32f4-discovery.net/2014/05/all-stm32f429-libraries-at-one-place/ Laboratorium Procesorów Sygnałowych Strona 2 z 5
II. Przebieg ćwiczenia Sprawdzenie poprawności instalacji sterowników i oprogramowania Podłącz moduł do komputera za pomocą przewodu USB. Sprawdź w Menedżerze urządzeń czy jest widoczne urządzenie i poprawnie działa STLink. Jeżeli brakuje sterownika to należy zainstalować go z lokalizacji: C:\Keil_v5\ARM\STLink\USBDriver Dla systemu Windows 32-bitowego wybieramy dpinst_x86, a dla systemu 64-bitowego instalujemy dpinst_amd64. Uruchom oprogramowanie środowisko KEIL µvision IDE klikając na ikonę W przypadku problemów, zgłoś je prowadzącemu. Sterowanie diodami LED Załaduj (menu Project Open Project...) projekt IO_Toggle znajdujący się w katalogu c:\keil_v5\stm32f4-discovery_fw_v1.1.0\project\peripheral_examples\io_toggle\ Widok załadowanego projektu pokazano na rys. 4. Laboratorium Procesorów Sygnałowych Strona 3 z 5
Rys. 4. Projekt w środowisku KEIL µvision IDE Sprawdź poprawność ustawień komunikacji debuggera ST-Link. Wybierz Project Options for Target i w zakładce Debug ustaw ST-Link Debugger. Kliknij na Settings i sprawdź ustawienia: - Port: SW i Max Clock: 1MHZ (Debug Adapter). - W zakładce Trace ustaw Core Clock: 168. - W zakładce Flash Download w Programming Algorithm ustaw STM32F4xx Flash. Wykonaj kompilację projektu Project Build target Załaduj program do pamięci Flash Download a następnie uruchom program korzystając z menu Debug Run Laboratorium Procesorów Sygnałowych Strona 4 z 5
P1. Korzystając z dokumentacji "STM32F4DISCOVERY schematics" na stronie http://www.st.com/en/evaluation-tools/stm32f4discovery.html, powiedz do których pinów mikrokontrolera są podłączone diody LED3, LED4, LED5, LED6? P2. Naszkicuj schemat działania programu. P3. Jak można zmodyfikować program, aby wszystkie diody zapalały się i gasiły jednocześnie? Zamknij projekt IO_Toggle i otwórz projekt 02-STM32F429_LED_BUTTON z katalogu c:\keil_v5\stm32f429-master\02-stm32f429_led_button\ Skompiluj projekt, załaduj i sprawdź działanie. P4. Naszkicuj schemat działania programu. P5. W jaki sposób zrealizowano zapalanie i gaszenie niebieskiej diody? Podpowiedź: wyszukaj w opisie mikrokontrolera STM32F407 informacji na temat rejestru BSRR. Generacja sygnałów przy wykorzystaniu przetwornika c/a Zapoznaj się z projektem DAC_SignalsGeneration z katalogu c:\keil_v5\stm32f4-discovery_fw_v1.1.0\project\peripheral_examples\dac_signalsgeneration\ Skompiluj projekt i załaduj do modułu. P6. Na których pinach są generowane sygnały? P7. Jakie sygnały mogą być generowane? Naszkicuj je na podstawie programu. P8. Korzystając z oscyloskopu zarejestruj i naszkicuj w sprawozdaniu generowane sekwencje. Pamiętaj o opisie osi. Jaka jest częstotliwość generowanych sygnałów? P9. Jak można zmienić częstotliwość generowanych sekwencji? Generacja sygnału PWM Uruchom projekt z katalogu c:\keil_v5\stm32f429-master\33-stm32f429_pwm\ P10. Na których pinach są generowane sygnały PWM? P11. Sprawdź częstotliwość i wypełnienie generowanych sygnałów. Wyniki zapisz w tabeli. P12. Jak należy zmienić polecenie (w main.c) TM_PWM_InitTimer(TIM4, &TIM4_Data, 1000); aby generowany sygnał miał częstotliwość 1000 Hz? Sprawdź pomiarowo poprawność odpowiedzi. Odczyt danych z akcelerometru Zapoznaj się z projektem z katalogu c:\keil_v5\stm32f429-master\35-stm32f4_lis3dsh_lis302dl\ Skompiluj projekt i załaduj do modułu. P13. Jaki typ akcelerometru jest zamontowany na płytce? Jak jest dołączony do mikrokontrolera? (naszkicuj połączenia i nazwij je) P14. Na czym polega działanie programu? P15. Jakie warunki powodują sygnalizację na diodach LED? Laboratorium Procesorów Sygnałowych Strona 5 z 5