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.

UCD90240 current measurement

Other Parts Discussed in Thread: UCD90120A, UCD90240

I'm looking at using a pair of UCD90240s to replace 4 UCD90120A parts on a board. The UCD90120A had an undocumented limitation on the current measurement that reduced the 12 bit resolution measured to 8 bits resolution before being reported.

Does the UCD90240 report the full 10 bits resolution the API allows for current measurements? Or does it truncate the current measurement results to 8 bits like the UCD90120A?

  • All UCD90xxx sequencers use Linear11 format to report current measurement via PMBus. The Linear11 format has variable resolution which is determined by the max range. In other words, the number of quantization levels is fixed; the greater the max range, the coarser the resolution.

    Linear11 format is defined in PMBus Spec Part II, Ver. 1.2, Section 7.1.

    Thanks,

    Zhiyuan 

  • Linear11 is not the problem. It has sufficient bits for 10 bit resolution. The problem is that the internal firmware on the UCD90120A truncated the 12 bit A/D value to 8 bits before scaling it and converting to linear 11.
    I want to know if the UCD90240 is doing the same thing, or attempting to retain the maximum resolution that will fit in the linear 11 format. This will require either an answer from someone with internal knowledge of the firmware on the part, or someone to do measurements with an evaluation board.
  • The UCD90240 FW is the same.
  • I just spend $200 of my companies money to confirm that yes, this part is also limited to 8 bits resolution.

    I set up one of the rails with both current and voltage, I hooked a 5k pot between the 1.2V output & GND, and the wiper to the mon2 input.

    Set the scaling factor to 1000 mOhms, and logged the status as I turned the pot.

    The values read were: 0xB350, 0xB360, 0xB370, 0xB380,0xB390 etc. so the software is wasting 4 bits of current resolution by truncating the data to 8 bits before processing it.

    This is very disappointing.

    Is there any possibility that this parts firmware will be updated?

    Otherwise, I will have to define my current sense input as a voltage input, and convert it to current in software. Ugly.

  • Douglas,

    The current threshold settings from PMBus are real-world values (ampere) in Linear11 format. The ADC result is integer. The device must convert both to fixed-point numbers to do comparison. This fixed-point intermediate result is in Q9.6 format, which gives 15.625mA resolution. We though it gives a good trade off between range and resolution.

    Therefore, it is incorrect to say the current reading has 8-bit resolution. Actually, the current reading resolution is limited by Q9.6 format (15.625mA) and Linear11 (10-bit), whichever is coarser.

    In your test, 1000 mohm sensing resistor is chosen. 1 LSB of ADC result represents 3V/2^12/1000mohm= 0.73mA. This is 21.3 times smaller than the 15.625mA quantization step limit, so 4-5 bits resolution is lost, thus you saw 8-bit resolution in Linear11 result.

    If 30 mohm sensing resistor is used, there will be no loss in the Q9.6 format, and you will see all bits are utilized in the final Linear11 result.

    If your application requires finer than 15.625mA resolution in current reading, you may reduce the sensing resistor value in the device setting in order to get full 10-bit resolution from Linear11, and then scale the result in software.

    Thanks,
    Zhiyuan
  • Thank you for explaining the results.
    I am disappointed that I can not get full accuracy from the current measurement as the PMBUS specification intended, and while your solution would give me full resolution, if I'm going to have to hack the software and have the UCD90240 report incorrect numbers I must correct in software, I think there is an even better solution than the one you provided. I will define the current measurement input as a voltage and get all 12 bits of current resolution. I can link this to the voltage so that if the current voltage input exceeds some value, it will shut down the rail associated with it. The linear 11 format would have supported the resolution I needed if the data were not truncated before being converted to linear 11. The moment I have to incorrectly scale the results to get the full resolution, there is no longer a reason to use the current mode, and I might as well hack the system and use voltage mode.
    But this defeats the purpose of the PMBus spec of having the actual already scaled values available to the software. It also means the software must be customized to this application, and therefor can not be re-used elsewhere. What is the point of having a PMBus part in the system if one must do all of the stuff the PMBus IC was supposed to do for me in software.
  • Thank you very much for your feedback. We will consider improvements in future products.

    Best regards,
    Zhiyuan