![Texas Instruments AM1808 Скачать руководство пользователя страница 1001](http://html.mh-extra.com/html/texas-instruments/am1808/am1808_technical-reference-manual_10945581001.webp)
Architecture
1001
SPRUH82C – April 2013 – Revised September 2016
Copyright © 2013–2016, Texas Instruments Incorporated
Inter-Integrated Circuit (I2C) Module
22.2.12.1 Interrupt Events and Requests
The I2C peripheral can generate the interrupts described in
. Each interrupt has a flag bit in the
I2C interrupt status register (ICSTR) and a mask bit in the interrupt mask register (ICIMR). When one of
the specified events occurs, its flag bit is set. If the corresponding mask bit is 0, the interrupt request is
blocked; if the mask bit is 1, the request is forwarded to the CPU as an I2C interrupt.
Table 22-3. Descriptions of the I2C Interrupt Events
I2C Interrupt
Initiating Event
Arbitration-lost interrupt (AL)
Generated when the I2C arbitration procedure is lost or illegal START/STOP conditions
occur
No-acknowledge interrupt (NACK)
Generated when the master I2C does not receive any acknowledge from the receiver
Registers-ready-for-access interrupt
(ARDY)
Generated by the I2C when the previously programmed address, data and command have
been performed and the status bits have been updated. This interrupt is used to let the
controlling processor know that the I2C registers are ready to be accessed.
Receive interrupt/status
(ICRINT and ICRRDY)
Generated when the received data in the receive-shift register (ICRSR) has been copied into
the ICDRR. The ICRRDY bit can also be polled by the CPU to read the received data in the
ICDRR.
Transmit interrupt/status
(ICXINT and ICXRDY)
Generated when the transmitted data has been copied from ICDXR to the transmit-shift
register (ICXSR) and shifted out on the I2Cx_SDA pin. This bit can also polled by the CPU
to write the next transmitted data into the ICDXR.
Stop-Condition-Detection interrupt
(SCD)
Generated when a STOP condition has been detected
Address-as-Slave interrupt (AAS)
Generated when the I2C has recognized its own slave address or an address of all (8)
zeros.
22.2.13 DMA Events Generated by the I2C Peripheral
For the EDMA controller to handle transmit and receive data, the I2C peripheral generates the following
two EDMA events. Activity in EDMA channels can be synchronized to these events.
•
Receive event (ICREVT): When receive data has been copied from the receive shift register (ICRSR)
to the data receive register (ICDRR), the I2C peripheral sends an REVT signal to the EDMA controller.
In response, the EDMA controller can read the data from ICDRR.
•
Transmit event (ICXEVT): When transmit data has been copied from the data transmit register
(ICDXR) to the transmit shift register (ICXSR), the I2C peripheral sends an XEVT signal to the EDMA
controller. In response, the EDMA controller can write the next transmit data value to ICDXR.
22.2.14 Power Management
The I2C peripheral can be placed in reduced-power modes to conserve power during periods of low
activity. The power management of the I2C peripheral is controlled by the processor Power and Sleep
Controller (PSC). The PSC acts as a master controller for power management for all of the peripherals on
the device. For detailed information on power management procedures using the PSC, see the
Power and
Sleep Controller (PSC)
chapter.
22.2.15 Emulation Considerations
The response of the I2C events to emulation suspend events (such as halts and breakpoints) is controlled
by the FREE bit in the I2C mode register (ICMDR). The I2C peripheral either stops exchanging data
(FREE = 0) or continues to run (FREE = 1) when an emulation suspend event occurs. How the I2C
peripheral terminates data transactions is affected by whether the I2C peripheral is acting as a master or a
slave. For more information, see the description of the FREE bit in ICMDR (see