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.

UCD3138: UCD3138

Part Number: UCD3138

Hello,

We are using UCD3138 for two projects and trying to get familiar with the codes and the micro. I have some questions listed below:

1- What is the easiest way to check the output voltage value using GUI debugger? Which register or variable should we look at? We are looking at the LLC code as well as HSFB code.

2- What is the easiest way to check the DAC value using GUI debugger?

3- What is init_pmbus(0x58) for? Is it the UCD3138 PMBUS address?

4- The user guide for HSFB says that the standard interrupt occurs every 10 Us and fast interrupt every 4 switching cycle( assuming switching frequency of 200khz it will be 20 us?) Is this correct?

Thanks

  • An expert will review your question and get back to you.
  • Hi Mehran Jaan,

    1) The best way to read vout is via VOUT_READ PMBus command. No register will carry this value. There should be a variable such as adc_values.vout inside one of the ADC structures that is proportional to vout. But its value is not in volts. ThE READ_VOUT command will scale this variable to read in volts. You can access this command through the Config Tab of the GUI.

    2) The DACVALUE bitfield inside the DACSTAT register can be accessed via memory debugger. Use DACSTAT as your filter in memory debuger.

    3) You can set the PMBus address of UCD to many values by calling the init_pmbus(desired_address). In this code the address in set to 0x58.
    the init_pmbus actually takes this address and saves it in the address register of the pmbuss controller.
    The only PMBus adress that is fixed for UCD is the PMBus address when you are in ROM mode. And that address is 0xb (or 11 decimal).
    4) The standard interrupt is set to happen every 100 micro-seconds based on a timer (Not 10 uS). And true, fast interrupt every 20 uS.
    But we could configure these to happen in Longer or shorter intervals.

    Regards,
  • Thanks for the decent answers! What we have noticed is that the converter is working just fine as expected but adc_values.vout or adc_values.iout are all showing "0" in GUI debugger. Any idea why this is happening? And how to fix it?
  • You have to direct your memory debugger to the right .pp and .map files folder, before you use the memory debugger. This is done through the change map menu of the memory debugger (Under File menu). Are you able to see other variables (Not hardware registers) properly?
  • Yes, We can see the other variables but not the ADC values.
    Also, could you please let us know how to check the dead time between DPWM0A and DPWM1A using memory debugger? Which register/variable should we look at?
    Thanks again for your help.
  • Is this the LLC EVM code? What device you compiled the code for? UCD3138A? I will try to reproduce the problem and get back to you.

  • It's the HSFB eval board. ( UCD3138) Can you please let us know how to read the dead time using " Memory debugger" ? 

  • Please read DPWMEV1, DPWMEV2, DPWMEV3, DPWMEV4 and PERIOD of DPWM0Regs via memory debugger.

    Dead_Band1 = (PERIOD - DPWMEV4 ) + DPWMEV1
    Dead_Band2 = DPWMEV3 - DPWMEV2