ADC Conversion Time too long on BCM920737TAG

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

cross mob
StBa_721356
Level 5
Level 5
50 likes received 25 likes received 10 likes received

We want to measure an ADC value on a BCM920737TAG where 10 bit resolution would be enough. But we only have about 30uS time to do the conversion.

The PDF for the BCM920732 states that the conversion time is 10uS. Unfortunately in our tests the conversion time is about 180uS.

That PDF also states that there are 5 different sampling modes available with ENOBs 10, 11.5, 12, 12.6 and 13

In adc.h there is a comment which states:

* Defines functions to access ADC peripheral. The ADC provides one-shot conversion of

* and input analog signal to a digital value (raw or converted to Volts). The maximum

* sampling rate is 187 KHz with 10 ENOB and the minimum conversion rate is 5.859 KHz.

How can we change the ENOB to 10? We found several discussion posts where 10 and 13 ENOB are mentioned including BCM20732S ADC Configuration but no indication about how to change this.

0 Likes
1 Solution

Thanks to stuart_sf we found the solution:

we include 20732mapa1.h and are using the following code to change the ADC to mode 3 before calling arc_config():

  INTF_CTL_REG  config;

  config.adc_intf_ctl_reg = mia_adc_intf_ctl;

  config.bitmap.adcModeSelect = INTF_CTL_MODE_3_100KHZ;

  mia_adc_intf_ctl = config.adc_intf_ctl_reg;

Now the ADC sampling is quite fast and the ENOB of mode 3 is totally sufficient for us.

Of course this is not the optimal solution because it bypasses the ADC SDK and sets the mode directly.

But we hope that changing the ADC mode will be part of the next SDK release...

View solution in original post

2 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

I checked with the development team and they confirmed that the default is mode 0, which will give you 13 ENOB. We are looking into adding an API within the next SDK release to change the mode.

0 Likes

Thanks to stuart_sf we found the solution:

we include 20732mapa1.h and are using the following code to change the ADC to mode 3 before calling arc_config():

  INTF_CTL_REG  config;

  config.adc_intf_ctl_reg = mia_adc_intf_ctl;

  config.bitmap.adcModeSelect = INTF_CTL_MODE_3_100KHZ;

  mia_adc_intf_ctl = config.adc_intf_ctl_reg;

Now the ADC sampling is quite fast and the ENOB of mode 3 is totally sufficient for us.

Of course this is not the optimal solution because it bypasses the ADC SDK and sets the mode directly.

But we hope that changing the ADC mode will be part of the next SDK release...