STM32L432 Genel Bakış
STM32L432, STMicroelectronics tarafından geliştirilen ultra düşük güç tüketimli bir mikrodenetleyicidir. ARM Cortex-M4 çekirdeğine dayanan bu mikrodenetleyici, enerji verimli gömülü sistemler için tasarlanmıştır. Güçlü hesaplama yeteneklerini düşük güç tüketimiyle birleştiren bu mikrodenetleyici, IoT cihazları ve taşınabilir uygulamalar için idealdir.
Teknik Özellikler
STM32L432 serisi aşağıdaki temel teknik özellikleri sunar:
İşlemci Çekirdeği:
- ARM Cortex-M4 32 bit RISC işlemci
- Tek döngülü çarpma ve donanım bölme desteği ile 80 MHz'e kadar çalışır
- Entegre Kayan Nokta Birimi (FPU) ve Dijital Sinyal İşleme (DSP) komutları
Bellek:
- 256 KB Flash (çip üzerinde programlanabilir bellek)
- 64 KB SRAM
- Harici bellek genişletme desteği
Düşük Güç Özellikleri:
- Çoklu düşük güç modları: Uyku, Durdurma ve Bekleme
- Dinamik güç tüketimi: 80 MHz çalışmada sadece 37 µA/MHz
- Durdurma modu akımı: yaklaşık 250 nA
- Geniş voltaj aralığı: Dahili güç yönetimi ile 1,8 V ila 3,6 V
Arayüzler ve Çevre Birimleri:
- GPIO: 51 adede kadar genel amaçlı giriş/çıkış pini
- İletişim arayüzleri: USART/UART, I2C, SPI, CAN, USB 2.0 (Tam Hız)
- Zamanlayıcılar: Genel amaçlı, düşük güç ve gelişmiş zamanlayıcılar (PWM çıkışı)
- ADC/DAC: 12 bit ADC (16 kanal) ve 12 bit DAC
- Yerleşik osilatör ve gerçek zamanlı saat (RTC) desteği
Paket Seçenekleri:
- Farklı boyut gereksinimlerine uyacak şekilde çeşitli paketlerde (ör. LQFP, UFBGA, WLCSP) mevcuttur.
Uygulama
Düşük güç tüketimi ve yüksek performansı sayesinde STM32L432, aşağıdaki alanlarda yaygın olarak kullanılmaktadır:
IoT Cihazları:
- Akıllı ev sistemleri (ör. akıllı kilitler, sıcaklık ve nem sensörleri)
- Giyilebilir cihazlar (ör. fitness takipçileri, sağlık izleme ekipmanları)
Endüstriyel Kontrol:
- Veri toplama ve kontrol sistemleri
- Akıllı sayaçlar ve sensör düğümleri
Taşınabilir Cihazlar:
- Pille çalışan cihazlar (ör. taşınabilir tıbbi aletler)
- Düşük güç tüketimli ekranlar (ör. e-ink ekran denetleyicileri)
Tüketici elektroniği:
- Oyuncaklar ve robotik
- Akıllı uzaktan kumandalar
Güvenlik ve Şifreleme Uygulamaları:
- Güvenli iletişim için donanım AES şifreleme desteği
Avantajlar
- Düşük Güç Tüketimli Tasarım: Uzun çalışma ömrü gerektiren pille çalışan cihazlar için idealdir.
- Uygun Maliyetli: Rekabetçi bir fiyatla mükemmel performans sunar.
- Sağlam Geliştirme Ekosistemi: STM32CubeMX, STM32CubeIDE ve ST'nin kapsamlı kütüphane ve araç seti tarafından desteklenir.
- Güvenilirlik: Yüksek sıcaklık toleransı ve geniş çalışma voltaj aralığına sahip endüstriyel sınıf tasarım.
NUCLEO-L432KC Kartı Kullanılarak GPIO Kontrolü
Bu örnekte, STM32L432KC kartındaki LED devresinin temel ilkelerini tanıtacak, STM32CubeMX kullanarak yeni bir proje oluşturacak ve LED'in yanıp sönmesini sağlamak için gerekli programlama tekniklerini öğreneceğiz.
Gerekli Malzemeler
- NUCLEO-L432KC geliştirme kartı
- Güç ve iletişim için USB kablosu
- LED (harici LED gerekiyorsa)
- Direnç (ör. harici LED için 220Ω)
- STM32CubeMX yazılımı
- MDK5 (Keil) veya STM32CubeIDE gibi geliştirme ortamı
Adım 1: STM32CubeMX'i Kullanarak Yeni Bir Proje Oluşturun
Öncelikle, lütfen STM32L432KC MCU'yu seçin ve yeni bir STM32CubeMX projesi oluşturun.
Ardından, STM32L432KC için osilatörü yapılandıracağız. Şemada görüldüğü gibi, harici düşük hızlı kristal osilatör PC14 ve PC15'e bağlanmıştır. Bu GPIO'ları "Kristal/Seramik Rezonatör" modunda yapılandırın.
Osilatör Modlarının Açıklaması:
BYPASS Saat Kaynağı: Yonga, dahili saat sürücü bileşenini atlayarak doğrudan harici bir saat sinyalini kullanır.
Kristal/Seramik Rezonatör: MCU'nun dahili saat sürücü devresiyle birlikte harici bir pasif kristal kullanır; bu, daha yüksek hassasiyet sağlar ancak başlatma süresi gerektirir.
LED için GPIO'yu yapılandırın. PB3'ü aşağıdaki parametrelerle "GPIO_Output" moduna ayarlayın:
- Push-pull çıkışı
- Varsayılan düşük seviye çıkış (LED başlangıçta kapalı)
- Pull-up veya pull-down direnci yok
Saati yapılandırın. İşlemi basitleştirmek için sistem saatini 80 MHz olarak ayarlayın; böylece STM32CubeMX gerekli ayarları otomatik olarak yapılandırabilir.
Proje arayüzünde kod oluşturma tercihlerini ayarlayın:
- Projeye bir ad verin ve geliştirme aracını seçin (ör. MDK5).
- Ayrı
.cdosyalar oluşturmak için "Çevre birimlerini şu şekilde başlat" seçeneğini etkinleştirin (ör. GPIO, I2C, SPI).
Tüm proje seçeneklerini ayarladıktan sonra projeyi oluşturabiliriz. STM32CubeMX'i ilk kez kullanıyorsanız, aşağıdaki yazılım paketlerini indirmeniz gerekir:
Ardından kod oluşturmaya devam edin ve oluşturma işlemi başarıyla tamamlandıktan sonra proje klasörünü açın.
Bu klasörde hem STM32CubeMX hem de MDK5 proje dosyaları bulunacak ve bu sayede STM32CubeMX'te kolayca değişiklikler yapılabilecektir. Artık MDK-ARM klasörü altındaki "NUCLEO-L432KC(LED_Blinking)" projesini başlatabiliriz.
Adım 2: LED'in Yanıp Sönmesini Sağlayan Kodu Yazın
STM32 HAL dosyalarında gerekli işlevleri bulun:
HAL_GPIO_TogglePin()veHAL_GPIO_WritePin()içindestm32l4xx_hal_def.h.HAL_Delay()içindestm32l4xx_hal.h.
LED'in 2 saniyede bir yanıp sönmesini sağlamak için aşağıdaki kodu çalıştırın:
/* 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 */
Kodu derleyin ve hata olmadığından emin olun.
3. Adım: Yazma Parametrelerini Yapılandırma
NUCLEO-L432KC kartında entegre bir STLINK/V2-1 hata ayıklayıcı ve programlayıcı bulunmaktadır.
- İndirme işlemi için ST-LINK kullanılacak şekilde projeyi yapılandırın.
- STM32CubeMX arayüzünde gösterildiği gibi yazma parametrelerini ayarlayın, ardından programı indirin.




