AnsweredAssumed Answered

STM32F4 I2C BTF bit is not set after DMA TX complete

Question asked by rocca.stephane on Dec 10, 2012
Latest reply on Dec 13, 2012 by rocca.stephane
Hi all,
I noticed that there is an high traffic in I2C2_EV_IRQHandler() with status 0x70080 (EV8 =I2C_EVENT_MASTER_BYTE_TRANSMITTING) after all the bytes was transmitted with success by DMA (but it's the same problem without DMA transfer).
I think the reason is that the TXE is still set, and the BTF is not (hardware will set it after several 0x70080 interrupts).

So, is there a way to force BTF to 1 after DMA IT TC ? Is it a DMA control register parameter to set ?

Even after that (BTF is set now), I noticed several interrupts with same status (0x70084 = EV8_2 = I2C_EVENT_MASTER_BYTE_TRANSMITTED), all of this repeated interrupts are useless for me.

Of course, it's not a problem for a simple TX write operation, because I can disable interrupts after sending the stop condition, but when I want to restart for a RX read sequence, it's alot of interrupts that are fired for nothing.

I think there may be a way to fix it ? don't it ?

Outcomes