You are here

I2C and DMA | Cypress Semiconductor

I2C and DMA

Summary: 2 Replies, Latest post by PSoC Rocks on 24 Nov 2012 03:31 AM PST
Verified Answers: 0
Last post
Log in to post new comments.
Clark108's picture
1 post


I am doing a project where data comes from I2C bus.I want to store this data using DMA in PSoC3 (Master). Do you have any project or article regarding this. 

There are interrupt terminals for SPI and UART, but not for I2C..:(




user_14586677's picture
7646 posts

You might want to post a tech case -


“Technical Support”

“Create a Case”

You could consider an approach where you poll I2C status, and trigger

a DMA transfer of the read buffer when its staus flag is ready. But that

seems to be a defeat of general DMA capability to be fully automatic.


Regards, Dana.

PSoC Rocks's picture
141 posts

 Using I2C & DMA is not very easy as the I2C component is highly interrupt driven. If you get a chance to look at I2C.c file, you can understand how the data movement is being handled by the component - The hardware component only provides certain internal signals for start/stop/read,write/byte received conditions but only CPU takes care of futher processing and data movements.

So what you can do with DMA is this - Instead of using CPU to move the data from user register to I2C buffer or vice-versa, you can give a trigger to DMA and let DMA to transfer the data. If you want to remove the processing overhead of CPU in handling those internal signals, then probably you need to write some more verilog code to do provide triggers to DMA for completely avoiding the CPU intervention.

Log in to post new comments.