English
Language : 

UPSD3422_06 Datasheet, PDF (129/293 Pages) STMicroelectronics – Turbo Plus Series Fast Turbo 8032 MCU with USB and Programmable Logic
uPSD34xx
Set global variables to indicate Master-Xmitter
– I2C_master = 1, I2C_xmitter = 0
Disable Master from returning an ACK
– SFR S1CON.AA = 0
Enable I2C SIOE
– SFR S1CON.INI1 = 1
Transmit Address and R/W bit = 1 to Slave
– Is bus not busy? (SFR S1STA.BBUSY = 0?)
<If busy, then test until not busy>
– SFR S1DAT[7:0] = Load Slave Address # 01h
– SFR S1CON.STA = 1, send START on bus
<bus transmission begins>
Enable All Interrupts and go do something else
– SFR IE.EA = 1
Slave-Transmitter
Disable all interrupts
– SFR IE.EA = 0
Set pointer to global data xmit buffer, set count
– *xmit_buf = *pointer to data
– buf_length = number of bytes to xmit
Set global variables to indicate Master-Xmitter
– I2C_master = 0, I2C_xmitter = 1
Enable SIOE
– SFR S1CON.INI1 = 1
Prepare to Xmit first data byte
– SFR S1DAT[7:0] = xmit_buf[0]
Enable All Interrupts and go do something else
– SFR IE.EA = 1
Slave-Receiver
Disable all interrupts
– SFR IE.EA = 0
Set pointer to global data recv buffer, set count
– *recv_buf = *pointer to data
– buf_length = number of bytes to recv
Set global variables to indicate Master-Xmitter
– I2C_master = 0, I2C_xmitter = 0
Enable SIOE
– SFR S1CON.INI1 = 1
I2C interface
129/293