[ZLG-ARM] lpc2378能否用RTC作为系统PLL的输入?

[复制链接]
3238|5
 楼主| elyq 发表于 2007-1-29 21:18 | 显示全部楼层 |阅读模式
在lpc2378上,本人按照USER GUIDE中的步骤和例子让RTC作为系统PLL的输入?但是其一直未能锁定。使用片上自带的时钟倒是可以。不知为何?
zlgARM 发表于 2007-1-30 08:55 | 显示全部楼层

RE 楼上

我已用2378做了实验。<br />令2378先掉电,再用外部中断唤醒,然后再选择RTC作为时钟。实验结果正常。<br /><br />估计你的问题可能出在PLL设置部分。<br /><br />注意PLL要重新使能,要等待它锁定且连接。你拿主振荡器再试试,把问题范围凸显出来。
 楼主| elyq 发表于 2007-1-30 21:52 | 显示全部楼层

问zlgARM?

为什么要掉电再换醒?系统上电复位启动后直接设置不行吗?<br />补充说明:我是想让系统通过RTC时钟作为PLL的输入,PLL的输出约为288Mhz左右(根据USER&nbsp;GUIDE的设置方法和数值),然后四分频作为CPU&nbsp;CLOCK。RTC&nbsp;CLOCK直接作为CPU&nbsp;CLOCK我也试过没有问题。<br />另外,能不能把你的设置代码发送给我?
zlgARM 发表于 2007-1-31 08:54 | 显示全部楼层

RE

要掉电再唤醒,仅仅因为用了其它程序的框架,便利编程而已。<br />上电复位启动后直接设置RTC时钟为系统振荡源,并分频作为CPU&nbsp;CLOCK当然也可以。这些我已经验证过了。<br />但如果需要我给您设置代码,很抱歉,能不能麻烦您先和我们公司的销售联系呢?在产品没推出之前,23xx方面的这类支持是有限制的。真地很抱歉,请您给予理解。
 楼主| elyq 发表于 2007-1-31 20:20 | 显示全部楼层

先帮我看一下,我的代码

要不你先帮我看一看我的代码有什么问题。如果有必要我再让南京的销售和你们联系,我的样片是南京办事处提供的。<br />void&nbsp;PllFeed(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregFeed=0xaa;<br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregFeed=0x55;<br />}<br />void&nbsp;SetupSysClk(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;volatile&nbsp;INT32&nbsp;i;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(pgsPll-&gtregStatus&nbsp;&&nbsp;PLL_CONNECTED)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregCtrl=PLL_ENABLE;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PllFeed();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregCtrl=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PllFeed();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;CCLKCFG=0x00;&nbsp;&nbsp;&nbsp;&nbsp;//分频<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;CLKSRCSEL=0x02;&nbsp;&nbsp;&nbsp;&nbsp;//选择IRC&nbsp;作为系统时钟源<br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregCfg=0x12254;<br />&nbsp;&nbsp;&nbsp;&nbsp;PllFeed();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregCtrl=PLL_ENABLE;<br />&nbsp;&nbsp;&nbsp;&nbsp;PllFeed();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;CCLKCFG=0x03;&nbsp;&nbsp;&nbsp;&nbsp;//4分频=71.9995<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt500;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(pgsPll-&gtregStatus&nbsp;&&nbsp;PLL_LOCKED)&nbsp;i++&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//检测锁定,并延时等待PLL稳定<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;//无法运行到这里,请教?<br />&nbsp;&nbsp;&nbsp;&nbsp;pgsPll-&gtregCtrl=PLL_ENABLE&nbsp;|&nbsp;PLL_CONNECT;<br />&nbsp;&nbsp;&nbsp;&nbsp;PllFeed();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(!(pgsPll-&gtregStatus&nbsp;&&nbsp;PLL_CONNECTED))&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部