This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: MSP432P401R
Hi all,
I am trying to do a temperature sensor by using PT100 RTD and msp432p401r launchpad. To sense the voltage across the RTD, I used a voltage follower that is built by an opamp. The problem that I am currently facing is the ADC readings are not consistent.
The ADC settings are listed below,
1. ADC start of conversion is triggered every 10ms.
2. ADC is set as 14-bit, the ADC clock frequency is 48MHz/6=8MHz, The sample-hold-time is 128bits which is about 21.33us.
3. The voltage reference of the ADC is 1.2V.
I try to read the ADC result 20 times and store them in an array. I found that the difference between the maximum and minimum value is more than 100 which represents roughly about 7mV voltage difference.
My question is that are there any method that can reduce the inconsistency?
Regards,
David
Hi Amit,
Thanks for reply.
The schematic of the voltage follower is attached. The range of the output voltage is roughly 100mV~400mV. And I tested the output voltage with a multi-meter, it was very stable.
At the beginning, I didn't use a voltage follower for buffering. I thought the unstable reading may related to the impedance of the voltage divider. However, after I add the voltage follower, it didn't help much. I am thinking maybe I didn't set the controller right.
The code that used to setup the ADC peripheral is,
ADC14->CTL0 &= ~(ADC14_CTL0_ENC); /* Setting reference voltage to 1.2V and enabling reference */ REF_A_setReferenceVoltage(REF_A_VREF1_2V); REF_A_enableReferenceVoltage(); REF_A_enableReferenceVoltageOutput(); ADC14->CTL0 |= ADC14_CTL0_SHP; ADC14->CTL0 |= ADC14_CTL0_DIV__8; ADC14->CTL0 |= ADC14_CTL0_SSEL_3; ADC14->CTL0 |= ADC14_CTL0_CONSEQ_1; ADC14->CTL0 |= ADC14_CTL0_SHT1__128; ADC14->CTL0 |= ADC14_CTL0_SHT1__128; ADC14->CTL0 |= ADC14_CTL0_MSC; ADC14->CTL0 |= ADC14_CTL0_ON; // A0 ADC input select, P5.5; Vref=1.2V ADC14->MCTL[0] |= ADC14_MCTLN_INCH_0; ADC14->MCTL[0] |= ADC14_MCTLN_VRSEL_1;
Regards,
David
**Attention** This is a public forum