|
Запустил я эту PLL на 100 МНz :-)
Главная проблема была с питанием аналоговой части AV+.
Поскольку я, пока не использовал аналоговых примочек, питание AV+
не проконтролировал, а на низких частотах и так все работало.
сейчас я так её запускаю:
; enable external crystal
; oscillator at 22.1184MHz
mov SFRPAGE, #00h ; Set FLASH read time for 100MHz clk
mov FLSCL,#30h ; or less
mov SFRPAGE, #0FH
mov OSCXCN, #067h ; EXTERNAL Oscillator Control Register
clr A ; osc
djnz ACC, $ ; wait for
djnz ACC, $ ; at least 1ms
; djnz ACC, $ ; for osc to start
OX_WAIT:
mov A, OSCXCN
jnb ACC.7, OX_WAIT ;poll XTLVLD
; Turn on the PLL and increase the system clock by a factor of M/N = 4
mov PLL0DIV,#01h ; Set Pre-divide value to N (N = 1)
mov PLL0MUL,#04h ; Multiply SYSCLK by M (M = 4)
mov PLL0FLT,#01 ; Set the PLL filter register for
mov PLL0CN,#05h ;
clr A ;
djnz ACC, $ ; wait at least 5us
orl PLL0CN, #02h ; Enable PLL
PLL_WAIT: ; Wait for PLL to lock
mov A, PLL0CN
jnb ACC.4, PLL_WAIT
mov CLKSEL,#02h ; Select PLL as SYSCLK source
; ORL CLKSEL,#02h ; Select PLL as SYSCLK source
mov OSCICN,#00h ; disable the internal crystal
E-mail: info@telesys.ru