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.

LM5056A: LM5056A

Part Number: LM5056A
Other Parts Discussed in Thread: PCA9306, LM5056EVM

Hi There.

I have designed an Energy monitor board using the LM5056. Current on my board there is 8 LM5056A, and STM32F103C8 controller and a PCA9306 I2C level Translator from NXP.

For the 8 devices I have configured address 0x40 to 0x47 and the  SDAI and SDAO are connected together. 

Problem.

the problem I currently have is that none of the device is acknowledging anything I send on the bus.

My is structured as follow ADDRESS(7BIT+W\R)->COMMAND->DATA

The timing diagram in the datasheet is not helping much so I would like to know if I should expect and ACK after sending the Address Byte or I should not.

Currently I am expecting and ACK and therefore I'm getting and ERROR report from the controller cause i'm not getting one.

My circuit is based on the LM5056EVM schematic.

Kind Regards

  • Hello Pual,

    Thanks for considering to use Texas Instruments. I would expect the device to pull the data line low to acknowledge after you send the address. Is your VIN, VIN_K,SENSE, and OUT pins at 10V or greater? If so, could you provide me with a scope shot of your I2C transmission?

    Best regards,
    Patrick Simmons
  • Thanks for the input. I used the I2Cmem function that does not seat and wait for a ACK. thanks a lot you reply. I had 12V on Vin the all time but I could have been caught in a loop cause I didn't realised it was a requirement.

    Now I have a new Problem. 

    How do I calculate the coefficients m b and R for a 12V, 24V and 48V with a 4mR sense register when CL = VDD

    Table 40 in the datasheet say 14985 x RS which will go over the allowed range. 

    I can read voltage well but the current reading is 0x010. 

    I need some guidance to interpret the current reading properly 

    Kind Regards

    Paul

  • Hello Paul,

    For reading the current you have two options depending upon the accuracy you want to achieve. You can proceed with the default values used in table 39 or take measurements and calibrate. If you proceed with table 39, then you will need to make some adjustments to m and R. If your m is larger than 32767 divide by an order of 10 until m is less than 32767. Alternatively multiply your m by an order of 10 to get the largest value less than 32767. To adjust R add the order of 10 you divided by or subtract the order of 10 you multiplied by. For instance if we evaluate MFR_READ_IIN for Rs = 4mohm, m=4*14985*4= 59940>32767. Divide by 10^1 to get m = 5994. Then R = -2+1=-1.

    If you have the ability to calibrate and need better accuracy, you will need to perform the steps outlined in the section "Determining Telemetry Coefficients Empirically with Linear Fit". This section states that you will need to collect at least two measurements with external voltmeter hooked to kelvin connections at the sense pins. While probing the sense pins, you read the current register. With data collected from at least two current levels you can derive the slope and y-intercept coefficients.