共2条
1/1 1 跳转至页
PLL 汇编程序为何可以不连接PLL

问
我想知道:用你们的模版lpc2100 for ARM 写汇编程序,怎么没有连接pll的代码,不明白,看书上的图 Fosc经PLL -->Fcclk,Fcclk经由vpb——〉Fpclk,这么说的话,没有连接pll,ARM处理器岂不是没有时钟。如见你们提供的例子gpio/keyin.mcp.
答 1:
周工,为什么不说一下
答 2:
不连接PLL就是使用默认的晶振的频率作为CPU时钟
答 3:
re:不连接PLL也是有时钟的,只是系统时钟(Fcclk)为晶振时钟而已。
如果要设置PLL,可以在用户程序中设置,参考如下:
MAIN
...
; 设置系统时钟
LDR R0,=VPBDIV
MOV R1,#0x00
STR R1,[R0] ; VPBDIV=0x00
LDR R0,=PLLCFG
MOV R1,#0x23
STR R1,[R0] ; PLLCFG=0x23,设置M值为4,P值为2
LDR R0,=PLLCON
MOV R1,#0x01
STR R1,[R0] ; PLLCON=0x01
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0] ; PLLFEED=0xAA
MOV R1,#0x55
STR R1,[R0] ; PLLFEED=0x55
WAIT_OK LDR R0,=PLLSTAT
LDR R1,[R0]
ANDS R1,R1,#0x0400
BEQ WAIT_OK ; 等待PLL锁定
LDR R0,=PLLCON
MOV R1,#0x03
STR R1,[R0]
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0]
MOV R1,#0x55
STR R1,[R0]
如果要设置PLL,可以在用户程序中设置,参考如下:
MAIN
...
; 设置系统时钟
LDR R0,=VPBDIV
MOV R1,#0x00
STR R1,[R0] ; VPBDIV=0x00
LDR R0,=PLLCFG
MOV R1,#0x23
STR R1,[R0] ; PLLCFG=0x23,设置M值为4,P值为2
LDR R0,=PLLCON
MOV R1,#0x01
STR R1,[R0] ; PLLCON=0x01
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0] ; PLLFEED=0xAA
MOV R1,#0x55
STR R1,[R0] ; PLLFEED=0x55
WAIT_OK LDR R0,=PLLSTAT
LDR R1,[R0]
ANDS R1,R1,#0x0400
BEQ WAIT_OK ; 等待PLL锁定
LDR R0,=PLLCON
MOV R1,#0x03
STR R1,[R0]
LDR R0,=PLLFEED
MOV R1,#0xAA
STR R1,[R0]
MOV R1,#0x55
STR R1,[R0]
共2条
1/1 1 跳转至页