Actions

KAmod BluePico STM32F030 (PL): Difference between revisions

From Kamamilabs.com - Wiki

 
(15 intermediate revisions by the same user not shown)
Line 2: Line 2:
====== Opis ======
====== Opis ======
<b>KAmod BluePico STM32F030 - Płytka ewaluacyjna z mikrokontrolerem STM32F030 F4P6 Cortex-M0</b>
<b>KAmod BluePico STM32F030 - Płytka ewaluacyjna z mikrokontrolerem STM32F030 F4P6 Cortex-M0</b>
<br>
<br><br>
Płytka ewaluacyjna KAmod BluePico STM32F030 zawiera mikrokontroler STM32F030 F4P6 oraz elementy niezbędne do jego uruchomienia. Na płytce znajduje się złącze USB-C do zasilania oraz programowania. Zintegrowany konwerter USB-UART oraz odpowiednio skonfigurowany bootloader umożliwiają programowanie mikrokontrolera zarówno z Arduino IDE jak i poprzez STM32CubeProgrammer.<br>
Płytka ewaluacyjna KAmod BluePico STM32F030 zawiera mikrokontroler STM32F030 F4P6 oraz elementy niezbędne do jego uruchomienia. Na płytce znajduje się złącze USB-C do zasilania oraz programowania. Zintegrowany konwerter USB-UART oraz odpowiednio skonfigurowany bootloader umożliwiają programowanie mikrokontrolera zarówno z Arduino IDE jak i poprzez STM32CubeProgrammer.<br>
<center>
<center>
[[File:KAmod_BluePico_STM32F030_3D_1.png|550px|]]
[[File:KAmod_BluePico_01.jpg|560px|]]
[[File:KAmod_BluePico_STM32F030_3D_2.png|450px|]]
[[File:KAmod_BluePico_02.jpg|540px|]]
</center>
</center>


Line 35: Line 35:
</center>
</center>
<br>
<br>
<center>
[[File:KAmod_BluePico_03.jpg|700px|]]
</center>
===== Schemat elektryczny =====
===== Schemat elektryczny =====
<center>
[[File:KAmod_BluePico_STM32F030_sch.png|none|1000px|thumb|center]]
</center>
<br><br>
===== Zasilanie =====
===== Zasilanie =====
<center>
<center>
Line 88: Line 97:
Interfejs UART jest połączony do wyprowadzeń PA10 (RX USART1) oraz PA9 (TX USART1). Jeżeli połączenie USB-UART nie jest wymagane w projekcie, to wyprowadzenia PA10 i PA9 można odłączyć od kontrolera USB przecinając zworki oznaczone RX i TX na dolnej stronie płytki.
Interfejs UART jest połączony do wyprowadzeń PA10 (RX USART1) oraz PA9 (TX USART1). Jeżeli połączenie USB-UART nie jest wymagane w projekcie, to wyprowadzenia PA10 i PA9 można odłączyć od kontrolera USB przecinając zworki oznaczone RX i TX na dolnej stronie płytki.
<center>
<center>
[[File:KAmod_BluePico_STM32F030_usb_TL.png|500px|]]
[[File:KAmod_BluePico_STM32F030_usb_TL.png|500px|]]    
[[File:KAmod_BluePico_STM32F030_usb_BL.png|500px|]]
[[File:KAmod_BluePico_STM32F030_usb_BL.png|500px|]]
</center>
</center>
Line 115: Line 124:
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 BluePico STM32F030, zasilanie należy dołączyć do złącza USB-C lub styków J1/J2.
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 BluePico STM32F030, zasilanie należy dołączyć do złącza USB-C lub styków J1/J2.
<center>
<center>
[[File:KAmod_BluePico_STM32F030_SWD_TL.png|500px|]]
[[File:KAmod_BluePico_STM32F030_SWD_TL.png|550px|]]
[[File:KAmod_BluePico_STM32F030_SWD_BL.png|425px|]]
[[File:KAmod_BluePico_STM32F030_SWD_BL.png|475px|]]
</center>
</center>
<br><br>
<br><br>
Line 207: Line 216:
<br><br>
<br><br>
Dioda LED PA4 jest dołączona do portu PA4 mikrokontrolera i może być użyta w aplikacji użytkownika.
Dioda LED PA4 jest dołączona do portu PA4 mikrokontrolera i może być użyta w aplikacji użytkownika.
<br><br>
<br><br><br>


