
HMS9xC7132 / HMS9xC7134
50
May.2001 ver1.1
Factory_mode:
setb
setb
mov
anl
jz
ljmp
bFactoryMode
bService
A, mI2C_status
A, #10h
Align_Add_Rx
Align_I2C_Tx
; Factory Alignment Host matched 40h
;
;
;
; Slave Receive command
; Slave Transmit command
Align_Add_Rx:
clr
mov
mov
mov
mov
mov
ljmp
bI2C_Dir
A, #0
mIICBuffer+pSave, A
mIICBuffer+pRead, A
S1DAT,#0FFh
S1CON, #01000111b
DDC_Int_end
; RX MCU <== Host
;
;
;
; Dummy write
; i2C enable, Ack out when own slave address in
; Factory Slave Receive start
DDC2B_mode:
clr
cjne
mov
anl
jnz
clr
mov
mov
ljmp
;=================DDC_Int_end
DDC2B_svc:
jb
bFactoryMode,Line_svc ;
mov
A, mI2C_status
anl
A, #10h
jnz
DDC_I2C_Tx
;
DDC_I2C_Rx:
mov
A, S1DAT
mov
mDDCAddress, A
sjmp
DDC_I2C_ref
bFactoryMode
A, #0A0h, DDC_Abnor; Factory Alignment Host matched
A, mI2C_status
A, #10h
DDC_I2C_Tx
bI2C_Dir
S1DAT,#0FFh
S1CON, #01000111b
;
;
; Slave Transmit
;
; Dummy write
; i2C enable, Ack out when own slave address in
; DDC Slave Receive start
; 1 byte data handling
;
;
; Slave Transmit
; Slave-Receive
; subaddress catch
;
DDC_I2C_Tx:
mov
anl
mov
clr
subb
mov
jnc
mov
movc
sjmp Tx_Mode_out
A, mDDCAddress
A, #7Fh
R0,A
C
A, #8
A, R0
Tx_mode_svc
DPTR, #DDC_Header
; Slave Transmit
;
;
;
;
;
;
; Header load
;
;
Tx_mode_svc:
add
mov
movx
Tx_Mode_out:
mov
inc
mov
mov
sjmp
==================DDC_Int_end
DDC_Abnormal:
mov
S1CON, #00000111b
mov
nI2C_Abn_Cnt,#0
mov
P1SFS,#00001111b
clr
bFactoryMode
mov
DDCCON,#01h
mov
DDCADR,#0
mov
DDCCON,#00100100b ;
mov
S1CON,#47h
mov
S1ADR0, #0A1h
mov
S1ADR1, #41h
jnz
DDC_I2C_sTx
A, #EDID_DATA
R0, A
A, @R0
; 0x80~0xFF
;
;
S1DAT, A
mDDCAddress
S1CON, #47h
nI2C_Abn_Cnt,#80h
; EDID data store at S1DAT
;
; clear ADDR(bit3)11-15 edit
; no Ack within 128 mSec, P1SFS.1=port
;
; i2C enable, stop out, Ack out
; Initial hangup check counter
; normal I2C hardware interface
;
; SWENB(0)
; 100kHz(011),ENI1(1),ACK_enable(1)
; DDC2B Slave address
; Factory Alignment Host
;
DDC_I2C_sRx:
mov
sjmp
DDC_I2C_sTx:
mov
DDC_I2C_ref:
mov
;-----------------------------S1CON, #01000111b
DDC_Int_end:
pop
pop
pop
pop
pop
pop
reti
;------------------------------------
;
A,S1DAT
DDC_I2C_ref
; Receive
;
;
S1DAT,#0FFh
; Transmit
;
; i2C enable, Ack out when own slave address in
01
00
ACC
DPL
DPH
PSW
;
;
;
;
;
;
;