|
UPSD3354DV-40U6 Datasheet, PDF (136/272 Pages) STMicroelectronics – fast 8032 MCU with programmable logic | |||
|
◁ |
I2C interface
UPSD33xx
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
t(s) â SFR IE.EA = 0
c Set pointer to global data xmit buffer, set count
u â *xmit_buf = *pointer to data
rod â buf_length = number of bytes to xmit
P Set global variables to indicate Master-Xmitter
te â I2C_master = 0, I2C_xmitter = 1
le Enable SIOE
so â SFR S1CON.INI1 = 1
b Prepare to Xmit first data byte
- O â SFR S1DAT[7:0] = xmit_buf[0]
t(s) Enable All Interrupts and go do something else
â SFR IE.EA = 1
duc Slave-Receiver
ro Disable all interrupts
P â SFR IE.EA = 0
teSet pointer to global data recv buffer, set count
leâ *recv_buf = *pointer to data
so â buf_length = number of bytes to recv
Ob Set global variables to indicate Master-Xmitter
â I2C_master = 0, I2C_xmitter = 0
Enable SIOE
â SFR S1CON.INI1 = 1
Enable All Interrupts and go do something else
â SFR IE.EA = 1
136/272
Doc ID 9685 Rev 7
|
▷ |