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.

BOOSTXL-TPS650861: I2C communication issue

Part Number: BOOSTXL-TPS650861
Other Parts Discussed in Thread: TPS650861, IPG-UI

Hi ,

We have received the EVAL BOARD part#BOOSTXL-TPS650861. While testing we are facing issues in accessing the I2C port. Sometimes the device is detected but fails after reading one register values. And currently device is not responding at all.

Kindly help.

Regards,
Ashish Kumar Pandey
Research Engineer
TWDM-PON H/W
Centre for Development of Telematics
New Delhi 110030

  • Hello Ashish,

    The assigned expert will get back to you soon. 

    Thanks!

    BR,

    Ishtiaque 

  • Hi Ashish,

    For communicating with the BOOSTXL device, we usually recommend using the MSP-EXP430F5529LP Development KitThe BOOSTXL-TPS650861 EVM User’s Guide describes how to set up the development kit and use it to communicate with the BOOSTXL. Are you currently using this device?

    After you follow all the steps in the user's guide you should be able to connect the system to your computer with a USB-A to USB-micro B cable.

    Please describe your set-up in more detail. If you are not using the development kit launch pad you will need to take steps to ensure that the BOOSTXL device is receiving proper input power.

    Regards,

    James

  • Hi James,

     MSP-EXP430F5529LP Development Kit isn't available with us.

    We are using another I2C master device to communicate with TPS650861.The I2C master can't detect slave address 5E .There is no other slave device(there are only 2 devices attached to bus) with same 5E address on I2C bus.
    Also we  debugged if there is any problem with bus.The bus is ok as I2C master can detect other devices with different slave addresses like 0x09,0x19,etc

    BOOSTXL device is receiving proper input power. i.e. 5V,3V3 and GND. Also 7V is generated on board. As already discussed the device is detected(sometimes) but fails after reading one register value and currently device is not responding at all.

    Regards,

    Ashish

  • Hi Ashish,

    If there are two slave devices with the same 5E address on the I2C bus, the system may not be able to communicate properly. Can you try disconnecting the second device and leaving the BOOSTXL connected by itself? I believe all slave devices connected to the same I2C bus need a unique address for system to function properly.

    Regards,

    James

  • Hi James,

    Thanks for the reply.

    As per your suggestion, we have disconnected second device. Still I2C master isn't able to detect the slave 5E.

    Please help.

    Regards,

    Ashish

  • Hi Ashish,

    In order to evaluate further I will need a PDF copy of your schematic. I would like to see how your master device is connecting to the BOOSTXL EVM.

    Can you share a scope capture of VSYS, LDO5P0 (5V pin output), LDO3P3 (3V3 pin output), and LDOA1 all in one picture?

    Can you share a scope capture of the SCL and SDA pins in the same picture when you try to read the registers? Once the BOOSTXL device is powered on and in a stable state, the SCL and SDA lines should be sitting at a high signal level. The data transfer is started when the SDA line is pulled low.

    Regards,

    James

  • Hi James,

    We tried the communication using another master device and we are able to access the registers.

    Thanks for the support.

    Regards,

    Ashish

  • Hi James,

    We are able access the device TPS650861 via I2C and trying to set BUCK4 output voltage as 0.9V.

    We have written below values to the registers : 

    1) BUCK4VID address: 94h value : 28h

    2) BUCK4CTRL address: 25h, value: 0dh

    We are probing via multimeter at J6 pin3 Still we are not getting 0.9V. 

    Kindly provide your suggestions.

    Please see the below log: 

    Regards,
    Jainendra Bahadur
    Senior Research Engineer
    TWDM-PON H/W
    Centre for Development of Telematics
    New Delhi 110030

  • Hi Jainendra,

    With the default TPS650861 settings, all rails except VTTLDO are enabled by the CTL1 pin (unless they are force disabled). Pulling CTL1 high should allow BUCK4 to enable and output the correct voltage. Have you flipped the CTL1 switch to the OFF position? (The CTLx signals for the BOOSTXL device are pulled high when the switches are flipped to the OFF position). 

    There is also a way to force BUCK4 to turn on using I2C. You can use the I2C_RAIL_EN register (R = 0xA0) to turn on BUCK4 regardless of any CTLx input signal. Check to see if you get the correct output after forcing BUCK4 to turn on.

    Regards,

    James

  • Hello James,

    Thanks for your feedback. I have some queries as mentioned below below :

    1) Setting CLT1 pin High -> does not enable BUCK4;  FYI: BUCK4 is enabled while we have used force BUCK4 Turn on via I2C as suggested by you.

    2) Does the force turn on affect the device functionality in the long run?

    3)  SWB2 is not providing 1.8V after setting register address 9Fh value: 80h

    4) We require the below voltage setting in mentioned order : 

    Sequence Outputs  Voltage(V)
    1

    BUCK4

    0.9
    2

    BUCK5

    1.8
    3

    BUCK6

    1.2
    4 BUCK2 0.85
    5

    SWB1

    1.8
    6 SWB2 1.8
    7

    BUCK3

    1.2
    8

    LOAD1

    2.5
    9 BUCK1 3.3

    I request you to please provide all the registers with desired value to be written.

    Regards,

    Jainendra 

  • Hi Jainendra,

    Take a look at our OTP Generator if you would like to set up custom programming settings for the TPS650861. With this document, you can choose the settings you want for each rail and create your own sequencing (the "Overview" tab will even show you the binary value needed for specific output voltage values).

    On the "Script Generator" tab, you can see a list of the required register values that match your settings. You can write these values into your registers in order to implement your custom program.

    For more information on each section of the OTP Generator, check out the TPS65086100 Non-Volatile Memory Programming GuideThis guide will go through and describe each section of the OTP Generator and how to use it. I highly recommend this document since it will explain each part of of the TPS650861 programming process.

    Section 4.5 in the programming guide explains how to use the raw commands from the script generator without access to IPG-UI (this helps since you are using a different system to communicate with the PMIC).

    BUCK4 and SW2 are not turning on from CTL1 or from register changes because, by default, they are force disabled. Below is a picture from the OTP Generator that shows the TPS650861 default settings before programming. As long as "Force disable by default?" is set to "Yes" for all rails, they will not turn on. The only way to turn on a rail that is force disabled is to manually change its disable bit from 0 -> 1 through I2C, and then enable it with the I2C_RAIL_ENx registers.

    Regards,

    James

  • Hello James,

    Thanks for your valuable suggestions.

    We are developing a prototype design using the PMIC. In our design we have an I2C master via which we want to control all the sequencing as described in the previous mail.

    The OTP generator sheet provided by you does not specify the normal programming mode settings. We need to write a set of values into the register after each time the board powers up. Kindly specify the registers and values to be written.  As we do not want to use CLTx and PGx pins to provide sequencing. We will enable each rail one by one via I2C. 

    How to enable SWB1 and SWB2 using I2C command ?

    Regards,

    Jainendra 

  • Hi Jainendra,

    Information on all the relevant registers can be found in the TPS650861 datasheet.

    Section 5.11 shows all the 0x5E address registers with their names and purpose. Starting in Section 5.11.2 you can find more detailed descriptions of each bit field and the different options available to you.

    Section 5.12 shows all the 0x38 address registers with their names and purpose. Section 5.12.2 is the beginning of the details on the bit fields for these registers.

    Section 5.4 has two tables that show the bit values that control the BUCK outputs. The two tables are separated by step size setting (10mV vs 25mV). This step size setting is handled in the 0x38 addressed registers.

    Section 5.5.2 also has two tables that describe the bit values needed for setting LDO output voltages.

    SWB1 and SWB2 can also be enabled manually using the I2C_RAIL_EN register (0xA1).

    Regards,

    James

  • Hello James,

    Thanks for your feedback.

    We have written 0x40 at address 0xa0 of device 0x5e to enable SWA1. We have checked the jumper J14 is having connection to PVINSWA1, voltage is 3.3V on both sides of jumper.
    We are not getting any output voltage at SWA1(J6 pin4)
     
    Kindly suggest.
     
    Regards,
    Jainendra 
  • Hi Jainendra,

    The SWVTT_DIS register (R = 0x9F) can be set to a value of 0xF0 to ensure that the load switches and the VTT LDO are not disabled. 

    NOTE: You will need to make sure that the load switches are set for the correct PGOOD threshold or you will trigger a power fault and the PMIC will reset. If you want your load switches to indicate power good at 3.3V you will need to access the 0x38 addressed registers and do the following:

    • Set register 0x1A to a value of 0x63
    • Set register 0x23 to a value of 0xE3
    • Set register 0x26 to a value of 0xE3

    Once this is done you can enable the load switches using the I2C_RAIL_ENx registers and you should not trigger a power fault.

    Even if you are programming the PMIC using a custom set-up, I would recommend downloading the IPG-UI software so that you can look at the register map for the TPS650861 device. The register map has descriptions of each register and bit field. Some of the descriptions will tell you what conditions need to be met for the settings to work. This is what the software shows under the SWA1 enable bit field:

    If you decide to install IPG-UI you will need to run this additional installation program to add the TPS650861 device file to you device library. This file will allow you to look at the register map.

    Regards,

    James

  • Hello James,

    Thanks for your suggestion. 

    We have below queries regarding the OTP programming-

    1) while OTP programming we have to access the 0x38 register section. Can we write only the register required .i.e. 0x1A or we have to write all the registers listed under the 0x38 with desired values?

    2) suppose we write only on the 0x1A register two times,Will we be able to write on other registers two times as I haven't accessed them.

    Please clarify.

    Regards,

    Jainendra 

  • Hi Jainendra,

    When you program the TPS650861 by burning the OTP, all the registers are burned with their current values. It is not possible to burn only 1 register at a time. The device has two OTP memory banks which allows for two different OTP configurations but after you burn the second bank you have no other spaces for alternate settings.

    This is different than simply writing to a register. Any of the programmable registers can be written as many times as you want, but they can only be burned into OTP memory twice. You cannot burn only one register. The programming must be done for all registers at once.

    Regards,

    James