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.

TPS929240-Q1: Programming problem consultation

Part Number: TPS929240-Q1
Other Parts Discussed in Thread: USB2ANY

I’m having some problems to program TPS929240 by using the REF pin.

Customer board which I face the issue from has a particular layout:

3 (or more) devices on the same Flexwire bus and all of them have ADDR0=GND, ADDR1=GND, ADDR2=GND.

When the devices are factory shipped INT_ADDR=0 by default so all of them have the same address which is 0.

 

The effect of pulling REF to 5V is to ignore ADDR0, ADDR1 and ADDR2 and DEV_ADDR value in EEPROM so that the targeted address becomes 0.

 

I follow this flow when programming:

 

In the test I did I got the failure just after Write 1h to EEPMODE.

The reason is that after writing this register I check its value by reading back its value to confirm that the device is really in EEPMODE.

Being more than 3 devices with address 0 I think there is a collision and the bit is never seen at the desired value and I go to timeout.

If I skip this stage it goes over and I get a failure just after Keep supply stable and wait 200 ms.

I think that the reason is that after 200 ms I read FLAG_STATUS to check FLAG_PROGDONE.

Also in this case being more than 3 devices with address 0 I think there is a collision and the bit is never seen at the desired value and I go to timeout.

Can you confirm that with this particular board layout I have to skip those two checks?

 

 

Furthermore I tried to program one of the target with USB2Any and the TI GUI and after having programmed it doesn’t answer to the address it was supposed to be programmed and if I try to program again with my tool I always get a CRC error in device response.

I get STATUS=0x00 and CRC=0x00 from device (I don’t know which one) with address 0.

 

Regards,

  • 您好,

    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 您好

    Please don't set same address for devices on the same bus, as datasheet mentioned.

  • First of all, I'm deeply grateful for your reply.

    The PCB Layout of this product has been solidified, and customers can program it using their own tools.

    The suggestions given by the customer are as follows:

    Since multiple TPS240 with the same initial address [000], the feedback of STATUS/CRC from TPS240s may cause communication error.

    So could you try the following procedure for PCB 1_11 TPS240 programming.

     

    1. Go into EEPROM programming mode then only change the address register [85h] to target address.
      -> Ignore check the STATUS and CRC, because it may error/conflict by multiple TPS240’s feedback.
    2. Go into EEPROM programming mode, and load full EEPROM data to target TPS240 device.
      -> Check the STATUS and CRC.
    3. Read back the target TPS240 EEPROM to check correctness.                        

    May I ask if these suggestions are feasible?

    Thank you very much for your support.

  • 您好

    If the address is changed, then only the device with corresponding address replies. I'm ok with it.