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.

CCS/UCD3138A: No pmbus devices responded to a DEVICE_ID request

Part Number: UCD3138A

Tool/software: Code Composer Studio

Hi,

    I built a 50kHz interrupt, and want to sample ADC value and calculate PLL function in the interrupt. I tested the interrupt code, ADC sampling code, and PLL code separately, and all of them are working fine. Then, I tried to put the ADC sampling and PLL code into the interrupt code, complie was successful, but I can not download the code through fusion GUI successfully. Always popped up the error "No pmbus devices responded to a DEVICE_ID request" as shown below.

The initialization code and interrupt code are as below:

If I change the interrupt code by delete either "poll_adc()" or "pll1_isr()" as below, downloading code to chip can be successful.

    

What's the problem? I have been stucked by this issue for more than 2 hours.

The other thing is, I saw from the video that if I want to debug code by using CCS debugger correctly, I need to download code through fusion GUI first. Then, load symbol in CCS to debug. I have tried to debug through CCS debugger several times, and it works better than memory debugger. But in this case, I can not download the code successfully, so I guess I can not use CCS debugger either. Is there any way to debug UCD3138A by using CCS only?

Thank you in advance!

  • I figured it out! There is still something wrong with my PLL code and data overflowed. After I fixed this error, I can download the code through fusion GUI successfully.

  • Hello, Weijing,

    Can you post the code pll1_isr()? is it your test coe?
    About CCS debug, you need JTAG emulator to connect with CCS and debug the firm. Memory debugger still powerful tool to recommend.

    Regards,
    Sean
  • Yes, it is my test code. I tried to calculate the theta and limit it within 0~2pi by using the following code:

    if(theta >= TWO_PI) theta -= TWO_PI;
    if(theta < 0) theta += TWO_PI;

    After that the code will look up table to get the value of sin(theta) and cos(theta).

    Apparently my code has other issue that the calculated theta is much larger than I thought. Theta is still larger than 2pi or smaller than 0 after doing the substraction or addition with 2pi. So that the pointer of table which is related with theta is out of range. But, if I simply change these if statements to while statements to truly limit theta within 0~2pi, the PMbus error will not accur.