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.

PGA460: Choppy On board Temperature sensor measurement, missing values

Part Number: PGA460

The on board temperature sensor output has been temperamental, and been hard to make use of, i am not sure why this might be. 

Also over a period of a week were the temp was measured it seems to have some missing values.

Note Measurements are taking every 2 seconds

If you have any advice on how the measurement can be cleaned up and improved this would be much appreciated. Looking at a few other post i noticed there is a number of commands and some alteration of the value to the uncompensated value, but wonder if there is anything else that would apply here?  

here are two screengrabs of the GUI if that helps also, ignore the zero in the first one

Your help and feedback is much appreciated :)  

missing values

  • Calex36,

    I have a few questions to better understand the temperature senor's use-case:

    1) Is the temperature sensor being used for ambient purposes? It is important to note the temperature sensor is for die-temperature, and not necessarily for an accurate ambient temperatures. Yes, it is possible to extract ambient temperature sensors information per section 7.3.11 of the datasheet. The temperature sensor accuracy is specified to fluctuate by +/-5 degrees Celsius (typical), and will also shift based on the VPWR level and whether the device is bursting, active, inactive, or in low power mode.

    2) Is the measurement being performed in a temperature controlled setting, or is the setting real-world, and responding to actual temperature changes throughout the day? Because the peaks are showing at around 12:00 in each case, I suspect this is more real world.

    3) Assuming conditions are real world, the temperature sensor readout appears to be within the spec limit. There is not much more that can be done to improve accuracy. You may need to use an external temperature sensor for higher accuracy.

    4) The temperature measurement's sample and conversion time requires at least 100 us after the temperature measurement command is issued. Do not send other commands during this time to allow the temperature value to properly update. Otherwise, the readout will not update. This is the only reason it may be "missing values".

  • Hello Akeem,

    To answer your questions

    1. The device is powered down most of the time and powers up for a few seconds every minute, so should be largely at ambient temperature. (This is due to the product being battery powered.)

    2. The device is outside and so is measuring ambient.

    3. The absolute accuracy is not critical at this stage, We just want to see smooth graphs and look for temperature artefacts on other data (sorry can't go into much more detail on a public forum).

    4. I believe we wait longer than that, however do you know if the temperature measurement command should include a checksum or not?

    Thanks

    Simon Fisher

  • Simon,

    Could you verify which interface option you are using (time-command, asynchronous UART, or synchronous USART, etc.)?  

    Thank you,

    Mekre

  • Hello, this is using the asynchronous UART only.

  • Simon,

    When sending a temperature measurement command, the microcontroller must include a checksum in the asynchronous UART frame that is transmitted to the PGA460.

    When the microcontroller sends the command to read the temperature measurement, the PGA460 generates its own checksum that it sends back to the microcontroller. In case you haven’t done so already, could you verify the checksum check passes for each of the received PGA460 temperature readings?

    If the checksum test passes and you still see the same behavior, could you also try calibrating the temperature sensor to see if it helps.  To do this, first calculate the TEMP_GAIN and TEMP_OFF parameters mentioned in Section 7.3.11 of the datasheet, and then program these parameters into the TEMP_GAIN and TEMP_OFF bits in the TEMP_TRIM EEPROM register.

    Thank you,

    Mekre