USART3 FPCLK nerde ayarlanıyor

Başlatan Yuunus, 14 Ağustos 2012, 03:27:10

Yuunus

Arkadaşlar merhaba usart baud rate hesaplamalarında kullanılan FPCLK nın 8 mhz yada 12 mhz olacağını nerde tanımlıyoruz. yani register nerde? herhangi bir örnekte gösterebilirmisiniz. bu işi PLL ile yapıyor sanırım... ama bulamadım.

mcan

Onun tam bir registeri yok, USART3 ün sinyal kaynağını bulmak gerekiyor .osilatör HSE mi HASI mi , AHB prescaler kaç?,senin işlemcide USART3 hangi bus üzerinde AP21? APB2? ve bunların prescaleri kaç? Yada cm4 mü cm3 mü hangisi? Hangi mcu?

Yuunus

#2
@mcan m4 işlemci 168 mhz, apb1 istersen kodu komple yollayayım zate ortada dolaşan bir örnek bu sayfadaki "z"nin örneğinin aynısı, kalabalık yapmak istemedim.

mesaj birleştirme:: 14 Ağustos 2012, 18:40:19

https://www.picproje.org/index.php/topic,35896.15.html

17 nolu mesaj'a bakın

mcan

    RCC->CFGR |= 0x00009400;          // AHB ve APB hizlarini max degerlere set edelim
    RCC->CR |= 0x00010000;              // HSE Xtal osc calismaya baslasin       
    RCC->PLLCFGR = 0x07402A04;      // PLL katsayilarini M=4, N=168, P=2 ve Q=7 yapalim   168 Mhz
    RCC->CR |= 0x01000000;               // PLL calismaya baslasin  (Rehber Sayfa 95)
    RCC->CFGR |= 0x00000002;          // Sistem Clk u PLL uzerinden besleyelim

Bu kodlarla yapiliyor.Kısaca özetlersek sistem hsi yani internal clock ile başlıyor ,
sonra bus hızları RCC nin CR sine yazılarak ilerde geçeceğimiz pll yi de düşünerek 168 mhz pll çıkışlı sinyal kaynağına göre çalışabilecekleri max hızların çarpanlarına set ediliyor.
Sonra kartımızdaki xtali süren osilatör katı aktif ediliyor.
Daha sonra karttaki xtalden 168mhz elde edebilmek için pll nin çarpanları ayarlanıyor.
Buraya kadar hep dahili osilatörü kullandık şimdi hazır olan pll ye geçiş yapılıyor.

Sonuçda konuda geçen   
CPU frekansi 168Mhz
   APB1 frekansi 42 Mhz
   APB2 frekansi 84 Mhz
elde ediliyor, bizimde donanımımız olan USART3 APB1 üzerinde olduğu için onun FCLK sı da 42 mhz dir.

Yuunus