澳门新濠锋酒店免费巴士: [活动专区] 【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 | 只看该作者
不错的分析,很好看懂
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

快速回复

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

论坛热帖

永利游戏开户直营 快速回复 返回顶部 返回列表
澳门赌场有wifi吗网上娱乐场 常洲金域酒店登入 永利游戏开户直营 洛杉矶五星酒店赌场登入 澳门大运河街803号登入
广州特大网络赌博案主犯谢阳真登入 威斯汀娱乐官方网址 云顶国际赌场登入 申博太阳城吉利彩票时时彩开奖记录 66msc.net游戏登入
太阳城APP下载现金网 澳门第一娱乐城官网登入 菲律宾申博太阳城官网网址多少网上娱乐场 申博太阳城本部网址 怎么从澳门带钱回来
hg平台登入 澳门酒吧消费价格 永利国际娱乐官方网站登入 网上开设赌登入 合乐888可靠吗