Inter-integrated circuit (I 2 C) interface
RM0008
corresponding DMA channel is reached, the DMA controller sends an End of Transfer EOT
signal to the I 2 C interface and generates a Transfer Complete interrupt if enabled:
Master transmitter: In the interrupt routine after the EOT interrupt, disable DMA
requests then wait for a BTF event before programming the Stop condition.
Master receiver: when the number of bytes to be received is equal to or greater than
two, the DMA controller sends a hardware signal, EOT_1, corresponding to the last but
one data byte (number_of_bytes – 1). If, in the I2C_CR2 register, the LAST bit is set,
I 2 C automatically sends a NACK after the next byte following EOT_1. The user can
generate a Stop condition in the DMA Transfer Complete interrupt routine if enabled.
Transmission using DMA
DMA mode can be enabled for transmission by setting the DMAEN bit in the I2C_CR2
register. Data will be loaded from a Memory area configured using the DMA peripheral (refer
to the DMA specification) to the I2C_DR register whenever the TxE bit is set. To map a DMA
channel for I 2 C transmission, perform the following sequence. Here x is the channel number.
1.Set the I2C_DR register address in the DMA_CPARx register. The data will be
moved to this address from the memory after each TxE event.
2. Set the memory address in the DMA_CMARx register. The data will be loaded
into I2C_DR from this memory after each TxE event.
3. Configure the total number of bytes to be transferred in the DMA_CNDTRx
register. After each TxE event, this value will be decremented.
4. Configure the channel priority using the PL[0:1] bits in the DMA_CCRx register
5. Set the DIR bit and, in the DMA_CCRx register, configure interrupts after half
transfer or full transfer depending on application requirements.
6. Activate the channel by setting the EN bit in the DMA_CCRx register.
When the number of data transfers which has been programmed in the DMA Controller
registers is reached, the DMA controller sends an End of Transfer EOT/ EOT_1 signal to the
I 2 C interface and the DMA generates an interrupt, if enabled, on the DMA channel interrupt
vector.
Note:
Do not enable the ITBUFEN bit in the I2C_CR2 register if DMA is used for transmission.
Reception using DMA
DMA mode can be enabled for reception by setting the DMAEN bit in the I2C_CR2 register.
Data will be loaded from the I2C_DR register to a Memory area configured using the DMA
peripheral (refer to the DMA specification) whenever a data byte is received. To map a DMA
channel for I 2 C reception, perform the following sequence. Here x is the channel number.
638/995
1.
2.
3.
4.
5.
6.
Set the I2C_DR register address in DMA_CPARx register. The data will be moved from
this address to the memory after each RxNE event.
Set the memory address in the DMA_CMARx register. The data will be loaded from the
I2C_DR register to this memory area after each RxNE event.
Configure the total number of bytes to be transferred in the DMA_CNDTRx register.
After each RxNE event, this value will be decremented.
Configure the channel priority using the PL[0:1] bits in the DMA_CCRx register
Reset the DIR bit and configure interrupts in the DMA_CCRx register after half transfer
or full transfer depending on application requirements.
Activate the channel by setting the EN bit in the DMA_CCRx register.
Doc ID 13902 Rev 9
相关PDF资料
MCBTMPM330 BOARD EVAL TOSHIBA TMPM330 SER
MCIMX25WPDKJ KIT DEVELOPMENT WINCE IMX25
MCIMX53-START-R KIT DEVELOPMENT I.MX53
MCM69C432TQ20 IC CAM 1MB 50MHZ 100LQFP
MCP1401T-E/OT IC MOSFET DRVR INV 500MA SOT23-5
MCP1403T-E/MF IC MOSFET DRIVER 4.5A DUAL 8DFN
MCP1406-E/SN IC MOSFET DVR 6A 8SOIC
MCP14628T-E/MF IC MOSFET DVR 2A SYNC BUCK 8-DFN
相关代理商/技术参数
MCBSTM32EXLU 功能描述:开发板和工具包 - ARM EVAL BOARD + ULINK2 FOR STM32F103ZG RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
MCBSTM32EXLU-ED 制造商:ARM Ltd 功能描述:KEIL STM STM32EXL EVAL BOARD
MCBSTM32EXLUME 功能描述:开发板和工具包 - ARM EVAL BOARD + ULINKME FOR STM32F103ZG RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
MCBSTM32F200 功能描述:开发板和工具包 - ARM EVAL BOARD FOR STM STM32F207IG RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
MCBSTM32F200U 功能描述:开发板和工具包 - ARM EVAL BOARD FOR STM STM32F207IG + ULINK2 RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
MCBSTM32F200UME 功能描述:开发板和工具包 - ARM EVAL BOARD FOR STM STM32F207IG ULINK-ME RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V
MCBSTM32F200UME-ED 制造商:ARM Ltd 功能描述:KEIL STM32F207IG EVAL BOARD
MCBSTM32F400 功能描述:开发板和工具包 - ARM EVAL BOARD FOR STM STM32F407IG RoHS:否 制造商:Arduino 产品:Development Boards 工具用于评估:ATSAM3X8EA-AU 核心:ARM Cortex M3 接口类型:DAC, ICSP, JTAG, UART, USB 工作电源电压:3.3 V