首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

求助:PLL和CAN通讯

求助:PLL和CAN通讯

本帖最后由 caiqinren 于 2010-8-25 16:43 编辑

请教大家,我在S12XDP512调试时,遇到三个问题:
1、锁相环设置   
setReg8(SYNR, 0);   
setReg8(REFDV, 0);   
setReg8(PLLCTL, 241);                 
  while(!CRGFLG_LOCK) {                /* Wait until the PLL is within the desired tolerance of the target frequency */
  }
  setReg8Bits(CLKSEL, 128);   
晶振是8MHz,PLL电路的电容、电阻的值分别为220pF,2.2nF,4700欧。锁相环频率是16MHz,这时系统能工作,SYNR=4, REFDV=3,锁相环频率是20MHz,这时系统也能工作,但表现不稳定了,再高,系统不工作了,单步调试时,一旦执行了上面的PLL选择指令,程序好像跑飞了。CPU的初始化是套用PE生成的代码,不知道是硬件电路的问题,还是软件设置上的问题?
2、CAN通讯
程序是通过API中断(500ms),调用CAN发送程序,启动CAN接受中断(另一CAN节点也是500ms),在XGATE中进行,但调试过程发现一个奇怪现象,CAN0TIER必须非0,否则程序程序好像锁死了。如果CAN0TIER=7,CAN收发基本正常,但程序是在API中断中调用CAN发送函数的,不需要启动CAN发送中断呀?在s12和XGATE的中断向量表中,CAN0的发送中断位置都是默认的空操作函数,没有指定中断响应函数。
3、我用一个端口控制LED灯,CAN模块每发生一个数据包,LED灯反相一次,正常应该是1s的方波,但在示波器上看,方波中出现毛刺,出现也没规律,有时发几个数据出现一次,有时发几十个数据包才出现一次。
返回列表