Ynt: STM32F103 72MHz , HSI ile Max 64MHz

Başlatan camby, 01 Haziran 2013, 17:36:18

camby

72 MHz stm32f103 serisi MCU , HSI kullarak max 64MHz olarak kullanılabiliyor.

72 MHz çalışmak isteyenler HSE kullanmaları gerekiyor. Ben de kartı yaptıktan sonra fark ettim bunu , şimdi 64 MHz kullanacağım.

http://i.stack.imgur.com/CNhiO.png



mesaj birleştirme:: 01 Haziran 2013, 17:39:39

Datasheet'te de not düşmüşler altına ancak fark etmedim ben.

Alıntı YapWhen the HSI is used as a PLL clock input, the maximum system clock frequency that can be achieved is
64 MHz.

Başka bir başlıkta da konuşmuştuk ADC bus hızı da yine bu işlemcide de dolambaçlı :

Alıntı YapTo have an ADC conversion time of 1 µs, APB2 must be at 14 MHz, 28 MHz or 56 MHz.

Klein

Registerlere , bölücülere bakarsan 64MHz. Ancak 64MHz'e ayarladığımda çalışmıyor. 48MHz kullanıyorum.

camby

Alıntı yapılan: Klein - 01 Haziran 2013, 17:46:11
Registerlere , bölücülere bakarsan 64MHz. Ancak 64MHz'e ayarladığımda çalışmıyor. 48MHz kullanıyorum.
Hocam sizin model hangisi ?

STM32f103cb  , şu an 64 MHz ölçüyorum MCO'dan

Klein

STM32F103C8T6. Bölücüyü 48MHz ayarlıyorum sorun yok. 64MHz yaptığımda HardFault'a düşüyor alet. Kodda neredeyse tüm donanımlar açık ve aktif kullanıldığı için hatanın sebebini aramayı hiç denemedim. Belki kütüphanede donanımları init eden , frekansları ayarlayan kodlarda bug vardır. 

camby

Şu kodda flash latency 2 , pllmul x16 olunca 64MHz oluyor.

Alıntı Yapvoid SetToHSI48Mhz(void)
{
    RCC_DeInit();
    RCC_HSEConfig(RCC_HSE_OFF);
    RCC_HSICmd(ENABLE);
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    FLASH_SetLatency(FLASH_Latency_1);
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
    RCC_PCLK1Config(RCC_HCLK_Div1);
    RCC_PCLK2Config(RCC_HCLK_Div1);
    RCC_PLLConfig(RCC_CFGR_PLLSRC_HSI_Div2,RCC_CFGR_PLLMULL12);
    RCC_PLLCmd(ENABLE);
    while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    while (RCC_GetSYSCLKSource() != 0x08);
}

Speedyx'in diğer başlıkta paylaştığının benzeri.

STM lib kullanılıyorsa da clock update yapmak lazım sanırım sonrasında.