STM32 Clock(Saat) Yapılandırması Rehberi

STM32 mikrodenetleyicilerde saat (clock) sistemi, tüm sistemin çalışma hızını belirleyen kritik bir bileşendir. Doğru yapılandırılmış bir saat sistemi, mikrodenetleyicinin verimli çalışması, zamanlama doğruluğu ve çevresel birimlerin stabil çalışması açısından büyük önem taşır. Bu yazıda STM32’nin saat sistemini detaylı bir şekilde inceleyip, STM32CubeMX aracılığıyla saat yapılandırmasının nasıl yapılacağını adım adım ele alacağız.


Saat Sistemi Bileşenleri

  • HSI (High Speed Internal): Dahili 8 MHz’lik osilatör.
  • HSE (High Speed External): Harici kristal veya osilatör (genellikle 8, 12 ya da 16 MHz).
  • LSI (Low Speed Internal): Düşük hızlı, yaklaşık 32 kHz’lik dahili osilatör. Genellikle RTC gibi modüller için kullanılır.
  • LSE (Low Speed External): 32.768 kHz frekansında, harici kristal. RTC için yüksek doğruluk sağlar.
  • PLL (Phase Locked Loop): Saat frekansını artırmak için kullanılan devredir.

Bu bileşenler, STM32’nin sistem saatini (SYSCLK), çevresel birim saatlerini (APB1, APB2) ve AHB saatini (CPU, DMA vb.) besler.


Saat Ağacı (Clock Tree) Nasıl Çalışır ?

Saat ağacı, giriş osilatörlerinden (HSI/HSE) başlayıp, PLL yardımıyla sistemin farklı birimlerine çeşitli frekanslar ileten bir yapıdır:

  • SYSCLK: Tüm sistemin ana saatidir.
  • HCLK: CPU ve AHB için kullanılan saat.
  • PCLK1: APB1 çevresel birimleri için saat (örneğin USART2, TIM2 vb.).
  • PCLK2: APB2 çevresel birimleri için saat (örneğin USART1, TIM1 vb.).

PLL, bu frekansları çarpanlar ve bölenlerle istenen değerlere ayarlamamıza olanak tanır.


CubeMX ile Saat Yapilandirmasi

STM32CubeMX aracı, saat yapılandırmasını grafiksel arayüz ile kolaylaştırır. İzlenmesi gereken adımlar:

  1. Yeni bir proje oluşturun ve mikrodenetleyicinizi seçin.
  2. “Clock Configuration” sekmesine geçin.
  3. Harici kristal kullanıyorsanız HSE’yi aktif edin.
  4. PLL ayarlarını yapın (kaynak seçimi, çarpan ve bölen değerleri).
  5. SYSCLK frekansını hedef değere ayarlayın (örneğin 72 MHz).
  6. APB1 ve APB2 için uygun bölenleri belirleyin.
  7. CubeMX’in sunduğu hata uyarılarını (kırmızı simgeler) kontrol edin.

PLL Hesaplamaları

Örneğin, 16 MHz HSE ile 72 MHz sistem frekansına ulaşmak için:

  • Giriş : 16 MHz
  • HSE bölücü : 16 / 2 = 8 MHz
  • PLL çarpanı: 9 → 8 MHz × 9 = 72 MHz
  • APB1 frekansı: 36 MHz (maksimum 36 MHz olabilir)
  • APB2 frekansı: 72 MHz (USART1, ADC gibi çevresel birimler için)
  • Flash latency: 2 veya 3 wait state (saat hızına göre değişir)

CubeMX bu hesaplamaları otomatik yapar ancak mantığını bilmek, sistem güvenliği ve performansı açısından önemlidir.


Kod Tarafında Clock Ayarları (SystemClock_Config)

CubeMX, main.c dosyasında SystemClock_Config() fonksiyonunu otomatik oluşturur. Bu fonksiyonda:

  • HSE/HSI seçimi,
  • PLL ayarları,
  • APB1/APB2 saat bölücüleri,
  • Flash latency gibi parametreler yer alır.

Manuel müdahalede bulunacaksanız bu fonksiyonu dikkatle düzenlemelisiniz.

Örnek bir PLL ayarı:

RCC OscInitStruct.PLL.PLLMUL = RCC PLL MUL9;  8MHz x 9 = 72 MHz

Saat Kaynağı Arızası Durumları

  • Harici kristal (HSE) arızalanırsa sistem otomatik olarak HSI’ya döner (fallback mekanizması).
  • RCC_CSR register’ı üzerinden reset nedenleri ve sistem saat durumu kontrol edilebilir.
  • LSE çalışmazsa, RTC zamanlaması hatalı olur veya hiç çalışmaz.
  • Harici kristal (HSE) ayarlamaları doğru bir şekilde yapılmaz ise sistem doğru şekilde çalışmaz.

Sonuç

STM32 mikrodenetleyicilerde saat yapılandırması, sistem performansı ve güvenilirliği için hayati öneme sahiptir. STM32CubeMX aracı ile bu işlemleri görsel olarak yapmak mümkündür; ancak saat sisteminin temellerini anlamak, geliştiricinin sistem üzerindeki kontrolünü artırır. Frekans, çarpan/bölen oranları ve PLL yapılandırmasının sistem davranışına etkilerini bilmek; hem temel hem de ileri düzey projelerde sorunsuz çalışan ve enerji verimliliği yüksek sistemler kurmanın anahtarıdır.


Trion Electronics ile Geleceğin Teknolojisini Tasarlayın

İster sıfırdan bir ürün geliştiriyor olun, ister mevcut tasarımınızı iyileştirmek isteyin. Trion Electronics olarak sizinle birlikte çalışmaktan memnuniyet duyarız. Daha fazla bilgi için tıklayınız.


Anahtar Kelimeler : STM32, Clock, Saat, Yapılandırma, HSI, High Speed Internal, HSE, High Speed External, LSI, Low Speed Internal, LSE, Low Speed External, PLL, Phase Locked Loop, SYSCLK, HCLK, PCLK1, PCLK2, CubeMX, KeilUvision, SystemClock, Fallback, RTC, Osilatör, Kristal, Geliştirme Kartı, Bluepill, Yazılım, Gömülü Sistem , Elektronik Kart Tasarımı , PCB Tasarımı, PCB Dizgi

One Comment

EREN için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir