[技术问答] 相同的时钟,是不是可以用不同的系数配置出来

[复制链接]
1824|13
 楼主| carpsnow 发表于 2022-1-6 15:24 | 显示全部楼层 |阅读模式
  1. void BSP_CLK_Init(void)
  2. {
  3.     stc_clk_sysclk_cfg_t    stcSysClkCfg;
  4.     stc_clk_xtal_cfg_t      stcXtalCfg;
  5.     stc_clk_mpll_cfg_t      stcMpllCfg;
  6.     stc_sram_config_t       stcSramConfig;

  7.     MEM_ZERO_STRUCT(stcSysClkCfg);
  8.     MEM_ZERO_STRUCT(stcXtalCfg);
  9.     MEM_ZERO_STRUCT(stcMpllCfg);
  10.     MEM_ZERO_STRUCT(stcSramConfig);

  11.     /* Set bus clk div. */
  12.     stcSysClkCfg.enHclkDiv  = ClkSysclkDiv1;
  13.     stcSysClkCfg.enExclkDiv = ClkSysclkDiv2;
  14.     stcSysClkCfg.enPclk0Div = ClkSysclkDiv1;
  15.     stcSysClkCfg.enPclk1Div = ClkSysclkDiv2;
  16.     stcSysClkCfg.enPclk2Div = ClkSysclkDiv4;
  17.     stcSysClkCfg.enPclk3Div = ClkSysclkDiv4;
  18.     stcSysClkCfg.enPclk4Div = ClkSysclkDiv2;
  19.     CLK_SysClkConfig(&stcSysClkCfg);

  20.     /* Config Xtal and Enable Xtal */
  21.     stcXtalCfg.enMode = ClkXtalModeOsc;
  22.     stcXtalCfg.enDrv = ClkXtalLowDrv;
  23.     stcXtalCfg.enFastStartup = Enable;
  24.     CLK_XtalConfig(&stcXtalCfg);
  25.     CLK_XtalCmd(Enable);

  26.     /* sram init include read/write wait cycle setting */
  27.     stcSramConfig.u8SramIdx = Sram12Idx | Sram3Idx | SramHsIdx | SramRetIdx;
  28.     stcSramConfig.enSramRC = SramCycle2;
  29.     stcSramConfig.enSramWC = SramCycle2;
  30.     SRAM_Init(&stcSramConfig);

  31.     /* flash read wait cycle setting */
  32.     EFM_Unlock();
  33.     EFM_SetLatency(EFM_LATENCY_5);
  34.     EFM_Lock();

  35.     /* MPLL config (XTAL / pllmDiv * plln / PllpDiv = 200M). */
  36.     stcMpllCfg.pllmDiv = 1ul;
  37.     stcMpllCfg.plln    = 50ul;
  38.     stcMpllCfg.PllpDiv = 2ul;
  39.     stcMpllCfg.PllqDiv = 2ul;
  40.     stcMpllCfg.PllrDiv = 2ul;
  41.     CLK_SetPllSource(ClkPllSrcXTAL);
  42.     CLK_MpllConfig(&stcMpllCfg);

  43.     /* Enable MPLL. */
  44.     CLK_MpllCmd(Enable);
  45.     /* Wait MPLL ready. */
  46.     while(Set != CLK_GetFlagStatus(ClkFlagMPLLRdy))
  47.     {
  48.         ;
  49.     }
  50.     /* Switch driver ability */
  51.     PWC_HS2HP();
  52.     /* Switch system clock source to MPLL. */
  53.     CLK_SetSysClkSource(CLKSysSrcMPLL);
  54. }
时钟初始化的时候,各个系数是固定的么
是不是不同的系数可以配置出相同的时钟
那么,这个系数,对于时钟的稳定性,可有什么影响
wubangmi 发表于 2022-1-6 17:25 | 显示全部楼层
只要你输入时钟源在1~24MHZ,MPLL倍频系数在20-480倍,倍频后的VCO 振荡频率:240MHz~480MHz,输出分频比在2-16分频,随便你配什么样的系数。
cyclefly 发表于 2022-1-7 14:12 | 显示全部楼层
可以的,但一般配置好,不会再动了
基本都是参考例程
tpgf 发表于 2022-2-2 17:01 | 显示全部楼层
有的可以有的不可以
heimaojingzhang 发表于 2022-2-2 17:05 | 显示全部楼层
感觉不是所有时钟都可以
keaibukelian 发表于 2022-2-2 17:10 | 显示全部楼层
无非就是倍数的关系
labasi 发表于 2022-2-2 17:16 | 显示全部楼层
各个系数并不是固定的 有些是可以改变的
paotangsan 发表于 2022-2-2 17:22 | 显示全部楼层
时钟源是一个范围吗
renzheshengui 发表于 2022-2-2 17:27 | 显示全部楼层
我觉得二楼说的很对
 楼主| carpsnow 发表于 2022-2-11 16:36 | 显示全部楼层
但是感觉不同的系数稳定性会有差别,
没有实际的数据,
只是在自己配置的时候,有时会不稳定
还是用官网推荐的常规配置吧
weifeng90 发表于 2022-2-11 19:25 来自手机 | 显示全部楼层
肯定的啊
tail066 发表于 2022-2-14 11:03 | 显示全部楼层
应该会有个最有配置系数
之前做射频的时候,pll倍频系数不同,谐波差异很大,相位噪声也有很大不同
 楼主| carpsnow 发表于 2022-2-19 11:47 | 显示全部楼层
tail066 发表于 2022-2-14 11:03
应该会有个最有配置系数
之前做射频的时候,pll倍频系数不同,谐波差异很大,相位噪声也有很大不同 ...

或许是的
chenqianqian 发表于 2022-2-19 13:23 来自手机 | 显示全部楼层
对的哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

456

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部