Author Topic: Help - Selecting microcontroller for high sample rate  (Read 1603 times)

0 Members and 1 Guest are viewing this topic.

Offline mark03

  • Frequent Contributor
  • **
  • Posts: 526
  • Country: us
Re: Help - Selecting microcontroller for high sample rate
« Reply #25 on: December 06, 2018, 11:55:38 pm »
To obtain 16 bits of resolution, you need to downsample by >= 256x, not 16x.  Each factor of four gives you one bit, in the best case, if the noise is white and the signal is sufficiently dithered.

No, averaging 16 samples will give 4 extra bits of resolution but it will only reduce the noise by 2 bits (assuming there is sufficient dither and the noise is Guassian and uncorrelated).

Semantics.  By this definition you could simply left-shift each sample by four bits and thereby gain your four extra bits of resolution.  I think most people would understand an increase in resolution to imply an increase in SNR (by the same amount).

Quote
Quote
Also, the simple averaging provided by most MCUs is not really proper downsampling; it is a very loose low-pass filter (sinc^1) followed by the decimate-by-N stage.  Better would be something like the DFSDM peripheral on some STM32 MCUs.

It is 'proper' downsampling. 'Better' depends on what you are trying to achieve. There are many different digital filter types that could be used with varying tradeoffs including complexity, BW, sharpness, flatness, group delay etc.

Ok, "better" in the sense of being a closer approximation to the textbook downsampler with a brick-wall LPF.  Certainly there are other issues to consider, as you point out.
« Last Edit: December 07, 2018, 12:08:36 am by mark03 »
 

Offline splin

  • Frequent Contributor
  • **
  • Posts: 734
  • Country: gb
Re: Help - Selecting microcontroller for high sample rate
« Reply #26 on: December 07, 2018, 01:53:11 am »

No, averaging 16 samples will give 4 extra bits of resolution but it will only reduce the noise by 2 bits (assuming there is sufficient dither and the noise is Guassian and uncorrelated).

Semantics.  By this definition you could simply left-shift each sample by four bits and thereby gain your four extra bits of resolution.  I think most people would understand an increase in resolution to imply an increase in SNR (by the same amount).

Semantics are important. Resolution is independant of accuracy and noise. By your argument, the STM32H7 ADC should be called a 13.5bit ADC and the AD7980 as 15bit. That may be a useful way to classify ADCs but it isn't the one that is conventially used. Virtually all ADCs have rather less ENOBs than their marketing resolution. The LTC2500-32 is called a 32 bit ADC but its best specified resolution is approx 24bits.

OTOH, some lower resoution ADCs have better intrinsic noise performance than their nominal resolution which means that ENOB will increase by 1 bit for each 2x oversampling (with usual dither, noise characteristics disclaimer). This arises because an ADC can sold with different resolutions, at varying prices by configuring each part's resolution during manufacturing. This can be done on artificial criteria - eg. based on market demands for each resolution, or based on selection on test whereby only the best performing devices are sold as the highest resolution parts.

And since you metioned the STM32H7's DFSDM then take a look at how ST show how resolution varies with oversampling ratio (FOSR) and filter type in the attached.

Quote
Quote
Quote
Also, the simple averaging provided by most MCUs is not really proper downsampling; it is a very loose low-pass filter (sinc^1) followed by the decimate-by-N stage.  Better would be something like the DFSDM peripheral on some STM32 MCUs.

It is 'proper' downsampling. 'Better' depends on what you are trying to achieve. There are many different digital filter types that could be used with varying tradeoffs including complexity, BW, sharpness, flatness, group delay etc.

Ok, "better" in the sense of being a closer approximation to the textbook downsampler with a brick-wall LPF.  Certainly there are other issues to consider, as you point out.

Or to put it another way, not better - different. Which is why some ADCs have a a variety of digital filters built in to allow designers to select the 'best' one for their application.
 

Offline Bassman59

  • Super Contributor
  • ***
  • Posts: 1196
  • Country: us
  • Yes, I do this for a living
Re: Help - Selecting microcontroller for high sample rate
« Reply #27 on: December 07, 2018, 04:49:30 pm »
Hi,

New here (not sure if this should go into the newbie section), and i need some help!
I've taken on a project that out of my comfort zone and i have trouble selecting a microcontroller that can handle that data throughput.

issue:
4x 16bit ADC @ 1MSPS (ad7980, or similar. using 3-wire spi)
Continues sampling, into buffers (4* 640 data points) threshold trigger on 1 buffer.
Then offloading to other micro (open to changing that) , for data processing.


Ive looked at DMA (mainy stm32 on the lower Mhz scale), i am just lost.
Can you guys help me select a microcontroller? (maybe even FPGA)

I'd do it all in a small FPGA. Depending on your data processing requirements, you can do that in the FPGA as well.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf