amobbs 东莞阿莫电子网站/东莞南城健逸电子贸易商行网站

 找回密码
 注册
bottom↓
查看: 885|回复: 113

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

[复制链接]
发表于 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
发表于 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。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs 东莞阿莫电子网站/东莞南城健逸电子贸易商行网站 ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2020-3-31 13:51

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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