PSoC3 12bits GPIO to SRAM using DMA

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

   

I would like to transfer 1000 data from a 12 bits 10MSPS ADC to SRAM in a PSoC3 chip. I think the best way to do this is to use DMA. But I can not find any way to setup the DMA channel.

   

From the device datasheet, it seems possible to use PHUB transfer upto 16 bits of data a time from IO (Spoke 1) to SRAM (Spoke 0). The closest example I found is "DMA to GPIO". In this example a 8  bit register in UDB is used. There is no way to get a 12bit register in PSoC Creater. I was thinking directly set the source memory address to the IO port. Will this work? Is there a better way to do this?

   

Thanks a lot.

0 Likes
1 Solution
Anonymous
Not applicable

Hello,

   

First up, PSoC3 has a DelSig ADC which at 12 bit resolution will provide a maximum sampling rate of 192KSPS. The ADC data when handled needs to be handled in multiples of 8bit data(8 bit, 16 bit, 24 bit and so on). Hence 12 bit data needs to be considered as 2 bytes. 

   

Please refer to the following App Note for a detailed explanation on buffering ADC data using DMA in PSoC3, http://www.cypress.com/?rID=44335.

   

Also refer to the following App Note on more about DMA configuration and usage, http://www.cypress.com/?rID=37793.

View solution in original post

0 Likes
2 Replies
Anonymous
Not applicable

Hello,

   

First up, PSoC3 has a DelSig ADC which at 12 bit resolution will provide a maximum sampling rate of 192KSPS. The ADC data when handled needs to be handled in multiples of 8bit data(8 bit, 16 bit, 24 bit and so on). Hence 12 bit data needs to be considered as 2 bytes. 

   

Please refer to the following App Note for a detailed explanation on buffering ADC data using DMA in PSoC3, http://www.cypress.com/?rID=44335.

   

Also refer to the following App Note on more about DMA configuration and usage, http://www.cypress.com/?rID=37793.

0 Likes
Anonymous
Not applicable

 Thanks for reply.

   

But, I need a fast 12 bit ADC for my application. The build in ADC can not have 10 MSPS. So I have to use a external ADC running at 10 MSPS. That's why I need DMA for this fast ADC.

0 Likes