12 bit ADC DMA Filter DMA UART

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

cross mob
lock attach
Attachments are accessible only for community members.
dhgac_296796
Level 4
Level 4
First like given

I am trying to configure 12 bit delta sigma ADC for transferring analog data to filter via DMA. I had to set 12 bit resolution to match the sample rate of ADC and filter. It is required to send higher byte of data to UART for serial communication. However I am not getting data..Please suggest for possible solutions..

0 Likes
1 Solution

I probably don't understand the issue. The filter does not care about input rate, if you have e.g. 2 kHz, just specify it in filter dialog. If 1100 Hz is absolutely necessary, you can get it using ADC external trigger mode (soc attached to 1100Hz  clock or PWM).

View solution in original post

0 Likes
6 Replies
lock attach
Attachments are accessible only for community members.
odissey1
Level 9
Level 9
First comment on KBA 1000 replies posted 750 replies posted

Make sure that ADC coherency settings are correct (screenshot attached)

DelSig_ADC settings for 16-bit ADC-DMA-Filter.png

0 Likes

Ups, just noticed you need 12-bit, not 16. 

0 Likes

Thanks for your time!! I have referred to the ADC and Filter coherency settings given for 9-16 bit adc resolution. Please go through the attachment for correction if any..

I am using two DMA channels for data transfer, one for ADC to filter and second for Filter to UART/DAC8. Getting no hint if filter output received at the UART will be in 2's complement format and how can I get it corrected for my signal? 

0 Likes

There are issues with Filter-DMA-VDAC, see this thread

Class D adcDelSig>Filter>Pwm using DMA only

So I recommend using Filter-driven interrupt approach. To convert data then you simply need to add 128u to Filter result. See Cypress Filter example.

Other thing is that UART can't handle more than 1-3 ksamples/sec at 115kb anyway, so interrupt-driven approach is totally sufficient.

0 Likes

Thanks for the guideline.

I had tried the interrupt driven approach earlier for 8bit data. For 8 bit ADC resolution I had added 128u to filter result, for 16bit resolution I had added 65536u. I was unable to get 1100 samples/second in ADC for 8 bit or16 bit resolution. I am using single sample mode. This is required for filter sample rate requirement. Hence I moved to 12 bit resolution. 

But I don't understand how filter will work on 2 byte data with 12 ADC bit resolution..

0 Likes

I probably don't understand the issue. The filter does not care about input rate, if you have e.g. 2 kHz, just specify it in filter dialog. If 1100 Hz is absolutely necessary, you can get it using ADC external trigger mode (soc attached to 1100Hz  clock or PWM).

0 Likes