Memulai dengan STM32L432: Gambaran Umum, Spesifikasi, Aplikasi, dan Contoh Pengendalian GPIO

Gambaran Umum STM32L432

STM32L432 adalah mikrokontroler berdaya sangat rendah yang dikembangkan oleh STMicroelectronics. Mikrokontroler ini didasarkan pada inti ARM Cortex-M4 dan dirancang untuk sistem tertanam yang hemat energi. Dengan menggabungkan kemampuan komputasi yang tangguh dan konsumsi daya yang rendah, mikrokontroler ini sangat cocok untuk perangkat IoT dan aplikasi portabel.

Spesifikasi

Seri STM32L432 menawarkan fitur-fitur teknis utama berikut:

  • Inti Prosesor:

    • Prosesor RISC 32-bit ARM Cortex-M4
    • Beroperasi hingga 80 MHz dengan dukungan perkalian satu siklus dan pembagian perangkat keras
    • Unit Bilangan Pecahan (FPU) terintegrasi dan instruksi Pemrosesan Sinyal Digital (DSP)
  • Memori:

    • 256 KB Flash (memori yang dapat diprogram di dalam chip)
    • 64 KB SRAM
    • Dukungan untuk perluasan memori eksternal
  • Fitur hemat daya:

    • Beberapa mode hemat daya: Sleep, Stop, dan Standby
    • Konsumsi daya dinamis: hanya 37 µA/MHz pada operasi 80 MHz
    • Arus mode Stop: sekitar 250 nA
    • Rentang tegangan luas: 1,8 V hingga 3,6 V dengan manajemen daya terintegrasi
  • Antarmuka dan Periferal:

    • GPIO: Hingga 51 pin input/output serbaguna
    • Antarmuka komunikasi: USART/UART, I2C, SPI, CAN, USB 2.0 (Kecepatan Penuh)
    • Timer: Timer serbaguna, berdaya rendah, dan canggih (keluaran PWM)
    • ADC/DAC: ADC 12-bit (16 saluran) dan DAC 12-bit
    • Dukungan osilator bawaan dan jam waktu nyata (RTC)
  • Opsi Kemasan:

    • Tersedia dalam berbagai kemasan (misalnya, LQFP, UFBGA, WLCSP) untuk memenuhi berbagai kebutuhan ukuran.

Aplikasi

Berkat konsumsi daya yang rendah dan kinerjanya yang tinggi, STM32L432 banyak digunakan di bidang-bidang berikut:

  • Perangkat IoT:

    • Sistem rumah pintar (misalnya, kunci pintar, sensor suhu dan kelembapan)
    • Perangkat yang dapat dikenakan (misalnya, pelacak kebugaran, peralatan pemantauan kesehatan)
  • Kontrol Industri:

    • Sistem akuisisi data dan kontrol
    • Meter pintar dan node sensor
  • Perangkat portabel:

    • Perangkat yang bertenaga baterai (misalnya, alat medis portabel)
    • Layar berdaya rendah (misalnya, pengontrol layar e-ink)
  • Elektronik Konsumen:

    • Mainan dan robotika
    • Remote control pintar
  • Aplikasi Keamanan dan Enkripsi:

    • Dukungan enkripsi AES perangkat keras untuk komunikasi yang aman

Keuntungan

  • Desain Hemat Daya: Ideal untuk perangkat bertenaga baterai yang membutuhkan masa pakai yang lebih lama.
  • Hemat Biaya: Memberikan kinerja yang sangat baik dengan harga yang kompetitif.
  • Ekosistem Pengembangan yang Kuat: Didukung oleh STM32CubeMX, STM32CubeIDE, serta rangkaian lengkap pustaka dan alat dari ST.
  • Keandalan: Desain kelas industri, dengan toleransi suhu tinggi dan rentang tegangan operasi yang luas.

Pengendalian GPIO Menggunakan Papan NUCLEO-L432KC

Dalam contoh ini, kita akan membahas prinsip-prinsip rangkaian LED pada papan STM32L432KC, membuat proyek baru menggunakan STM32CubeMX, dan menguasai teknik pemrograman untuk membuat LED berkedip.

NUCLEO L432KC board STM32L432KCU6
NUCLEO-L432KC board STM32L432KCU6

Bahan yang Diperlukan

  • Papan pengembangan NUCLEO-L432KC
  • Kabel USB untuk daya dan komunikasi
  • LED (jika diperlukan LED eksternal)
  • Resistor (misalnya, 220Ω untuk LED eksternal)
  • Perangkat lunak STM32CubeMX
  • Lingkungan pengembangan seperti MDK5 (Keil) atau STM32CubeIDE

Langkah 1: Buat Proyek Baru Menggunakan STM32CubeMX

