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.

• Resolved

# UCD9246: User Defined temperature sensor

Part Number: UCD9246

We would like to use the LM57-10 to measure the board temperature of our UCD9246 based design.  This will be fed directly into the "TEMPERATURE" pin, w/o a mux.

Fusion Digital Power Design (FDPD) allows one to define a temperature sensor, and when I flip the "sensitivity" around in order to get sensor "gain" I end up with this selection window.

I guess it doesn't automatically calculate the voltage at 0C (2.202V)?  Nor a sensitivity value? I just want to make sure I put this in correctly.

BTW, the LM57 has 4 different sensitivity curves, we're using J4 -> -10.339 mV/deg C, so it should be somewhat close to included LM94022.

Thanks, Best, Steve

• Hi We will look into this and get back to you by tomorrow.

Regards,
Weidong
• Background:

The committee that created the PMBus protocol choose to define several commands opposite of how they are typically defined by manufacturers.

Temperature is one of them.

Manufacturers will define sensor gain in mV/C while the TEMP_CAL_GAIN is entered as C/V.

So -10.39 mV/C will be 96.246 C/V.

And instead of specifying the voltage at 0C, PMBus uses the temperature at 0V.

In this case, you would take the voltage at 0C and divide by sensor gain.

LM57:

LM57 isn't your typical analog sensor, the temperature to voltage curve, while appearing to be a straight line in the datasheet curves isn't specified as just Y=mX+b but is a polynomial which is specified over a relatively narrow temperature range (as least as far as I can tell with my brief review of the datasheet).  I'm not sure if this would be the best selection for the UCD9246.

The polynomial "a" term is relatively small and could probably be ignored, with a loss in accuracy, then there is the "b' term which is multiplied by (Tambient - 30C).  Although this could be accounted for by multiplying the -30C component with the gain and shifting it into a modified "c" term.

How this all plays out into the overall accuracy, I couldn't comment on.  You might want to post to the forum which handles the temp sensor.

Is there a particular reason you chose this device, do you need the digital outputs?

The LM57 was used on a previous project. The narrow ranges you see have to do with the thermal switch configuration.

The FPGA has it's own internal die temperature sensor, and the UCD9246 has it's own internal temp sensor.

This LM57 will be used to monitor the board temperature near the UCD74120 PowerStages. We don't expect thermal issues, but we also aren't doing a lot of thermal engineering of the board either so we need to have some idea about what's going on there.

The thermal switch output is going directly to the FPGA to be used as an interrupt in case it does catch on fire.

The actual temperature range that this board will run over is fairly narrow, so the non-linearity of the sensor isn't too concerning to me. We also aren't using it for a precision measurement.

I just want to make sure I'm entering the parameters correctly (I think I did) and am still confused as to why the screen shot says the voltage at 0 deg C = 0.000V. Looks like a bug?

The way I think I would tackle the TEMP_CAL_OFFSET:
Pick the temperature you expect to set for the OT_Fault threshold to shut down the rails of the UCD9246 in the event the sensed temperature is reached.
Calculate the voltage that the LM57 will output at this temperature using the equation from its datasheet.
Take this voltage and divide by the gain (10.339mV/C), add this to the OT_Fault threshold.
Use this for the TEMP_CAL_OFFSET, this should give the reported temperature in the UCD9246 the greatest accuracy at the shutdown threshold.

The internal temp sensor in the UCD9246 is not used for the OTW/F, these use the external sensor. The internal OT threshold is fixed and set outside the normal operating temp range.

Your number for TEMP_CAL_GAIN was correct, I used -10.39mV instead of -10.339mV.