Motorola MVME5100 Manual Do Utilizador

Página de 330
Functional Description
http://www.motorola.com/computer/literature
3-25
3
I
2
C Random Read
The I
2
C random read begins in the same manner as the I
2
C byte write. The 
first step in the programming sequence should be to test the i2_cmplt bit 
for the operation-complete status. The next step is to initiate a start 
sequence by first setting the i
2
_start and i
2
_enbl bits in the I
2
C Control 
Register and then writing the device address (bits 7-1) and write bit (bit 
0=0) to the I
2
C Transmitter Data Register. The i
2
_cmplt bit will be 
automatically clear with the write cycle to the I
2
C Transmitter Data 
Register. The I
2
C Status Register must now be polled to test the i
2
_cmplt 
and i
2
_ackin bits. The i
2
_cmplt bit becomes set when the device address 
and write bit have been transmitted, and the i
2
_ackin bit provides status as 
to whether or not a slave device acknowledged the device address. With 
the successful transmission of the device address, the word address will be 
loaded into the I
2
C Transmitter Data Register to be transmitted to the slave 
device. Again, i
2
_cmplt and i
2
_ackin bits must be tested for proper 
response. At this point, the slave device is still in a write mode. Therefore, 
another start sequence must be sent to the slave to change the mode to read 
by first setting the i
2
_start and i
2
_enbl bits in the I
2
C Control Register and 
then writing the device address (bits 7-1) and read bit (bit 0=1) to the I
2
Transmitter Data Register. After i
2
_cmplt and i
2
_ackin bits have been 
tested for proper response, the I
2
C master controller writes a dummy value 
(data=don’t care) to the I
2
C Transmitter Data Register.This causes the I
2
master controller to initiate a read transmission from the slave device. 
Again, i2_cmplt bit must be tested for proper response. After the I
2
master controller has received a byte of data (indicated by i
2
_datin=1 in the 
I
2
C Status Register), the system software may then read the data by polling 
the I
2
C Receiver Data Register. The I
2
C master controller does not 
acknowledge the read data for a single byte transmission on the I
2
C bus, 
but must complete the transmission by sending a stop sequence to the slave 
device. This can be accomplished by first setting the i
2
_stop and i
2
_enbl 
bits in the I
2
C Control Register and then writing a dummy data (data=don’t 
care) to the I
2
C Transmitter Data Register. The I
2
C Status Register must 
now be polled to test i
2
_cmplt bit for the operation-complete status. The 
stop sequence will relinquish the ASIC master’s possession of the I
2
C bus. 
 shows the suggested software flow diagram for programming 
the I
2
C random read operation.