Pertama-tama, silakan pilih MCU STM32L432KC dan buat proyek STM32CubeMX baru.

Create a new project from MCU STM32L432KC
Create a new project from MCU STM32L432KC

Selanjutnya, kita akan mengonfigurasi osilator untuk STM32L432KC. Berdasarkan skema, osilator kristal eksternal kecepatan rendah dihubungkan ke PC14 dan PC15. Konfigurasikan pin GPIO ini dalam mode "Crystal/Ceramic Resonator".

Configuration crystal ceramic resonator
Configuration crystal ceramic resonator

Penjelasan tentang Mode Osilator: Sumber

Jam BYPASS: Chip ini melewati komponen penggerak jam internal dan langsung menggunakan sinyal jam eksternal.

Resonator Kristal/Keramik: Menggunakan kristal pasif eksternal yang dipadukan dengan sirkuit penggerak jam internal MCU, sehingga menawarkan presisi yang lebih tinggi namun memerlukan waktu untuk memulai.

Konfigurasikan GPIO untuk LED. Atur PB3 ke mode "GPIO_Output" dengan parameter berikut:

  • Output push-pull
  • Output level rendah default (LED mati pada awalnya)
  • Tanpa resistor pull-up atau pull-down

Konfigurasikan jam sistem. Untuk mempermudah, atur jam sistem ke 80 MHz, sehingga STM32CubeMX dapat mengonfigurasi pengaturan yang diperlukan secara otomatis.

Clock configuration 80 MHz
Clock configuration 80 MHz

Tentukan preferensi pembuatan kode di antarmuka Proyek:

  • Beri nama proyek dan pilih alat pengembangan (misalnya, MDK5).
  • Aktifkan "Generate peripheral initialization as a…" untuk membuat .c untuk periferal (misalnya, GPIO, I2C, SPI).
STM32CubeMX project settings name location toolchain IDE
STM32CubeMX project settings (name, location, toolchain IDE)
Setting code generator on STM32CubeMX
Setting code generator on STM32CubeMX

Setelah mengatur semua opsi proyek, kita dapat membuat proyek tersebut. Jika ini adalah pertama kalinya Anda menggunakan STM32CubeMX, Anda perlu mengunduh paket perangkat lunak berikut ini:

Download stm32cube software package
Download stm32cube software package

Selanjutnya, lanjutkan proses pembuatan kode, dan setelah proses tersebut berhasil, buka folder proyek.

Successfully generated stm32l432kc project code
Successfully generated stm32l432kc project code

Folder tersebut akan berisi berkas proyek STM32CubeMX dan MDK5, sehingga memudahkan pengeditan di STM32CubeMX. Sekarang kita dapat menjalankan proyek "NUCLEO-L432KC(LED_Blinking)" yang terdapat di dalam folder MDK-ARM.

STM32CubeMX project folder
STM32CubeMX project folder

Langkah 2: Tulis Kode untuk Membuat LED Berkedip

Temukan fungsi yang diperlukan dalam berkas STM32 HAL:

  • HAL_GPIO_TogglePin() dan HAL_GPIO_WritePin() di stm32l4xx_hal_def.h.
  • HAL_Delay() di stm32l4xx_hal.h.

Jalankan kode di bawah ini untuk membuat LED berkedip setiap 2 detik:

Add led blinking code to main.c file
Add led blinking code to main.c file
				
					/* USER CODE BEGIN WHILE */
while (1)
{
  // Method 1: Using HAL_GPIO_TogglePin()
  HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_3);
  HAL_Delay(2000);

  // Method 2: Using HAL_GPIO_WritePin()
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET); // Turn off for 2 seconds
  HAL_Delay(2000);
  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);   // Turn on for 2 seconds
  HAL_Delay(2000);
}
/* USER CODE END WHILE */

				
			

Kompilasi kode tersebut dan pastikan tidak ada kesalahan.

Rebuild all target files for project NUCLEO L432KCLED Blinking
Rebuild all target files for project NUCLEO-L432KC(LED_Blinking)

Langkah 3: Konfigurasikan Parameter Flashing

Papan NUCLEO-L432KC dilengkapi dengan debugger dan programmer STLINK/V2-1 terintegrasi.

  • Konfigurasikan proyek untuk menggunakan ST-LINK dalam proses pengunduhan.
  • Atur parameter flashing seperti yang ditunjukkan pada antarmuka STM32CubeMX, lalu unduh programnya.
Configure target options and download program for NUCLEO L432KC LED Blinking
Configure target options and download program for NUCLEO-L432KC (LED_Blinking)

Langkah 4: Mem-flash program

Unggah program yang telah dikompilasi ke papan NUCLEO-L432KC dan perhatikan LED yang berkedip.

Download code to flash memory
Download code to flash memory

Bagikan ke:

Scroll to Top

Instant Quote