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.

TPS546D24S: BCX Error for stacking 2 phase

Part Number: TPS546D24S

Tool/software:

i am using TPS546D24S for 2 phase stacking. i have made changes based on the datasheet. i am doing configuration for controller and follower by using PMBUS communication. the configuration for controller and follower for stack config , interleave is as follows 


controller

interleave - 0x0020

stack config - 0x0001

Follower

interleave - 0x0021

stack config - 0x0001

as i read the datasheet it is mentioned that other configuration follower will take from controller. and i have changed the address of follower as well to 0x01. my issue is i am getting bcx error what could be the possible reason any other register i need to configure. Thanks in advance for any help

  • Hi Parth,

    First, check that the follower device has its GOSNS pin connected to BP1V5. This connection makes it a follower. If the GOSNS pin is not connected to BP1V5, it will act as a stack controller.

    Next, make sure the MSEL2 pin programming on the follower device is correct. This programming sets up the INTERLEAVE for stacking, along with STACK_CONFIG, IOUT_OC_WARN_LIMIT, and IOUT_OC_FAULT_LIMIT.

    If you share your schematic, I can review it too.

    Thank you,
    Tomoya

  • Hello sir

    1. Thank you for your response. I have checked that in follower gosns pin is connected to bp1v5. And for configuration of MSEL2 I am not using pin strapping method I am configuring it by pmbus communication protocol. For schematic details i have make MSEL1,MSEL2,ADRSEL,VSEL in controller as float and in follower MSEL1,ADRSEL,VSEL connected to AGND as per the datasheet.
    2. For all configuration I am using pmbus communication. I am writing my desired values in register directly.
    3. For stacking I am configuring STACK_CONFIG, INTERLEAVE in controller and follower as I mentioned earlier in controller INTERLEAVE as 0x0020 and stack_config as 0x0001. And in follower INTERLEAVE as 0x0021 and stack_config as 0x0001(here I am confuse as it to make it as 0x0000)
    4. Sorry I couldn't share schematic as I am trying this on EVM.
    5. I already worked for standalone device by referring this evm and developing my schematic for standalone device for 40A. Now I am trying for 80A 2 phase for that I am trying on EVM. Based on that I will develop schematic.
    6. I have few question regarding this as after making a device follower can
    7. I directly communicate with it by pmbus as it have different address (0x01)?
    8. In bcxclk and bcxdata I am able to see controller trying to communicate with slave by using oscilloscope I can see waveform of 0x01 and there is no response from follower
    9. I can share changes which I have made on evm. 

    When I try to read value directly from follower it is working.i am doubting that it is not recognised as follower.And I am still getting issue of BCX error in controller 

    Thank you for your help.

  • Hi Parth,

    • Thank you for your response. I have checked that in follower gosns pin is connected to bp1v5. And for configuration of MSEL2 I am not using pin strapping method I am configuring it by pmbus communication protocol. For schematic details i have make MSEL1,MSEL2,ADRSEL,VSEL in controller as float and in follower MSEL1,ADRSEL,VSEL connected to AGND as per the datasheet.
    • For all configuration I am using pmbus communication. I am writing my desired values in register directly.

    If this is the case, did you make sure to change the PIN_DETECT_OVERRIDE register to reset to NVM and not reset to the pin-detect value?

    For stacking I am configuring STACK_CONFIG, INTERLEAVE in controller and follower as I mentioned earlier in controller INTERLEAVE as 0x0020 and stack_config as 0x0001. And in follower INTERLEAVE as 0x0021 and stack_config as 0x0001(here I am confuse as it to make it as 0x0000)

    STACK_CONFIG should be 0x0001 for a 2-Phase.

    I directly communicate with it by pmbus as it have different address (0x01)?

    No, all communication for the loop follower is done through the BCX communication between the loop controller and the loop follower. PMBus communication directly to the loop follower will be ignored. 

    I can share changes which I have made on evm. 

    Please share when you are ready.

    Thank you,
    Tomoya

  • Hello sir

    Thanks for your help.

    update on our project is as follows


    I have found a dry solder on 10k resistor which is connected from GOSNS to BP1V5. after solving that BCX communication error went. on BCX_CLK and BCX_DAT i can see communication happening as well.

    for all configuration i am making PIN_DETECT_OVERRIDE register to 0x0000 for taking values from NVM not by pinstraping in both controller and follower.

    i have few doubts regarding stacking are as follows

    1. Is there any other register that i need to program for stacking apart from STACK_CONFIG and INTERLEAVE like SYNC_CONFIG?

    2. Is value of STACK_CONFIG should be same in follower as in controller? in my case 0x0001 in both?

    3. IOUT_OC_FAULT/WARN limit need to set to each device individually before stacking or in only controller is fine?

    here i have set OC_WARN limit as 30A and OC_FAULT limit as 40A in both Controller and follower as well. but while doing load test i am getting OC_WARN error at 30A and OC_FAULT at 38A. i am not able to go beyond 40A. 

    4.Do i need to change the OC_WARN limit and OC_FAULT limit as 70A and 80A respectively only in controller?

  • Hi Parth,

    1. Is there any other register that i need to program for stacking apart from STACK_CONFIG and INTERLEAVE like SYNC_CONFIG?

    INTERLEAVE is Read only in Multi-phase stack. No need to change SYNC_CONFIG. No other register need to be changed. 

    2. Is value of STACK_CONFIG should be same in follower as in controller? in my case 0x0001 in both?

    Yes, 0x0001 for both. 

    3. IOUT_OC_FAULT/WARN limit need to set to each device individually before stacking or in only controller is fine?

    here i have set OC_WARN limit as 30A and OC_FAULT limit as 40A in both Controller and follower as well. but while doing load test i am getting OC_WARN error at 30A and OC_FAULT at 38A. i am not able to go beyond 40A. 

    Most PMBus communication should be directed to all phases by leaving PHASE PMBus command at it's Power On Reset default value of FFh, and it will be divided equally across the number of phases. For example, if you set OC_WARN limit as 30A and OC_FAULT at 40A, the limit will be 15A/phase for OC_WARN and 20A/phase for OC_FAULT. Remember that there is output current overcurrent fault accuracy of -10% to + 20% (see datasheet spec below), so you'll need to set the limits higher to account for this. 

    4.Do i need to change the OC_WARN limit and OC_FAULT limit as 70A and 80A respectively only in controller?

    See above. Use PHASE command default FFh, and this will program both phases. No need to program each phase individually. 

    Thank you,
    Tomoya

  • Hello sir 

    Thank you for your support. All of my issues have been resolved now. 2 phase stacking is working. Once again thank you for your time.