START
configure PER0 register
Configure Port
IICWLn,IICWHnXXH
SVAnXXH
IICFn0XH
Configure IICRSVn
Configure IICCTLn1
IICCTLn00XX011XXB
ACKEn=WTIMn=1,SPIEn=0
IICCTLn01XX011XXB
IICEn=1
Configure Port
communcation mode
flag = 1?
communication
direction flag = 1?
Yes
No
release serial interface IICA from reset state,
start providing clock.
configure pins and multiplexed ports to be used.
First port configured to be input mode and output latch
set to
select transmission clock
configure local address
configure start condition
allows I2C bus outupt after configure Port from input mode
to output mode.
initial configuration
interrupt handling
Yes
Write IICAn
communcation mode
flag = 1?
Yes
communication
direction flag = 1?
Yes
ready flag = 1?
clear ready flag
Yes
ACKDn=1?
No
clear communication mode
flag WRELn=1
No
No
SPIEn=1
start
transmission
WRELn=1
communcation mode
flag = 1?
Yes
communication
direction flag = 1?
Yes
ready flag = 1?
No
No
No
No
Yes
No
Yes
Read IICAn
clear ready flag
start
receiving