URGENT: Problems using ADC of MXRT1051

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

URGENT: Problems using ADC of MXRT1051

1,086 Views
thomas_k1
Contributor II

We are a bit under pressure to solve this problem, would be nice someone could help fast.

Wenn we measure with ADC the signals makes a jump than it reaches a certain level. 

First picture shows ADC result values (increments). The second is a measurement of the analoge input signal at the same time at the input of the operational amplifier (signal "SENSOR_1"). There is no jump to observe.

Signal "ADC1_CH00_SENSOR1" (=µC input) is not only defined by the voltage divider in the schematics. It seems that there is an additional e.g. 100 k pull down in the µC. And then it reaches a certain level, this internal resistor seems to be switched of. The signals jumps to its expected value. 

We think that this is a configuration error but we can't figure out. There is no option "No internal resistor". 1 pull down, a few pull up and "No Init". "No init" does not sound as a valid option and may cause in random results. (though I will test this next).

I'm using MCUXpresso IDE v11.0.0 [Build 2516] [2019-06-05]

Can you help me with that?

Thank you

Best regards

Thomas

bad_signal_measured_with_adc_1051.jpg

good_signal_measured_with_ref_system.jpg

Schematics.jpg

Labels (1)
0 Kudos
2 Replies

890 Views
thomas_k1
Contributor II

The problem is caused by the setting Pull/Keeper Enable = true.

This was the default setting. Just for my understanding: What is the background of this setting for an analog input? 

Pull down / up are an unwanted loads and skew the measurement. Keeper as far as I understand are only useful for digital outputs.

So why NXP selects this setting as default? Which other settings do influence analog inputs? SRE/ ODE / DSE ... ? Do all these work independent from the selected function of the pad?

0 Kudos

890 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Thomas Kintzel

   Thanks for your problem result sharing, and sorry for our later reply!

   pull down/up is the internal pull resistor, keeper is used for keeping the previous output value.

  In factor, register OMUXC_SW_PAD_CTL_PAD_xx_xx already give the default value, take GPIO_AD_B1_11 as an example:

pastedImage_1.png

So, if your application don't need the internal pull/keep circuit, you can disable it. DSE you can set to 000, ODE you also can set it to 0. Normally, when you configure the related modules, you need to configure the IOMUXC pins register at first.

Wish it helps you!

If you still have question about it, please kindly let me know.

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------