Kamod BluePill (PL)
From Kamamilabs.com - Wiki
Opis
Kamod BluePill+
Płytka ewaluacyjna z mikrokontrolerem STM32F103C8T6, kompatybilna z BluePill
Płytka ewaluacyjna Kamod BluePill+ zawiera mikrokontroler STM32F103C8T6 oraz elementy niezbędne do jego uruchomienia i programowania. Płytka jest kompatybilna pod względem wyprowadzeń z projektem BluePill, ale ma szereg ulepszeń, m.in. nowy projekt PCB, złącze USB-C z zabezpieczeniem ESD, czy poprawiony obwód zasilania. Może być programowana z Arduino IDE, ponieważ w pamięci układu znajduje się odpowiedni bootloader.
Podstawowe cechy i parametry
- mikrokontroler STM32F103C8T6: 128 kB Flash, 20 kB RAM, 72 MHz, 2 x ADC 12-bitowy, 4 timery, 2 x I2C, 2 x SPI, 3 x UART, CAN, USB, RTC
- złącze USB-C, które służy jako złącze zasilające, interfejs komunikacyjny USB oraz pozwala ma programowanie mikrokontrolera
- elementy filtrujące zakłócenia i przepięcia na liniach interfejsu USB
- 32 wyprowadzenia GPIO oraz linie zasilania 5 V i 3,3 V dostępne na standardowych złączach o rastrze 2,54 mm
- maksymalne obciążenie linii 5 V wynosi 500 mA, natomiast dla linii 3,3 V wynosi 200 mA
- precyzyjny rezonator taktujący mikrokontroler oraz niezależny rezonator dla modułu RTC
- możliwość dołączenia baterii podtrzymującej działanie modułu RTC
- złącze interfejsu programowania/debugowania SWD
- możliwość programowania poprzez STM32CubeIDE oraz Arduino IDE
- wymiary płytki: 53,5x23 mm, wysokość ok. 7 mm (bez wlutowanych szpilek goldpin)
Wyposażenie standardowe
Kod | Opis |
---|---|
Kamod BluePill+ |
Zmontowany i uruchomiony moduł |
Schemat elektryczny
- Mikrokontroler oraz złącza GPIO i SWD
- Interfejs USB
- Obwód zasilania
- Taktowanie mikrokontrolera
- Elementy dodatkowe
- Zewnętrzna pamięć
Zasilanie
Złącze | Funkcja |
---|---|
USB-C
J1, J2 |
|
Płytka ewaluacyjna Kamod BluePill+ może być zasilana na dwa sposoby:
- poprzez odpowiednie styki złączy J1 i J2,
- poprzez złącze USB-C.
Źródło zasilania o napięciu z zakresu 4,5...5,5 V i wydajności min. 100 mA należy dołączyć do styków oznaczonych 5V (plus) oraz „GND” (minus) na złączach J1 i/lub J2. Wtedy na styku oznaczonym 3,3V dostępne jest stabilizowane napięcie o wartości 3,3 V, które również zasila mikrokontroler. Obecność napięcia 3,3 V sygnalizuje świecenie diody LED oznaczonej PWR.
Do złącza USB-C należy dołączyć standardowe źródło zasilania USB o wydajności min. 100 mA. Wtedy na styku 5V złącza J1 dostępne jest napięcie o wartości bliskiej 5 V (względem masy oznaczonej GND). Niewielki spadek napięcia (ok 0,5 V) występuje na diodzie Schottky’ego, która umożliwia przepływ prądu w kierunku ze złącza USB-C do płytki, ale blokuje przepływ prądu w kierunku przeciwnym - do złącza USB-C. Dzięki temu można bezpiecznie dołączać zasilanie w różnych konfiguracjach - USB i/lub styki J1, J2.
Na złączu J2 znajduje się styk oznaczony B+. Wraz z masą GND jest to wejście zasilania z baterii podtrzymującej działanie zegara RTC (zintegrowanego z mikrokontrolerem). Napięcie baterii podtrzymującej powinno zawierać się w przedziale 1,8...3,6 V. Dokładne informacje na temat działania modułu RTC można znaleźć w dokumentacji mikrokontrolera STM32F103C8T6.
Interfejs USB
Złącze | Funkcja |
---|---|
USB-C |
|
Złącze USB-C jest łatwym sposobem na doprowadzenie zasilania do płytki Kamod BluePill+. Ponadto mikrokontroler STM32F103C8T6 ma zintegrowany kontroler interfejsu USB 2.0 FS, który może służyć do komunikacji np. w trybie VCP (Virtual COM Port) lub CDC (Communication Device Class).
Płytka została skonfigurowana w taki sposób, że umożliwia działanie interfejsu w trybie Peripheral, nie jest przygotowana do pracy w trybie Host. Na płytce znajdują się również elementy filtrujące ewentualne zakłócenia i przepięcia na liniach interfejsu USB, które zapewniają jego stabilne działanie.
Dodatkową funkcjonalnością złącza USB-C jest możliwość programowania pamięci Flash mikrokontrolera. Wymagany jest do tego odpowiedni bootloader, który zostaje załadowany do mikrokontrolera modułu Kamod BluePill+ wraz z programem testowym.
Linie interfejsu USB (DP oraz DM) są jednocześnie portami GPIO PA12 oraz PA11 mikrokontrolera. Jeżeli korzystamy z USB to styki oznaczone A12 i A11 nie mogą pełnić żadnej innej funkcji – muszą pozostać niepodłączone.
Interfejs programowania/debugowania SWD
Złącze | Funkcja |
---|---|
J3 |
|
Interfejs SWD (Single Wire Debug) pozwala na programowanie pamięci Flash mikrokontrolera oraz śledzenie działania programu (debugowanie). Wymaga dołączenia zewnętrznego programatora/debuggera np. STLINK-V2 lub STLINK-V3MINIE.
Interfejs SWD został wyprowadzony na złącze szpilkowe J3. Sygnały zostały opisane w następujący sposób:
- G – masa układu,
- C – sygnał taktujący SWCLK,
- D – sygnał danych SWDIO,
- V – linia zasiulania 3,3 V.
Sygnały należy połączyć z takimi samymi sygnałami na złączu programatora/debuggera. Czasami SWCLK jest oznaczony również jako TCK, natomiast SWDIO jest jednocześnie oznaczony jako TMS. Programator nie dostarcza zasilania do płytki Kamod BluePill+, zasilanie należy dołączyć do złącza USB-C lub styków J1/J2.
Programowanie mikrokontrolera
Komponent | Funkcja |
---|---|
SW1 – NRST |
|
W specjalnym obszarze pamięci mikrokontrolera znajduje się oprogramowanie umożliwiające zaprogramowanie jego pamięci programu – jest to tzw. bootloader przygotowany przez producenta mikrokontrolera. Aby uruchomić bootloader należy wykonać następującą sekwencję czynności, przy podłączonym zasilaniu płytki:
- Przycisnąć i trzymać przycisk NRTS
- Przycisnąć i trzymać przycisk BOOT 0 trzymając wciśnięty przycisk NRST
- Zwolnić przycisk NRTS, trzymając wciśnięty przycisk BOOT 0
- Zwolnić przycisk BOOT 0
Uruchomienie bootloadera aktywuje dwa interfejsy programujące:
- SWD, który został opisany we wcześniejszym rozdziale i pozwala na programowanie mikrokontrolera z użyciem programatora/debuggera np. STLINK-V2 lub STLINK-V3MINIE.
- UART, który pozwala na użycie zwykłego konwertera USB-UART w roli programatora, np. KAmod USB-UART-mini. Należy wtedy podłączyć do styków A9 oraz A10 linie interfejsu UART, gdzie:
- A9 – wyjście TXD mikrokontrolera należy podłączyć do wejścia RXD konwertera USB-UART,
- A10 – wejście RXD mikrokontrolera należy podłączyć do wyjścia TXD konwertera USB-UART.
Teraz można programować mikrokontroler poprzez SWD lub UART za pomocą STM32CubeProgrammer, który jest dostępny na oficjalnej stronie STMicroelectronics: https://www.st.com/en/development-tools/stm32cubeprog.html