CH32V307VCT6 RCC配置問(wèn)題

手頭沒有8MHz晶振,焊接了個(gè)20MHZ的;

把ch32v30x.h里的#define HSE_VALUE? ? ((uint32_t)8000000) /* Value of the External oscillator in Hz */

改成了#define HSE_VALUE? ? ((uint32_t)20000000) /* Value of the External oscillator in Hz */

其它用系統(tǒng)默認(rèn)的,

結(jié)果系統(tǒng)并沒有自動(dòng)將SYSCLK配置為72MHZ。

不知道是庫(kù)函數(shù)沒有做成足夠智能,還是我沒有找到相關(guān)解釋的文章。


熱門產(chǎn)品 : USB3.0 HUB控制器:CH634

您好,當(dāng)外部晶振大小改變時(shí),系統(tǒng)主頻肯定會(huì)跟著改變。其次當(dāng)外接晶振大小為20M時(shí),因?yàn)槎际钦麛?shù)倍頻或6.5倍頻,是無(wú)法倍頻到72 M的。由于CH32V307主頻最大為144MHz,當(dāng)外部晶振大小為20M時(shí),最大倍頻為7倍頻,可通過(guò)修改system_ch32v30x.c文件中的SetSysClockTo72函數(shù)來(lái)改變系統(tǒng)主頻,即改變函數(shù)中倍頻大小,如下圖。


image.png


謝謝。

我昨晚試著在static void SetSysClockTo72(void)里將RCC_PLLMULL9_EXTEN改成了RCC_PLLMULL6_EXTEN,

本意是想做成120MHz的HCLK的,結(jié)果定時(shí)器實(shí)驗(yàn)出來(lái),驗(yàn)證并不是120MHz。

image.pngimage.png


正確的話應(yīng)該是0.5S打印一次,結(jié)果差不多4.5s才打印一次。


您好,注意下正常運(yùn)行時(shí)中斷中最好不要加打印,此外,我看你程序中配置并不是一進(jìn)中斷就打印,需要進(jìn)行++運(yùn)算,這個(gè)if判斷是否也需要時(shí)間,要>=100,是否是進(jìn)100次中斷打印一次。你可以在main函數(shù)中添加下圖配置,將系統(tǒng)主頻打印出來(lái)看一下具體大小。后續(xù)若有問(wèn)題,可通過(guò)郵箱(lzs@wch.cn)溝通。

image.png


可以根據(jù)這幾步檢查:

第一步,增加晶體啟振超時(shí)閾值,即HSE_STARTUP_TIMEOUT從0x500增到到0x5000試試;

第二步,檢查晶體輸出,鎖相環(huán)輸出和主頻選擇是否正常。在程序中增加如下函數(shù),使用示波器檢查PA8的輸出波形頻率:

void SET_MCO(void)
{
??? GPIO_InitTypeDef GPIO;

??? RCC_AHBPeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);

??? GPIO.GPIO_Pin = GPIO_Pin_8;
??? GPIO.GPIO_Mode = GPIO_Mode_AF_PP;
??? GPIO.GPIO_Speed = GPIO_Speed_50MHz;

??? GPIO_Init(GPIOA,&GPIO);

??? RCC_MCOConfig(RCC_MCO_SYSCLK);
}

理論上按照你的配置,這時(shí)PA8的輸出頻率應(yīng)該是主頻,也就是120MHz。如果不對(duì)將函數(shù)中的RCC_MCO_SYSCLK換成RCC_MCO_PLLCLK_Div2和RCC_MCO_HSE,查看鎖相環(huán)2分頻輸出是否正常,以及外部晶體振蕩輸出頻率是否正常,理論上RCC_MCO_PLLCLK_Div2應(yīng)該輸出60MHz,RCC_MCO_HSE應(yīng)該輸出20MHz。如果的板子的RCC_MCO_SYSCLK為8MHz,即為你的主頻被設(shè)為8MHz了,你的鎖相環(huán)的時(shí)鐘源或者主頻的來(lái)源都有問(wèn)題。

注意留意RCC->CFG0寄存器的SWS域的值,這指示你的主頻實(shí)際來(lái)源。

image.png

可以將RCC->CFG0里的值都打印出來(lái),結(jié)合CH32V307的時(shí)鐘樹分析:

image.png

可以看出外部晶體頻率輸出經(jīng)過(guò)PREDIVSCR到PREDIV1,分頻后經(jīng)PLLSCR到PLL1,經(jīng)倍頻后到SW即成為系統(tǒng)主頻,理論上只要外部晶體啟振正常,PREDIVSCRPLLSCR和SW這三個(gè)來(lái)源選擇器選擇正常,PREDIV1分頻正確,PLLMUX倍頻正確,目標(biāo)系統(tǒng)頻率不超出144MHz,那么你想使用什么系統(tǒng)主頻都隨意。我用過(guò)25MHz的晶體是沒有問(wèn)題的。PA8作為MCO輸出可以輸出HSE、PLL/2和SYSCLK,協(xié)助調(diào)查應(yīng)該會(huì)比較簡(jiǎn)單。

祝好。


?感謝 4樓、5樓 的熱心幫助。

問(wèn)題已經(jīng)破防了。

確定是以下問(wèn)題:

***、SMT選錯(cuò)了物料,設(shè)計(jì)使用的是無(wú)源晶振,SMT的時(shí)候選了有源晶振。***

今天做了從頭到尾的檢查,才查出這么個(gè)疏忽,

更換了個(gè)8MHZ,現(xiàn)在跑120MHZ HCLK,沒問(wèn)題了。

image.png



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频