银河国际赌场网上娱乐场: [活动专区] 【AC7811开发板试用活动】时钟系统分析

永利游戏开户直营
71|2
楼主
本帖最后由 xinmeng_wit 于 2019-11-7 13:49 编辑

时钟系统是所有外设的基础,银河国际赌场网上娱乐场:AC7811系统时钟可以最高达到100MHz。时钟系统其实官方手册里面写的很清楚。



系统时钟框图如下:



从上图可以看出,如果我们要修改sys_clk的时钟评率,那么我们只需要修改如下几个参数:
①sys_clk_sel
②pll_clk_div
③pll_div
④syspll
⑤pll_ref_sel

系统时钟再进一步细化:



示例工程里的代码已经对系统时钟进行了设置,下面进行分析。



启动文件里面main函数之前先调用SystemInit函数进行时钟设置。
void SystemInit (void)
{
    SetEflashClock();
    SetSysClock();
    CKGEN_SetAPBClockDivider(APBCLK_DIV);
    CKGEN_SetSFlashClock(SFLASH_CLK_SEL_APB, SFLASH_DIVIDER_2);
    //SPM_EnableLVD(0);  //disable LVD if need
}
再进入到SetSysClock()函数

void SetSysClock(void)
{

#if AC78XX_CLOCK_SRC == IC_CLOCK_SRC_XOSC
    SetXOSCClock();
#elif AC78XX_CLOCK_SRC == IC_CLOCK_SRC_HSI
    SetHSIClock();
#elif AC78XX_CLOCK_SRC == IC_CLOCK_SRC_HSE
    SetHSEClock();
#else
    SetHSEBYPClock();
#endif
}
再进入到SetHSEClock()函数
void SetHSEClock(void)
{
    SPM_EnableXOSC(1);
    CKGEN_SetPLLReference(PLL_REF_EXTERNAL_OSC);//PLL输入时钟选择外部时钟(8M)
    CKGEN_SetPllPrevDiv(PLL_PREDIV);//PREDIV选择1分频
    CKGEN_SetPllPostDiv(PLL_POSDIV);//POSTDIV选择4分频
    CKGEN_SetPllFeedbackDiv(PLL_FBKDIV);//FBKDIV设置为96
    SPM_EnablePLL(1);
    CKGEN_SetSysclkDiv(SYSCLK_DIV);//SYSCLK_DIV选择1分频
    CKGEN_SetSysclkSrc(SYSCLK_SRC_PLL_OUTPUT);//系统时钟选择pll时钟
}
根据计算公式:sysclk=VCO/POSDIV/2/pll_clk_div/sysclk_div=(输入频率*FBKDIV/PREDIV)/POSDIV/2/pll_clk_div/sysclk_div=8*96/1/4/2/1/1=96(MHz)


所以系统时钟为96M。

以上分析完毕。



沙发
| 2019-11-7 15:28 | 只看该作者
不错的分析,很好看懂
板凳
| 2019-11-7 15:28 | 只看该作者
不错的分析,很好看懂
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
山东群英会app下载 第一彩网网址 澳门宫登入 征途在线app下载直营网 永利游戏开户直营
澳门关闸附近房租 澳门打工好累 宁波万达附近娱乐网上娱乐场 开户送现金 钱柜福彩3D时时彩开奖记录
威斯汀PT电子网址 克拉克娱乐网址 顶级娱乐找太阳城网手机客户端下载 白家乐赌博 菲律宾申博太阳城国际开户澳门赌场
新生娱乐彩票游戏登入 新葡京官网直营 永利娱乐直营网登入 堪培拉有什么赌场 太阳城集团官方网现金网