
S1C88348/317/316/308 TECHNICAL SOFTWARE
EPSON
II-13
4 OSCILLATION CIRCUIT
Source List
(2)
(1)
CPU clock switching
external
osc3_delay,vd1_delay
external
svd_auto_read
public
osc1toosc3,osc3toosc1
public
vdd_ngf,vdd_data
;
br_io
equ
0ffh
;base reg. address (set i/o area)
mode
equ
00ff02h
;mcu//mpu mode control address
;
data
vdd_ngf: db
[1]
;vdd ng flag
vdd_data:db
[1]
;vdd detection data
code
(1) Switching from OSC1 to OSC3
;**************************************************************************
;*
*
;* change osc1(low power mode [vd1=1.3v]) to osc3(normal mode [vd1=2.2v]) *
;*
*
;**************************************************************************
osc1toosc3:
ld
br,#br_io
;set br reg. address to 0ffxxh
xor
a,a
ld
[lod vdd_ngf],a
;vdd ng flag clear
ld
[lod vdd_data],a
;vdd data store
carl
svd_auto_read
;svd check ***
ld
[lod vdd_data],a
;vdd store
cp
a,#03h
;areg=svd data
jrs
c,osc1toosc300
;vdd >= level 3
;
and
[br:low mode],#11111100b
;change mode to normal (vd1 to 2.2v)
or
[br:low mode],#00000100b
;osc3 clock on
carl
osc3_delay
;osc3 start up delay ***
or
[br:low mode],#00001000b
;change system clock to osc3
jrs
osc1toosc301
;
osc1toosc300:
ld
a,#0ffh
ld
[lod vdd_ngf],a
;vdd ng flag set
osc1toosc301:
ret
;
(2) Switching from OSC3 to OSC1
;**************************************************************************
;*
*
;* change osc3(normal mode [vd1=2.2v]) to osc1(low power mode [vd1=1.3v]) *
;*
*
;**************************************************************************
osc3toosc1:
ld
br,#br_io
;set br reg. address to 0ffxxh
and
[br:low mode],#11110111b
;change system clock to osc1
and
[br:low mode],#11111011b
;osc3 clock off
or
[br:low mode],#00000001b
;change mode to low power (vd1 to 1.3v)
carl
vd1_delay
;vd1 delay ***
ret
;
end