Initialization/Application Information
MSC8144E Reference Manual, Rev. 3
Freescale Semiconductor
24-11
When an interrupt occurs at the end of the address cycle, the initiator remains in transmit mode. If
initiator receive mode is required, I2CCR[MTX] should be toggled at this stage. See
Section 24.4.10, “Interrupt Service Routine Flowchart.” If the interrupt function is disabled,
software can service the I2CDR in the main program by monitoring I2CSR[MIF]. In this case,
I2CSR[MIF] should be polled rather than I2CSR[MCF] because MCF behaves differently when
arbitration is lost. Note that interrupt or other bus conditions may be detected before the I
2
C
signals have time to settle. Thus, when polling I2CSR[MIF] (or any other I2CSR bits), software
delays may be needed (in order to give the I
2
C signals sufficient time to settle). During
target-mode address cycles (I2CSR[MAAS] = 1), I2CSR[SRW] should be read to determine the
direction of the subsequent transfer and I2CCR[MTX] should be programmed accordingly. For
target-mode data cycles (I2CSR[MAAS] = 0), I2CSR[SRW] is not valid and I2CCR[MTX]
should be read to determine the direction of the current transfer. See Section 24.4.10 for details.
24.4.4 Generation of STOP
A data transfer ends with a STOP condition generated by the initiator device. An initiator
transmitter can generate a STOP condition after all the data has been transmitted. If an initiator
receiver wants to terminate a data transfer, it must inform the target transmitter by not
acknowledging the last byte of data, which is done by setting the transmit acknowledge
(I2CCR[TXAK]) bit before reading the next-to-last byte of data At this time, the next-to-last byte
of data has already been transferred on the I
2
C interface, so the last byte will not receive the data
acknowledge when I2CCR[TXAK] is set. For 1-byte transfers, a dummy read should be
performed by the interrupt service routine. (See Section 24.4.10, “Interrupt Service Routine
Flowchart.”) Before the interrupt service routine reads the last byte of data, a STOP condition
must first be generated. Eventually, I2CCR[TXAK] must be cleared again for subsequent I
2
C
transactions. This can be accomplished when setting up the I2CCR for the next transfer.
24.4.5 Generation of Repeated START
At the end of a data transfer, if the initiator still wants to communicate on the bus, it can generate
another START condition followed by another target address without first generating a STOP
condition by setting I2CCR[RSTA].
24.4.6 Generation of SCL When SDA Low
In some cases it is necessary to force the I
2
C module to become the I
2
C bus initiator out of reset
and drive the SCL signal (even though SDA may already be driven, which indicates that the bus
is busy). This can occur when a system reset does not cause all I
2
C devices to be reset. Thus, the
SDA signal can be driven low by another I
2
C device while the I
2
C module is coming out of reset
and will stay low indefinitely. The following procedure can be used to force the I
2
C module to
generate SCL so that the device driving SDA can finish its transaction:
•
Disable the I
2
C and set the initiator bit by setting I2CCR to 0x20.
Содержание MSC8144E
Страница 1: ...MSC8144E Reference Manual Quad Core Media Signal Processor MSC8144ERM Rev 3 July 2009 ...
Страница 40: ...MSC8144E Reference Manual Rev 3 xl Freescale Semiconductor Contents 26 5 12 8 RNG Output FIFO 26 186 ...
Страница 48: ...MSC8144E Reference Manual Rev 3 xlviii Freescale Semiconductor ...
Страница 86: ...MSC8144E Reference Manual Rev 3 1 38 Freescale Semiconductor Overview ...
Страница 167: ...OCE Event and JTAG Test Access Port Signals MSC8144E Reference Manual Rev 3 Freescale Semiconductor 3 59 ...
Страница 168: ...MSC8144E Reference Manual Rev 3 3 60 Freescale Semiconductor External Signals ...
Страница 242: ...MSC8144E Reference Manual Rev 3 5 26 Freescale Semiconductor Reset ...
Страница 314: ...MSC8144E Reference Manual Rev 3 8 24 Freescale Semiconductor General Configuration Registers ...
Страница 414: ...MSC8144E Reference Manual Rev 3 10 14 Freescale Semiconductor MSC8144E SC3400 DSP Subsystem ...
Страница 452: ...MSC8144E Reference Manual Rev 3 11 38 Freescale Semiconductor Internal Memory Subsystem ...
Страница 520: ...MSC8144E Reference Manual Rev 3 12 68 Freescale Semiconductor DDR SDRAM Memory Controller ...
Страница 884: ...MSC8144E Reference Manual Rev 3 17 44 Freescale Semiconductor RapidIO Interface Dedicated DMA Controller ...
Страница 1070: ...MSC8144E Reference Manual Rev 3 21 28 Freescale Semiconductor Timers ...