打印
[ZLG-ARM]

LPC2368 设置PLL出现问题。

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

相关帖子

沙发
lpc2000| | 2007-5-24 03:07 | 只看该作者

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

LPC23xx的PLL和以前的有所不同。

看看例程吧!!!

http://www.standardics.nxp.com/products/new/microcontrollers/~LPC2378/#LPC2378

使用特权

评论回复
板凳
kls|  楼主 | 2007-5-24 10:11 | 只看该作者

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

 
PLL设置我在2368上以前调试通过了,并且PLL设置成功后电流增加30毫安。
以下是我现在用的PLL设置,    


   ; //LPC2368 
 
; Setup Clock
                IF      CLOCK_SETUP != 0
                LDR     R0, =SCB_BASE
                MOV     R1, #0xAA
                MOV     R2, #0x55

;  Configure and Enable PLL
                LDR     R3, =SCS_Val          ; Enable main oscillator
                STR     R3, [R0, #SCS_OFS] 

                IF      (SCS_Val:AND:OSCEN) != 0  
OSC_Loop        LDR     R3, [R0, #SCS_OFS]    ; Wait for main osc stabilize
                ANDS    R3, R3, #OSCSTAT
                BEQ     OSC_Loop
                ENDIF

                LDR     R3, =CLKSRCSEL_Val    ; Select PLL source clock
                STR     R3, [R0, #CLKSRCSEL_OFS] 
                LDR     R3, =PLLCFG_Val
                STR     R3, [R0, #PLLCFG_OFS] 
                STR     R1, [R0, #PLLFEED_OFS]
                STR     R2, [R0, #PLLFEED_OFS]
                MOV     R3, #PLLCON_PLLE
                STR     R3, [R0, #PLLCON_OFS]
                STR     R1, [R0, #PLLFEED_OFS]
                STR     R2, [R0, #PLLFEED_OFS]

;  Wait until PLL Locked
PLL_Loop        LDR     R3, [R0, #PLLSTAT_OFS]
                ANDS    R3, R3, #PLLSTAT_PLOCK
                BEQ     PLL_Loop

M_N_Lock        LDR     R3, [R0, #PLLSTAT_OFS]
                LDR     R4, =(PLLSTAT_M:OR:PLLSTAT_N)
                AND     R3, R3, R4
                LDR     R4, =PLLCFG_Val
                EORS    R3, R3, R4
                BNE     M_N_Lock

;  Setup CPU clock divider
                MOV     R3, #CCLKCFG_Val
                STR     R3, [R0, #CCLKCFG_OFS]

;  Setup USB clock divider
                LDR     R3, =USBCLKCFG_Val
                STR     R3, [R0, #USBCLKCFG_OFS]

;  Setup Peripheral Clock
                LDR     R3, =PCLKSEL0_Val
                STR     R3, [R0, #PCLKSEL0_OFS]
                LDR     R3, =PCLKSEL1_Val
                STR     R3, [R0, #PCLKSEL1_OFS]

;  Switch to PLL Clock
                MOV     R3, #(PLLCON_PLLE:OR:PLLCON_PLLC)
                STR     R3, [R0, #PLLCON_OFS]
                STR     R1, [R0, #PLLFEED_OFS]
                STR     R2, [R0, #PLLFEED_OFS]
                ENDIF   ; CLOCK_SETUP
 
 
 ;///end of LPC2368 

使用特权

评论回复
地板
kls|  楼主 | 2007-5-24 15:42 | 只看该作者

问题可能出在这里了,

user mannal --FCCO is in the range of 275 MHz to 550 MHz.

errata sheet----PLL output is limited to 290MHz



也就是说PLL必须在275M~290MHz,只有15MHz的范围,

以前的FCCO = FOSC * M * 2 * P

LPC2368的FCCO = (2 × M × FIN) / N


不明白以前为什么可以跑起来并且执行结果都正确?

使用特权

评论回复
5
zlgarm| | 2007-5-25 08:35 | 只看该作者

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

建议将PLL输出设定为288MHz,否则会出现调试能通过而脱机不能运行的情况,或者有时能脱机运行有时不行。

使用特权

评论回复
6
jinbos| | 2007-6-18 11:26 | 只看该作者

的确是有这个问题的

使用特权

评论回复
7
kls|  楼主 | 2007-7-19 19:26 | 只看该作者

LPC2368用12M晶振更好一点。

2368里的RTCK的作用变了,去掉RTCK的下拉的电阻照样工作的很好!

使用特权

评论回复
8
mcu123ad| | 2007-7-20 10:37 | 只看该作者

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

kls

66

主题

424

帖子

0

粉丝