Lucent Technologies MN102H75K User Manual

Page of 338
Serial Interfaces
Serial Interface Setup Examples
MN102H75K/F75K/85K/F85K LSI User Manual
Panasonic Semiconductor Development Company
137
Panasonic
5.6.4
Setting Up I
2
C Transmission Using Serial Interface 0
This example illustrates the microcontroller as a master transmitter in the I
2
mode, using the SBO0 and SBT0 pins.
To set up the output ports:
I
2
C mode requires open-drain 
pins. To set this up, set the 
ODASCI0 bit of PCNT0 
(x’00FF90’) to 1. In addition, set 
the P5PUP7 and P5PUP5 bits of 
P5PUP (x’00FFB5’) to enable 
pullup control of the SBO0 and 
STB0.
Set the P5MD7 and P5MD5 bits of the port 5 output mode register (P5MD) to 1. 
This selects the SBO0 and SBT0 pins as the output port for the I
2
C interface.
P5MD (example)
x’00FFFA’
To set up the I
2
C interface:
The parity bits serve as the ACK 
signal. To output an ACK = 1 sig-
nal, select a fixed parity of 1. To 
output an ACK = 0 signal, select 
a fixed parity of 0. Select a parity 
of none if there is no ACK signal.
Set the operating conditions in the serial control register (SC0CTR). Select ACK 
= 1 output for the transfer clock (SC0PTY[2:0] = b’101’), 8-bit character length 
(SCLN = 1), I
2
C protocol (SC0PTL = 1), I
2
C mode (SC0ICM = 1), and MSB-
first bit order (SC0OD = 1). Enable both transmission and reception (SC0TEN 
and SC0REN = 1) and disable transmission breaks (SC0BRE = 0). Select the 
timer 0 underflow rate divided by 8 as the clock source.
SC0CTR (example)
x’00FD80’
To set up the start sequence:
Reception must be enabled for 
the circuit to detect a start 
sequence.
Write a 1 to the SC0IIC bit of the SC0CTR register to signal the start sequence. 
The SBO0 pin output immediately goes low. Read SC0STR to verify that the 
start sequence occurred correctly (SC0IST = 1). At this point, even if another 
start exists on the bus, an arbitration lost will not be detected.
To transmit the first data byte:
1.
Load the data to the serial port 0 transmit/receive buffer, which initiates data 
output. The SBO0 pin begins data output to the I
2
C bus when the SBT0 
clock signal goes low, with a 1/8 clock cycle delay.
2.
After transmission, both the SBO0 and SBT0 signals stay low.
To transmit a second data byte:
Load the data to the serial port 0 transmit/receive buffer. The sequence for the 
first data byte repeats.
To set up the stop sequence:
1.
When all the data has been transmitted, set the SC0IIC bit of SC0CTR to 0. 
Never perform this step during transmission.
Bit:
7
6
5
4
3
2
1
0
P5
MD7
P5
MD6
P5
MD5
P5
MD4
P5
MD3
P5
MD2
P5
MD1
P5
MD0
Setting:
1
0
1
0
0
0
0
0
Bit:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SC0
TEN
SC0
REN
SC0
BRE
SC0
I2CS
SC0
PTL
SC0
OD
SC0
I2CM
SC0
LN
SC0
PTY2
SC0
PTY1
SC0
PTY0
SC0
SB
SC0
S1
SC0
S0
Setting:
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1