[ZLG-ARM] LPC2368 设置PLL出现问题。

[复制链接]
4389|7
 楼主| kls 发表于 2007-5-23 16:57 | 显示全部楼层 |阅读模式
我用JTAG代理软件调试LPC2368.先简单描述一下我的过程:先把LPC的串口(使用中断,外部晶振)调试通过后,把周工CAN-232代码移植到LPC2368,添加RAM调试代码后LPC2368发送成功,接收到数据,但是,没有读出来,检查后因为没有进入中断,自己改造的RAM调试代码忘记MEMMAP设置,修改MEMMAP=0x02调试,程序跑飞,然后,改为RelInChip,下载后程序没有运行,串口收不到“Wellcome&nbsp;to&nbsp;using&nbsp;ZLG&nbsp;ARMLPC2XXX&nbsp;CAN&nbsp;test&nbsp;program!”,然后又烧写,现象入上,然后,整片擦除,JTAG连接正常,但是,PLL设置再也过不去了,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=CLKSRCSEL_Val&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Select&nbsp;PLL&nbsp;source&nbsp;clock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#CLKSRCSEL_OFS]&nbsp;<br />单步执行到STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#CLKSRCSEL_OFS]&nbsp;时跑飞,<br />停止后AXD报错,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RDI&nbsp;severe&nbsp;Error&nbsp;00602:&nbsp;Can't&nbsp;halt&nbsp;targe&nbsp;and&nbsp;make&nbsp;it&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENTER&nbsp;debug&nbsp;mode&nbsp;<br />屏蔽掉PLL设置后,可以继续执行,连接正常。<br />大家帮忙分析一下可能是哪的原因呢?<br />我猜测芯片是不是出问题了,明天再买两片试验.欢迎大家讨论。<br /><br />
lpc2000 发表于 2007-5-24 03:07 | 显示全部楼层

你是不是把用于其它的PLL设置,原封不动的搬到lpc23xx上来了

LPC23xx的PLL和以前的有所不同。<br /><br />看看例程吧!!!<br /><br />http://www.standardics.nxp.com/products/new/microcontrollers/~LPC2378/#LPC2378<br />
 楼主| kls 发表于 2007-5-24 10:11 | 显示全部楼层

PLL设置我在2368上以前调试通过了,电流增加30毫安。

&nbsp;<br />PLL设置我在2368上以前调试通过了,并且PLL设置成功后电流增加30毫安。<br />以下是我现在用的PLL设置,&nbsp;&nbsp;&nbsp;&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;;&nbsp;//LPC2368&nbsp;<br />&nbsp;<br />;&nbsp;Setup&nbsp;Clock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLOCK_SETUP&nbsp;!=&nbsp;0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R0,&nbsp;=SCB_BASE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;#0xAA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;#0x55<br /><br />;&nbsp;&nbsp;Configure&nbsp;and&nbsp;Enable&nbsp;PLL<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=SCS_Val&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Enable&nbsp;main&nbsp;oscillator<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#SCS_OFS]&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(SCS_Val:AND:OSCEN)&nbsp;!=&nbsp;0&nbsp;&nbsp;<br />OSC_Loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#SCS_OFS]&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Wait&nbsp;for&nbsp;main&nbsp;osc&nbsp;stabilize<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANDS&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;R3,&nbsp;#OSCSTAT<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSC_Loop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDIF<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=CLKSRCSEL_Val&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Select&nbsp;PLL&nbsp;source&nbsp;clock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#CLKSRCSEL_OFS]&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=PLLCFG_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PLLCFG_OFS]&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;#PLLCON_PLLE<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PLLCON_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br /><br />;&nbsp;&nbsp;Wait&nbsp;until&nbsp;PLL&nbsp;Locked<br />PLL_Loop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PLLSTAT_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ANDS&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;R3,&nbsp;#PLLSTAT_PLOCK<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BEQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PLL_Loop<br /><br />M_N_Lock&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PLLSTAT_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R4,&nbsp;=(PLLSTAT_M:OR:PLLSTAT_N)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;R3,&nbsp;R4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R4,&nbsp;=PLLCFG_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EORS&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;R3,&nbsp;R4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M_N_Lock<br /><br />;&nbsp;&nbsp;Setup&nbsp;CPU&nbsp;clock&nbsp;divider<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;#CCLKCFG_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#CCLKCFG_OFS]<br /><br />;&nbsp;&nbsp;Setup&nbsp;USB&nbsp;clock&nbsp;divider<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=USBCLKCFG_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#USBCLKCFG_OFS]<br /><br />;&nbsp;&nbsp;Setup&nbsp;Peripheral&nbsp;Clock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=PCLKSEL0_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PCLKSEL0_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;=PCLKSEL1_Val<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PCLKSEL1_OFS]<br /><br />;&nbsp;&nbsp;Switch&nbsp;to&nbsp;PLL&nbsp;Clock<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;#(PLLCON_PLLE:OR:PLLCON_PLLC)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R3,&nbsp;[R0,&nbsp;#PLLCON_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R1,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R2,&nbsp;[R0,&nbsp;#PLLFEED_OFS]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENDIF&nbsp;&nbsp;&nbsp;;&nbsp;CLOCK_SETUP<br />&nbsp;<br />&nbsp;<br />&nbsp;;///end&nbsp;of&nbsp;LPC2368&nbsp;<br />
 楼主| kls 发表于 2007-5-24 15:42 | 显示全部楼层

问题可能出在这里了,

user&nbsp;mannal&nbsp;--FCCO&nbsp;is&nbsp;in&nbsp;the&nbsp;range&nbsp;of&nbsp;275&nbsp;MHz&nbsp;to&nbsp;550&nbsp;MHz.<br /><br />errata&nbsp;sheet----PLL&nbsp;output&nbsp;is&nbsp;limited&nbsp;to&nbsp;290MHz<br /><br /><br /><br />也就是说PLL必须在275M~290MHz,只有15MHz的范围,<br /><br />以前的FCCO&nbsp;=&nbsp;FOSC&nbsp;*&nbsp;M&nbsp;*&nbsp;2&nbsp;*&nbsp;P<br /><br />LPC2368的FCCO&nbsp;=&nbsp;(2&nbsp;×&nbsp;M&nbsp;×&nbsp;FIN)&nbsp;/&nbsp;N<br /><br /><br />不明白以前为什么可以跑起来并且执行结果都正确?
zlgarm 发表于 2007-5-25 08:35 | 显示全部楼层

目前LPC2300的PLL有问题,PLL输出最大不能超过290MHz

建议将PLL输出设定为288MHz,否则会出现调试能通过而脱机不能运行的情况,或者有时能脱机运行有时不行。
jinbos 发表于 2007-6-18 11:26 | 显示全部楼层

的确是有这个问题的

  
 楼主| kls 发表于 2007-7-19 19:26 | 显示全部楼层

LPC2368用12M晶振更好一点。

2368里的RTCK的作用变了,去掉RTCK的下拉的电阻照样工作的很好!
mcu123ad 发表于 2007-7-20 10:37 | 显示全部楼层

对的,以前LPC213X,214X对RTCK很敏感,,现在的不会了.

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

kls

67

主题

427

帖子

0

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