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.

TPS546A24A: TPS546A24A

Part Number: TPS546A24A
Other Parts Discussed in Thread: TPSM846C23DEVM-807

Hi,

I have designed a board using TPS546A24ARVFR device. My intention is to program the device via Linux OS using USB to I2C/SMBus adapter. The two adapters we used are from Total Phase USB to I2C and other one is Silicon Labs USB to I2C adapter).When we try to program the device via PMBus, It's not getting detected. Could you please check the below query and help me to bring up the board

My Queries are
1) Since I am using Linux to detect slave address, is there any driver that needs to be installed for Pmbus, what is the command to detect i2c slave (if not the general one which is used)

2) Is there any power sequence or procedure to be followed for PMBUS programming? (connected wires from the adapter are SCL, SDA, and GND Pin using an external GPIO headers)

3) The IC seems to be working as I get 3.3V at the output ( as per hardware pin setting VSEL resistor ), but it's not getting detected and not able to access via PMbus.

Please find the snip of the circuit schematics for your reference.

 

With regards,

M Karthik

  • Hi Karthik,

    The most convenient way for us to assist you is if you're using our Fusion GUI, which you can install from the link provided below:

    https://software-dl.ti.com/analog/analog_public_sw/fusion/TI-Fusion-Digital-Power-Designer-7.10.1.zip

    We also have our USB-TO-GPIO adaptor, but the adaptor you mentioned might work as well. 

    https://www.ti.com/tool/USB-TO-GPIO2

    Regarding the issue you're facing, it might be due to using an I2CDetect, which attempts an Address + Rd bit at every address on the bus. This is an invalid transaction in PMBus. If you think this is the case, you can try using the -q (Quick Write) or -r (Read Byte) option to the detect the TPS546x24y family of devices.

    For configuring the device with PMBus, please adjust the input supply to 3.3VDC to avoid any converter activity. 

    Thank you,
    Tomoya

  • Hi Tomoya,

    I am not getting this statement 'For configuring the device with PMBus, please adjust the input supply to 3.3VDC to avoid any converter activity.' 
    Since we are using 5V input supply to convert down the voltage to 3.3V which is later used for configuration of PMBUS lines. Does this mean the converted voltage or while converting the voltage, the PMBUS pin will not be active?
    Also, can you share the commands -q for Quick Write, is it the same sudo i2cdetect -y -q <device_address> or is it different for PMBUS? 

    With Regards,
    M Karthik

  • Hi Karthik,

    In general, we want to make sure the output is turned off during configuration. I recommended 3.3V because, at 3.3V, the PMBus will be active, but the output voltage conversion is disabled. However, other ways to turn off conversion include bringing the EN/UVLO pin below its UVLO threshold. 

    Does this mean the converted voltage or while converting the voltage, the PMBUS pin will not be active?

    PMBus will be active if the input supply (or AVIN) is above its UVLO (2.5 V typical), regardless of whether the converter output is turned on or off.

    However, not all registers allow On-The-Fly updates; some PMBus configurations will be blocked if Conversion is Enabled. That is why we don't recommend configuration when the converter is enabled. Here is an example:

    Also, can you share the commands -q for Quick Write, is it the same sudo i2cdetect -y -q <device_address> or is it different for PMBUS? 

    The default setting for I2C scan is to send I2C packet with a device's read address (7-bit Address + Read) to each possible device address, and return the addresses that devices acknowledged in order to "Discover" devices on the bus. However, PMBus considers a transaction starting with a Read Address invalid. Using -q and -r works around this by sending Address + Write bit. 

    https://linux.die.net/man/8/i2cdetect

  • Hi Tomoya,

    As you suggested, we removed the supply to EN/UVLO pin and connected it to ground so as the converter function to be stopped. We are using 5V power supply so it will enough for AVIN and above UVLO for the PMBus to be active.
    But still there is no address detection on the terminal. We also tried with 3V3 supply with voltage conversion disabled, but there was't any detection on terminal
    To confirm the adapter working condition, we checked CP2112EK with TPSM846C23DEVM-807 where it worked without any errors, registers were able to be detected via master address and desired output voltages were able to be produced using commands in terminal.

    Here is a snip from logic analyzer for the detection of slave address in TPS546A24 IC

    Regards,
    M Karthik

  • Hi Karthik,

    I spoke with a team and it turns out that the issue you are experiencing is a known bug in the TPS546x24y series of parts. When the device receives its address plus the read bit, it NACKs instead of ACKing and reporting a CML warning as per the PMBus specification.

    To resolve this issue, please ensure that you are using the correct read protocol. The TPS54624A does not respond to direct read transactions with a 7-bit address plus the read bit (as you have in your snip). Instead, it requires all transactions to start with the 7-bit address followed by a write bit and then command code.

    I hope this clears up any confusion. Let me know if you have any further questions.

    Thank you,
    Tomoya

  • Hi Tomoya,

    Please enlighten on what the correct read protocol here is according to the one we are using, i.e. using ' i2cdetect -y -r <i2cbus> ' command.
    Also, as you mentioned,

    1. Is the CML warning present in the snip that i provided earlier?

    it NACKs instead of ACKing and reporting a CML warning as per the PMBus specification

    2. What is the transactions that is required here, and how to proceed with initiating these transactions within the terminal, does this mean before carrying i2cdetect command, there is requirement for executing any other commands?

    it requires all transactions to start with the 7-bit address followed by a write bit and then command code

    Regards,
    M Karthik

  • Hi Karthik,

    What you need to do is change the bit circled in RED to 0. This should fix your problem. 

    Thank you,
    Tomoya

  • Hi Tomoya,

    The circled bit is of clock signal,

    1) Do I need to make a clock signal 0 or the data signal?

    2) Also, I used the command ' i2cget -y 7 0x24 w ' to penetrate directly to the slave to read out but it failed.

    3) For the above solution, can I use 'i2cset -y 7 0x24 0x ...A....  0x ...B... ' Here I am unsure what should be A and what should be value of B (0x00 assuming to what you have suggested above)

    Regards,
    M Karthik

  • Hi Karthik,

    It is the data signal that you need to change, not the clock signal. The clock signal should be 1, 0, 1, 0, 1, 0, etc.

    Please refer to the SMBus spec for the Read protocol:

    If you have any further question, please reach out to me directly at t-ide@ti.com.

    Thank you,
    Tomoya

  • Hi Karthik,

    Closing this thread due to no response. Please reopen if further support is needed.

    Thank you,
    Tomoya