Slave Transmitter
(or)
Slave Receiver?
(SDIR)
No
Non-FIFO:
Receive ready (RRDY)?
(or)
FIFO:
RXFIFO interrupt (RXFFINT)?
Non-FIFO:
Rcvd data = I2CDRR
FIFO:
Store received data in a buffer from RXFIFO
Yes
(More bytes needs
to be received)
Non-FIFO:
I2CDXR = next data
FIFO:
Update I2CDXR in a loop to fill FIFO
Non-FIFO:
Transmit ready (XRDY)?
(or)
FIFO:
TXFIFO interrupt (TXFFINT)?
Yes
(More bytes needs
to be transmitted)
Start
Disable I2C
(IRS = 0)
Configure I2C Module clock using
I2CPSC register
I2C Module clock should be 7-12 MHz
Configure I2C baud rate using I2CCLKL and I2CCLKH
1) Configure I2C Own address using I2COAR
2) Configure I2C Slave address to talk to using I2CSAR
Non-FIFO mode
3) Enable below I2C Interrupts using I2CIER
Addressed as slave (AAS)
Transmit Ready (XRDY) & Receive Ready (RRDY)
FIFO mode
4) Enable and configure TX / RX FIFO
Configure TX FIFO level (TXFFIL)
Configure RX FIFO level (RXFFIL)
5) Enable TX FIFO (TXFFIENA) and RX FIFO (RXFFIENA) interrupts
Enable I2C
(IRS = 1)
I2C Basic configuration
Master I2C initiates I2C transaction
Addressed as slave
interrupt?
(AAS = 1)
Yes
Slave Transmitter (SDIR = 1)
Configure I2C as Slave Transmitter within ISR
Write I2CMDR = 0x4220
Configure I2C as Slave Receiver within ISR
Write I2CMDR = 0x4020
Interrupt received?
No
No
I2C Slave device running its own application code
Slave Receiver (SDIR = 0)
No
Yes
Figure 14-6. I2C Slave TX / RX Flowchart
Inter-Integrated Circuit Module (I2C)
SPRUH18I – JANUARY 2011 – REVISED JUNE 2022
TMS320x2806x Microcontrollers
841
Copyright © 2022 Texas Instruments Incorporated
Содержание TMS320 2806 Series
Страница 2: ......