Getting resistance of a thermistor with EVAL-ADICUP 360

I am trying to find the resistance of an NTC thermistor with an EVAL-ADICUP 360. I am trying to use the internal voltage 1.1v.

I started making a new project, but had some questions:

For AdcRng, where do does the ADCCON_ADCREF_EXTREF come from, where is the pin for the adc power (I need to connect the thermistor to is too)?

For AdcRng, where do does the ADCCON_ADCREF_INTREF come from, where is the pin that the adc draws the power from (if I wanted to input 3.3v into the adc)?

For AdcPin, what are iInN and iInP? If this is where the voltage does, then where does the analog signal from the resistor go?

 

What I have so far (but does not work):

AdcRng(pADI_ADC0, ADCCON_ADCREF_INTREF, ADCMDE_PGA_G1, ADCCON_ADCCODE_INT);

AdcFlt(pADI_ADC0,1,1,FLT_NORMAL);

AdcGo(pADI_ADC0,ADCMDE_ADCMD_IDLE);

AdcPin(pADI_ADC0,ADCCON_ADCCN_AIN0,ADCCON_ADCCN_AIN1);

adcValue = AdcRd(pADI_ADC0);

What would a set up for this code look like for a thermistor (where do the +/-, and analog out wires go)?

Where does the voltage wire go (ADCCON_ADCREF_INTREF... but where is it on the board)?

Where does ground go?

What goes into pins ADCCON_ADCCN_AIN0 and ADCCON_ADCCN_AIN1?

A schematic would really help

  • 0
    •  Analog Employees 
    on Feb 27, 2020 7:31 PM

    Hi Kendreaditya,

    We do have a hardware software project that uses the internal ADCs on the EVAL-ADICUP360 to read both Thermocouples and RTDs.  RTDs and Thermistors operate in the exact same manner from the converts stand point, all that will need to be changed is the mathematical formula needed to compute the temperature value.  Please have a look at the CN0394.

    The CN0394 is an Arduino shield form factor board that plugs directly into the EVAL-ADICUP360.

    There is a User Guide found here https://wiki.analog.com/resources/eval/user-guides/eval-adicup360/reference_designs/demo_cn0394  and the software can be viewed here https://github.com/analogdevicesinc/EVAL-ADICUP360/tree/master/projects/ADuCM360_demo_cn0394

    Have a look into this design and software and hopefully this should answer your questions.

    Cheers,

    Brandon

  • Thank You for a response, I have looked into that design, but I do not have the CN0394 currently, and I can't use it for the purpose of the project (I am not allowed to use external conditioning boards specifically, PCBs). I originally tried replicated the CN0394 board schematic on a breadboard, but I was unsuccessful. Could you please aid me in recreating the CN0394 board on a breadboard? Edit: After looking at the schematic for the CN0394, I was able to get the NTC thermistor to correctly work. However, the temperature range I am dealing with is 0-75C, around 37,000 ohm - 1,300 ohm. The resistance range in the serial has a max of 9999 ohm, I could not figure out the reasoning behind this limit. How could the ADC read all the resistances in the thermistor's range?

  • 0
    •  Analog Employees 
    on Feb 28, 2020 4:52 PM in reply to kendreaditya

    So you need to be careful that your full scale input range into the ADC isn't being over driven.  If your thermistor gets up to 37K ohms and your excitation current is 620uA (like the default CN0394 software is set too) that says you are trying to measure an input voltage of 22.2 volts, which is WAY out of range for the current Vref setup on the ADC(only set to 1V).

    What you need to do is if 37K is the max your thermistor gets at 75 degrees, than you need to set the excitation current register of the ADuCM360 to 50uA.  That would give you a full scale voltage of 1.85V.  And with that as your full scale, you need to provide an external voltage reference of 2V to the Vref + pin.  This can be done using a DC voltage or using R5 shown in the CN0394 (not if you use R5, the value of that resistor should be higher than 37K, 38.3k should be fine)

    Once that is done you'll have to change the calculation functions in the software so that the values that get converted and calculated in the software come out correctly.

  • Thank you for the helpful response, I had set R5 to a 100K resistor, and the resistances seemed to work fine. However, I did not change the excitation current, but the program, as I remember, still worked. However, after trying the lower the 100K resistor to a 48K potentiometer, the resistance became weird. As in, sometimes why would output only negatives, but overall the resistance was for sure wrong. I tried reworking both my setup and the program to a vanilla version, but there was no difference. Every time the program would run, the resistance would be different. My thinking is that I somehow messed up the ADC, I was wondering if how I should check if something is wrong with the ADC? If something is wrong, then can I use the other ADC on board (I am certain I will have to change the program), but is it possible to do so? Thank You for all the help!

  • 0
    •  Analog Employees 
    on Mar 4, 2020 6:41 PM in reply to kendreaditya

    So if you have 100K where R5 was, and still had the current set to 620uA, that would give you an effective voltage of 62V, which is beyond the range of acceptable input values.  There is a possibility that you could have damaged the ADuCM360 itself.

    It would probably be a good idea to get another board just so that you can rule out the fact that you may have damaged the first one.

    Also, I would simplify the circuit a bit, to make it easier on yourself to convert the thermistor values into resistance and then ultimately temperature.

    I took the CN0394 schematic and stripped out a bunch of things that aren't needed.  So assuming your thermistor ranges from 1.3Kohms to 37Kohms, that translates into a full scale input voltage range of 1.85V (using the 50uA excitation current from the ADuCM360).  For a bit of headroom (and ease) I would put a 2V input on that VrefP pin.  So the ADC code that you read back will be a voltage that corresponds to the resistance value (V=IR, where I=50uA and V= 2* ADC Code)  Then all you need to do is use the formula associated with your thermistor to determine what that value resistance means in terms of temperature. 

    Just don't forget to set the excitation current to 50uA and make sure you modify the functions calls within the software to reflect your conversions (not the RTD and thermocouple formulas)

    Cheers,

    Brandon