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

急!时钟频率变慢,感觉PLL失效

急!时钟频率变慢,感觉PLL失效

片子是9S12XDT256。现象是烧完程序后,程序运行时钟明显变慢。PLL是二倍频,发现程序跑起来慢了一半,像是PLL没工作。但重新上电后,又正常运行且没再现这现象。请问有高人遇到过此类问题么,请不吝指点啊。
^.^

要多高频率啊?这个具体函数我已经在自己设计的开发板上多次使用,直接调用或者略加修改即可:

void SetBusCLK_40M(void)
{
CLKSEL=0X00; //disengage PLL to system
PLLCTL_PLLON=1; //turn on PLL
SYNR=9;
REFDV=3; //pllclock=2*osc*(1+SYNR)/(1+REFDV)=80MHz;
_asm(nop); //BUS CLOCK=40M
_asm(nop);
while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
CLKSEL_PLLSEL =1; //engage PLL to system;
}

飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com
谢谢chiusir,我并不是不能正常倍频,而是多数情况PLL都能按要求设置2倍频运行,但在极少数情况下(多发生在刚烧完程序第一次运行时),主机工作频率出现不正常(仿佛PLL没打开),但只要重新上电后,就一切都OK了。且很少再出问题。我PLL的设置程序和你写的差不多,就第一句 “CLKSEL = 0x00;”没有写,难道问题就出在这么?
应该还是外部时钟电路工作不稳定引起的。
海纳百川  有容乃大

请等待PLL时钟稳定后,再切换。

好久没玩xd了,今天调试遇到了同样问题,程序死在

while(!(CRGFLG_LOCK==1)); //when pll is steady ,then use it;
过不去了,晕!真的是外部时钟电路有问题吗?怎么同样PCB另外一块一直正常。明天再仔细查查!

Everything is possiable!

飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com
相同问题,谢谢解答
返回列表