===== Złącza GPIO =====
===== Złącza GPIO =====
Line 224: Line 233:
Złącza GPIO J1 i J2 zawierają po 12 styków, do których doprowadzone są linie zasilania 5 V, 3,3 V, masa GND oraz wyprowadzenia GPIO mikrokontrolera. Tylko niektóre porty GPIO tolerują napięcie 5 V (''5 V tolerant''). Wyprowadzenia pełnią różne funkcje, np. jako interfejs SWD, czy jako wejścia ADC, które zabraniają przekraczania napięcia zasilania mikrokontrolera – 3,3 V. Dokładne funkcje wyprowadzeń oraz ich parametry znajdują się w dokumentacji producenta mikrokontrolera – STM.
Złącza GPIO J1 i J2 zawierają po 12 styków, do których doprowadzone są linie zasilania 5 V, 3,3 V, masa GND oraz wyprowadzenia GPIO mikrokontrolera. Tylko niektóre porty GPIO tolerują napięcie 5 V (''5 V tolerant''). Wyprowadzenia pełnią różne funkcje, np. jako interfejs SWD, czy jako wejścia ADC, które zabraniają przekraczania napięcia zasilania mikrokontrolera – 3,3 V. Dokładne funkcje wyprowadzeń oraz ich parametry znajdują się w dokumentacji producenta mikrokontrolera – STM.
<br><br>
<br><br>
Opis wyprowadzeń modułu KAmod BluePico STM32F030 oraz niektóre ich dodatkowe funkcje pokazują rysunek i tabela poniżej:
Opis wyprowadzeń modułu KAmod BluePico STM32F030 oraz niektóre ich dodatkowe funkcje pokazuje rysunek poniżej:
<center>
<center>
[[File:KAmod_BluePico_STM32F030_GPIO.png|none|800px|thumb|]]
[[File:KAmod_BluePico_STM32F030_GPIO.png|none|900px|thumb|]]
</center>
</center>
<br><br>


===== Wymiary =====
===== Wymiary =====
Wymiary płytki KAmod BluePico STM32F030 to 32,5x22,9 mm, a wysokość wynosi ok. 7 mm (bez wlutowanych szpilek goldpin).
Wymiary płytki KAmod BluePico STM32F030 to 32,5x22,9 mm, a wysokość wynosi ok. 7 mm (bez wlutowanych szpilek goldpin).
<center>
<center>
[[File:KAmod_BluePico_STM32F030_wym.png|none|400px|thumb|]]
[[File:KAmod_BluePico_STM32F030_wym.png|none|530px|thumb|]]
</center>
</center>
<br><br>


