cancel
Showing results for 
Search instead for 
Did you mean: 

What is the fastest adc sampling speed when using 4 adc's

Taxara
Associate III

Hi

I thinking of buying and STM32WB (P-NUCLEO-WB55 evaluation board) because of the fast ADC.

I need to sample four analog signals with a rate of a few hunderd Ksps and store their values.

  • what would roughly be the sample rate when using 4 adc inputs (8bit)?
  • Is there any direction you can guide me to, to accomplish this? (example/ adc application note)

Thanks in advance,

1 ACCEPTED SOLUTION

Accepted Solutions
Philippe Cherbonnel
ST Employee

Hello,

As said above by Remi, the ADC is fast enough for your " few hunderd Ksps" application, you can even use it with resolution 12 bits.

You can refer to STM32WB reference manual for conversion time calculation.

conversion time = (sampling time + conversion time resolution) x (1/ ADC clock freq)

for example, with ADC resolution 12 bits, sampling time 47.5 ADC clock cycles, ADC clock freq 64MHz:

conversion time = 0.9375us <=> 1Msmp/sec

About examples to help you start your application:

There are several examples in STM32WB FW package (available to download on www.st.com).

Here are some examples using multiple ADC channels:

  • using ADC LL driver:

...\Firmware\Projects\P-NUCLEO-WB55.Nucleo\Examples_LL\ADC\ADC_GroupsRegularInjected_Init

Convert one channel with trigger from timer and data transfer by DMA, another channel on asynchronous trigger

  • using ADC HAL driver:

...\Firmware\Projects\P-NUCLEO-WB55.Nucleo\Examples\ADC\ADC_MultiChannelSingleConversion

Convert 3 channels (1 from GPIO and 2 internals (VrefInt, internal temperature sensor)) with data transfer by DMA.

Best regards

Philippe

View solution in original post

7 REPLIES 7
Ozone
Lead

The datasheet for the STM32WB55CC says 4,26 Msps.

Up to 7,11 Msps with reduced resolution.

Yes this seems to be the case when using one adc. But i think, (i cant really find this) that it would be divided by x when sampling x at the same time.

Yes, it will be x/4 if you use a single adc. Or x/2 if you use two adcs for 2 channels each. If that chip has two adcs. Still gets you well over a couple hundred ksps in either case.

If you feel a post has answered your question, please click "Accept as Solution".
Remi QUINTIN
ST Employee

​For 8 bit resolution , the fast ADC of the STM32WB can achieve up to 5.81 Msps. This let over 1.4 Msps for each of the 4 signals.

It is by far enough for the signals you want to sample.

For sure, that is the way a multiplexed SAR ADC works.

I would choose the lowest sampling rate ( longest sampling time) possible, as this would ease the design of the analog input section.

In the Msps range, this is much more difficult then it seems at first glance.

Philippe Cherbonnel
ST Employee

Hello,

As said above by Remi, the ADC is fast enough for your " few hunderd Ksps" application, you can even use it with resolution 12 bits.

You can refer to STM32WB reference manual for conversion time calculation.

conversion time = (sampling time + conversion time resolution) x (1/ ADC clock freq)

for example, with ADC resolution 12 bits, sampling time 47.5 ADC clock cycles, ADC clock freq 64MHz:

conversion time = 0.9375us <=> 1Msmp/sec

About examples to help you start your application:

There are several examples in STM32WB FW package (available to download on www.st.com).

Here are some examples using multiple ADC channels:

  • using ADC LL driver:

...\Firmware\Projects\P-NUCLEO-WB55.Nucleo\Examples_LL\ADC\ADC_GroupsRegularInjected_Init

Convert one channel with trigger from timer and data transfer by DMA, another channel on asynchronous trigger

  • using ADC HAL driver:

...\Firmware\Projects\P-NUCLEO-WB55.Nucleo\Examples\ADC\ADC_MultiChannelSingleConversion

Convert 3 channels (1 from GPIO and 2 internals (VrefInt, internal temperature sensor)) with data transfer by DMA.

Best regards

Philippe

Hi Philippe

Thanks for the examples and extensive information!

Cheers,

Taxara