搜索
bottom↓
回复: 1

结帖:KEA128使用外部时钟,无法实现20MHz总线频率

[复制链接]

出0入0汤圆

发表于 2019-9-21 16:59:16 | 显示全部楼层 |阅读模式
本帖最后由 bailao99 于 2019-9-21 17:20 编辑

KEA128使用外部时钟,无法实现20MHz总线频率

代码如下:
void sysinit(void)
{

    OSC_CR = 0x96;   //选择外部时钟,高功耗高增益
    while ((OSC_CR & OSC_CR_OSCINIT_MASK) == 0);//等待OSC时钟设置完成
    //FEE模式
    ICS_C1 = 0x18;      //8M/256 = 31.25K  ICSOUT = 31.25*1280=40M
    ICS_C2 = 0x20;      //BDIV=1                  
    while ((ICS_S & ICS_S_IREFST_MASK) == 1);
    while ((ICS_S & ICS_S_LOCK_MASK) == 0);

    SIM_BUSDIV = 1 ;  // 40M BUS Clock = ICSOUT/2 20M

    ICS_C2 = 0x00;//BDIV=1
}

外部晶振8MHz,运行后总是进入Default_Handler
如果修改如下:
ICS_C2 = 0x20;//BDIV=2
程序就能正常运行,可是只能实现10MHz总线频率

程序无错,是其他东西导致了进入Default_Handler

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2019-10-7 09:02:55 | 显示全部楼层
//外部晶振8M 设置内核40M 总线20M 参考代码
  
  OSC->CR = 0x96; //  选择外部时钟,高范围、高增益振荡器
  
  while ((OSC->CR & OSC_CR_OSCINIT_MASK) == 0); //  等待振荡器准备就绪
  
  //FFE模式
  
  ICS->C2 = 0x20;  // BDIV=1   
  
  ICS->C1 = 0x18;  //8M/256 = 31.25K  ICSOUT = 31.25*1280=40M
  
  while ((ICS->S & ICS_S_IREFST_MASK) == 1); //  等待选择外部源
  
  while ((ICS->S & ICS_S_LOCK_MASK) == 0); //    等待FLL锁定
  
  SIM->CLKDIV = 0x01100000; //  核心时钟=ICSOUT/1  40M      总线时钟=核心时钟/2  20M
  
  ICS->C2 = 0x00; // BDIV=1除以1–允许最大核心和总线时钟频率



你参考下吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 18:09

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表