===== Program testowy =====
===== Program testowy =====
<syntaxhighlight lang="arduino">
//Board: STM32 MCU Based Boards / Generic STM32F0 series
//Board part number: Generic F030F4Px
//Upload metod: STM32 Cube Programmer (Serial)
#define LED_PIN  PA4
int message_period = 0;
int port_pwm = 0;
int port_pwm_dir = 0;
//--------------------------------------
void setup() {
  //Serial.begin(115200);
  //Serial.println("KAmod BluePico STM32F030, Hello :)");
  pinMode(LED_PIN, OUTPUT);
}
//--------------------------------------
void loop() {
  analogWrite(LED_PIN, (255 - port_pwm));
  if (port_pwm_dir == 0){
    port_pwm += 20;
    if (port_pwm >= 150){
      port_pwm = 150;
      port_pwm_dir = 1;
    }
  } else {
    port_pwm -= 20;
    if (port_pwm <= 0){
      port_pwm = 0;
      port_pwm_dir = 0;
    }
  }
  delay(100);
}
</syntaxhighlight>
<br><br>
===== Linki =====
===== Linki =====
*[https://wiki.kamamilabs.com/images/8/86/Stm32f030f4.pdf Karta katalogowa STM32F030x]
*[https://wiki.kamamilabs.com/images/b/b2/Rm0360-stm32f030x4x6x8xc.zip Reference manual STM32F030x]
*[https://github.com/KAMAMI-Labs/KAmod-STM-BluePico.git Przykładowy projekt]
*[https://www.wch-ic.com/downloads/CH341SER_ZIP.html Sterowniki dla układu CH340]
*[https://kamami.pl/programatory-stm32/1181273-stlink-v3minie-kompaktowy-programatordebuger-dla-stm32-5906623436668.html Programator STLINK-V3MINIE]
*[https://www.st.com/en/development-tools/stm32cubeprog.html Aplikacja STM32CubeProgrammer]
*[https://wiki.kamamilabs.com/images/b/bf/KAmod-BluePico_3d.zip Model CAD (STEP)]

Latest revision as of 19:16, 3 August 2025

Opis

KAmod BluePico STM32F030 - Płytka ewaluacyjna z mikrokontrolerem STM32F030 F4P6 Cortex-M0

Płytka ewaluacyjna KAmod BluePico STM32F030 zawiera mikrokontroler STM32F030 F4P6 oraz elementy niezbędne do jego uruchomienia. Na płytce znajduje się złącze USB-C do zasilania oraz programowania. Zintegrowany konwerter USB-UART oraz odpowiednio skonfigurowany bootloader umożliwiają programowanie mikrokontrolera zarówno z Arduino IDE jak i poprzez STM32CubeProgrammer.

Podstawowe parametry
  • mikrokontroler STM32F030 F4P6: Cortex-M0, 16 kB Flash, 4 kB RAM, 48 MHz, ADC 12-bitowy, 5 timerów, I2C, SPI, UART, RTC, CRC
  • mikrokontroler taktowany precyzyjnym rezonatorem kwarcowym
  • złącze USB-C służy jako złącze zasilające, interfejs komunikacyjny USB-UART oraz pozwala na programowanie mikrokontrolera
  • 15 wyprowadzeń 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
  • złącze interfejsu programowania/debugowania SWD
  • możliwość programowania poprzez STM32CubeProgrammer oraz Arduino IDE
  • wymiary płytki: 32,5x23 mm, wysokość ok. 7 mm (bez wlutowanych szpilek goldpin)


Wyposażenie standardowe
Kod Opis
KAmod BluePico STM32F030
  • Zmontowany i uruchomiony moduł
  • 2 x prosta listwa goldpin 12-pin raster 2,54 mm
  • 1 x kątowa listwa goldpin 4-pin raster 2,54 mm


Schemat elektryczny



Zasilanie
Złącze Funkcja
USB-C

J1, J2

  • Doprowadza zasilanie 5 V do modułu
  • Pozwala doprowadzić zasilanie 5 V oraz udostępnia napięcie 3,3 V


Płytka ewaluacyjna KAmod BluePico STM32F030 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łączu J1. Wtedy na stykach oznaczonych 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 jest sygnalizowana świeceniem 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.



Interfejs USB
Złącze Funkcja
USB-C
  • Doprowadza zasilanie 5 V do modułu
  • Może realizować interfejs USB-UART
  • Pozwala programować mikrokontroler poprzez wbudowany bootloader


Złącze USB-C jest łatwym sposobem na doprowadzenie zasilania do płytki KAmod BluePico STM32F030. Ponadto na płytce znajduje się układ CH340C, który realizuje funkcję kontrolera USB połączonego z interfejsem szeregowym UART mikrokontrolera STM32F030. Interfejs UART umożliwia m.in. przesyłanie prostych komunikatów, które można śledzić w dowolnym programie typu Terminal/Serial Monitor.

Sterowniki dla układu CH340 można pobrać ze strony producenta układu: https://www.wch-ic.com/downloads/CH341SER_ZIP.html

Moduł będzie widoczny w systemie, podobnie jak na poniższym obrazku:

Interfejs UART jest połączony do wyprowadzeń PA10 (RX USART1) oraz PA9 (TX USART1). Jeżeli połączenie USB-UART nie jest wymagane w projekcie, to wyprowadzenia PA10 i PA9 można odłączyć od kontrolera USB przecinając zworki oznaczone RX i TX na dolnej stronie płytki.



Interfejs programowania/debugowania SWD
Złącze Funkcja
J3
  • Wyprowadzony interfejs SWD (Single Wire Debug) z sygnałami SWDIO oraz SWCLK


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.

  • GND – masa układu,
  • SWC – sygnał taktujący SWCLK, współdzielony z wyprowadzeniem PA14,
  • SWD – sygnał danych SWDIO, współdzielony z wyprowadzeniem PA13,
  • 3,3V – linia zasilania 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 BluePico STM32F030, zasilanie należy dołączyć do złącza USB-C lub styków J1/J2.



Programowanie mikrokontrolera
Komponent Funkcja
SW1 – NRST
  • Wymuszenie stanu wyzerowania mikrokontolera
SW2 – PROG
  • Uruchomienie fabrycznego bootloadera mikrokontolera
J3 – SWD
  • Interfejs programowania SWD (Single Wire Debug)
USB – UART
  • Interfejs programowania USB-UART (TXD, RXD)


Najprostsza metoda programowania pamięci mikrokontrolera wymaga podłączenia modułu KAmod BluePico STM32F030 przewodem z wtykiem USB-C do komputera PC.

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. Mikrokontroler zastosowany w module został tak skonfigurowany, że uruchomienie bootloadera wymaga tylko krótkiego przyciśnięcia przycisku PROG.

W tym stanie moduł jest gotowy do programowania zarówno poprzez STM32CubeProgrammer jak i Arduino:

  • W przypadku STM32CubeProgrammer należy wyprać tryb UART, a następnie nacisnąć Connect:

  • W przypadku Arduino, należy:
    • ustawić Board na Generic STM32F0 series,
    • ustawić Board part number na Generic F030F4Px,
    • ustawić Upload method na STM32CubeProgrammer(Serial),
    • ustawić port komunikacyjny na ten, który odpowiada podłączonemu modułowi (w przekładzie jest to COM12).


Wszystkie ustawienia zostały pokazane na poniższym obrazku:

Jeżeli w Arduino IDE nie widnieją wskazane płytki, to należy dodać poniższy wpis w polu menedżera płytek (Additional boards manager URLs):
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

Innym sposobem programowania pamięci mikrokontrolera jest dołączenie zewnętrznego programatora, np. STLINK-V2 lub STLINK-V3MINIE do złącza J3 i postępowanie zgodnie z instrukcją użytkowania programatora.

Należy pamiętać, że niektóre wyprowadzenia mikrokontrolera pełnią dwie lub więcej funkcji, które mogą się wzajemnie zakłócać. Oto najistotniejsze z nich:

  • SWC/PA14 – sygnał SWC (programowanie/debugowanie) jest jednocześnie wyprowadzony jako port GPIO PA14
  • SWD/PA13 – sygnał SWD (programowanie/debugowanie) jest jednocześnie wyprowadzony jako port GPIO PA13
  • PA10 (RX), PA9 (TX) – wyprowadzenia interfejsu UART 1 – RX, TX, który jest połączony z USB są jednocześnie wyprowadzone jako porty GPIO odpowiednio PA10 i PA9



Dodatkowe elementy – przyciski oraz diody LED
Komponent Funkcja
SW1 – NRST
  • Wymuszenie stanu wyzerowania mikrokontolera
SW2 – PROG
  • Uruchomienie fabrycznego bootloadera mikrokontolera
D3 – PWR
  • Dioda LED sygnalizująca obecność zasilania
D4 – LED PA4
  • Dioda LED dołączona do portu PA4 mikrokontrolera


Przycisk NRST pozwala wyzerować mikrokontroler, czyli rozpocząć uruchamianie programu od początku, natomiast nie powoduje skasowania pamięci programu.

Przycisk PROG generuje taką sekwencję stanów na wejściach NRST oraz BOOT0, że powoduje uruchomienie bootloadera.

Dioda PWR sygnalizuje obecność napięcia 3,3 V.

Dioda LED PA4 jest dołączona do portu PA4 mikrokontrolera i może być użyta w aplikacji użytkownika.


Złącza GPIO
Złącze Funkcja
J1, J2
  • Złącza o 12 stykach z rastrem 2,54 mm, do których doprowadzone są porty GPIO mikrokontrolera oraz zasilanie 5 V i 3,3 V


Złącza GPIO J1 i J2 zawierają po 12 styków, do których doprowadzone są linie zasilania 5 V, 3,3 V, masa GND oraz wyprowadzenia GPIO mikrokontrolera. Tylko niektóre porty GPIO tolerują napięcie 5 V (5 V tolerant). Wyprowadzenia pełnią różne funkcje, np. jako interfejs SWD, czy jako wejścia ADC, które zabraniają przekraczania napięcia zasilania mikrokontrolera – 3,3 V. Dokładne funkcje wyprowadzeń oraz ich parametry znajdują się w dokumentacji producenta mikrokontrolera – STM.

Opis wyprowadzeń modułu KAmod BluePico STM32F030 oraz niektóre ich dodatkowe funkcje pokazuje rysunek poniżej:



Wymiary

Wymiary płytki KAmod BluePico STM32F030 to 32,5x22,9 mm, a wysokość wynosi ok. 7 mm (bez wlutowanych szpilek goldpin).



Program testowy
//Board: STM32 MCU Based Boards / Generic STM32F0 series
//Board part number: Generic F030F4Px
//Upload metod: STM32 Cube Programmer (Serial)

#define LED_PIN   PA4

int message_period = 0;
int port_pwm = 0;
int port_pwm_dir = 0;

//--------------------------------------
void setup() {
  //Serial.begin(115200);
  //Serial.println("KAmod BluePico STM32F030, Hello :)");
  pinMode(LED_PIN, OUTPUT);
}

//--------------------------------------
void loop() {
  analogWrite(LED_PIN, (255 - port_pwm));
  if (port_pwm_dir == 0){
    port_pwm += 20;
    if (port_pwm >= 150){
      port_pwm = 150;
      port_pwm_dir = 1;
    }
  } else {
    port_pwm -= 20;
    if (port_pwm <= 0){
      port_pwm = 0;
      port_pwm_dir = 0;
    }
  }

  delay(100); 
}



Linki