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.

TDA2PXEVM: how do you debug TDA2PX Fusion board with ALP tool and USB2ANY debugger?

Part Number: TDA2PXEVM
Other Parts Discussed in Thread: ALP, USB2ANY

Team, 

My customer is asking how do you debug TDA2PX Fusion board with ALP tool and USB2ANY debugger?

Is there a minimum length that is required for FPD-Lin cable?

What value should register 0xD5 (AEQ MIN-MAX value) in UB960 Deserializer be set to?

Any other registers need to be modified if they are using a 0.5 feet FPD Cable?

Here is the issue, and things they have tried so far:

I have a USB2ANY debugging device, which is used with ALP GUI tool for debugging register values and Margin analysis. The problem is that USB2ANY Explorer.exe (C:\Program Files (x86)\Texas Instruments\USB2ANY Explorer\Bin) application asks me to update the firmware in it to v2.8 but when I open ALP tool, it asks me to reset it 2.7. If I don't upgrade it back to 2.7, then ALP doesn't open. I am testing my fusion board-TDA2PxEVM for finding out the FPD-Link locking conditions when I use shorter FPD coax cables (length: 0.5 feet). The hardware is working perfectly when I try with 16ft FPD-Link cable. I tried uploading the new firmware (v2.7) provided by Vishy in another e2e link as well but it doesn't solve the issue and I am getting UNKNOWN FPD-Link Deserializer in the Device Information tab. 

https://e2e.ti.com/support/interface/f/138/p/783322/2899819?tisearch=e2e-sitesearch&keymatch=%20user:372992#2899819

https://e2e.ti.com/support/interface/f/138/p/747552/2773645?tisearch=e2e-sitesearch&keymatch=%20user:372992#2773645

We appreciate your help! 

Thanks

Viktorija

  • Viktorija,

    We would need to consult our EVM and FPDlink team to be able to help you and your customer. Please give us 2-3 days to get back to you.

    Thanks and Regards,
    Piyali
  • Hi,

    what type of cable are you using?

    what is the observed behavior now? what do you mean by not working?

    Do you mean that when using the short cable the ALP is not recognizing your DES or SER? And once using long cable the ALP is recognizing your devices?

  • Hamzeh, from customer:

    I have been using RG174 Coaxial cable. Here is the link to the cable that we purchased:

    https://www.amazon.com/Fakra-Female-Extension-Neutral-Coding/dp/B01GPFWUAG/ref=sr_1_8?keywords=RF+Coaxial+Cable+Fakra+%22Z%22+Female+to+Fakra+%22Z+female&qid=1551366973&s=electronics&sr=1-8 

     It may not be the ideal cable suggested in the document (such as DACAR 302 or DACAR 462), but it has an impedance of 50 ohms.

    By not working, I mean that when I power on TDA2Px EVM and run my usecase, the serializer and sensor doesn't get detected. I think it has something to do with FPD Not getting locked with its optimum settings for AEQ. I tried playing with different values in register 0xD5 in UB960, and for certain values, the serializer and sensor gets detected, my custom use-case does the bootloading and configuration of the radar sensor, however it loses the FPD-Link lock later and no data passes through the cable. Maybe there has to be some other register setting to be done within UB960 to accommodate the shorter cable length or there is a minimum cable length requirement for FPD-Link data transfer because my use-case works successfully with the 16ft cable (same type and manufacturer as the link above) and the data is getting transferred successfully from sensor to TDA2px with longer cables.

    The ALP is not working with my TDA2PXEVM-Fusion Board irrespective of the cable length. Do you connect the USB2ANY connector to J15 on the fusion board or is there any other I2C Debuger on the boards? The i2c data and clk pin diagram of J15 and USB2ANY connector are not matching. I tried matching the J15's I2C Data and CLK pin as per USB2ANY debugger pin connection, but still the Deserializer is not getting detected. 

    Thanks

    Viktorija

  • Are you using 4G settings or 2G?
    Which ports of the 960 are you using?
    Can you send me the values of the following registers, for all used 960 ports?
    0x4C - 0x7F, and 0xD0 - 0xD5
  • Per customer:

    I am using 2G setting and only CSI Port 0 as output port. Rx Port 0 and Port 1 as receiver input ports. 

    Please find the UB960 Register Settings below:

    /* Reset */

        {0x01, 0x00, 1000}, //Original 0x01

        /* ENABLE SERIAL LINK DATA INTEGRITY ERROR COUNT */

        {0xB9, 0x33, UB960_REG_DELAY_TIME}, //Original 0x18

        /* ENABLE SFILTER with AEQ ADAPTION */

        {0x42, 0x71, UB960_REG_DELAY_TIME},

     

        /* RX0 */

        {0x4c, 0x01, 1000},    /* Port 0 */

        {0x58, 0x5D, UB960_REG_DELAY_TIME},  

        {0xD5, 0xC0, UB960_REG_DELAY_TIME},  /* Set AEQ MIN/MAX widest values */

        {0x5D, 0x30, UB960_REG_DELAY_TIME}, /*Serializer I2C Address*/

        {0x65, (D3_AR1243_PORT_0_SER_ADDR << 1U), UB960_REG_DELAY_TIME}, /*Serializer alias address*/

        {0x5E, 0x50, UB960_REG_DELAY_TIME}, /*I2C-SPI bridge I2C Address*/

        {0x66, (D3_AR1243_PORT_0_SENSOR_ADDR << 1U), UB960_REG_DELAY_TIME}, /*Bridge alias address 

        {0x32, 0x01, UB960_REG_DELAY_TIME}, /*Enable TX port 0*/

        {0x33, 0x03, UB960_REG_DELAY_TIME}, /*Enable Continuous clock mode and CSI output*/

     

        {0xBC, 0x00, UB960_REG_DELAY_TIME}, /*Unknown*/

        {0x6D, 0x6C, UB960_REG_DELAY_TIME}, /*CSI Mode*/

        {0x05, 0x01, UB960_REG_DELAY_TIME}, /*CSI Mode*/ 

        {0x06, 0x00, UB960_REG_DELAY_TIME}, /*CSI Mode*/ 

        {0x72, 0x00, UB960_REG_DELAY_TIME}, /*VC Map - All to 0*/

        {0x7C, 0x20, UB960_REG_DELAY_TIME}, /*Line Valid active high, Frame Valid active high*/

        {0xD5, 0xF3, UB960_REG_DELAY_TIME}, /*Auto Attenuation*/ 

     

         /* RX1 */

        {0x4c, 0x12, 1000},    /* Port 1 */

        {0x58, 0x5D, UB960_REG_DELAY_TIME}, 

        {0xD5, 0xC0, UB960_REG_DELAY_TIME},  /* Set AEQ MIN/MAX widest values */

        {0x5D, 0x30, UB960_REG_DELAY_TIME}, /*Serializer I2C Address*/

        {0x65, (D3_AR1243_PORT_1_SER_ADDR << 1U), UB960_REG_DELAY_TIME}, /*Serializer alias address*/

        {0x5E, 0x50, UB960_REG_DELAY_TIME}, /*I2C-SPI bridge I2C Address*/

        {0x66, (D3_AR1243_PORT_1_SENSOR_ADDR << 1U), UB960_REG_DELAY_TIME}, /*Bridge alias address*/

        {0x32, 0x01, UB960_REG_DELAY_TIME}, /*Enable TX port 0*/

        {0x33, 0x03, UB960_REG_DELAY_TIME}, /*Enable Continuous clock mode and CSI output*/

     

        {0xBC, 0x00, UB960_REG_DELAY_TIME}, /*Unknown*/

        {0x6D, 0x6C, UB960_REG_DELAY_TIME}, /*CSI Mode*/

        {0x05, 0x01, UB960_REG_DELAY_TIME}, /*CSI Mode*/ 

        {0x06, 0x00, UB960_REG_DELAY_TIME}, /*CSI Mode*/ 

        {0x72, 0x55, UB960_REG_DELAY_TIME}, /*VC Map - All to 0*/

        {0x7C, 0x20, UB960_REG_DELAY_TIME}, /*Line Valid active high, Frame Valid active high*/ 

        {0xD5, 0xF3, UB960_REG_DELAY_TIME}, /*Auto Attenuation*/ 

     

    /* I varied 0xD5 register values here. Tried with values 0x72, 0x82, 0x62 instead of 0xF3. The FPD-Locked intialized intially when I used lower AEQ MAX value but later it went out of sync */

     

        {0x0D, 0xB0, UB960_REG_DELAY_TIME}, /*I/O to 3V3  

        {0x0C, 0x03, UB960_REG_DELAY_TIME}, /*Enable All ports*/ 

        {0x20, 0x00, UB960_REG_DELAY_TIME}, /*Forwarding and using CSIport 0*/

     

        /*Sets GPIOS*/

        {0x0F, 0xC0, UB960_REG_DELAY_TIME}, 

        {0x14, 0x23, UB960_REG_DELAY_TIME},

        {0x15, 0x27, UB960_REG_DELAY_TIME},

        {0xBE, 0x30, UB960_REG_DELAY_TIME}, 

     

        {0x59, 0x03, UB960_REG_DELAY_TIME},

        {0x21, 0x01, UB960_REG_DELAY_TIME}, /* for Round Robin/Best Effort Forwarding */

        {0x20, 0xC0, UB960_REG_DELAY_TIME}, /* forwarding RX Port0~3 to CSI2 Port0 */ 

     

    The other registers use the default settings in the UB960.

  • Viktorija,

    you did not tell me which Serializer are you using.

    Also please tell them to use a longer cable of minimum 1.2 - 1.5 feet. Very short cable (0.5 feet) is too short.
  • Customer is currently using UB953 Serializer and UB960 Deserializer.
  • Viktorija,

    here is my feedback after reviewing the register dumps.

    0xB9 Link error count ==> The control bits in DIGITAL_DEBUG_2 register can be used to disable error conditions individually.

    SER ID and SER Alias ID are to be defined in reg 0x5B and 0x5C, not in reg 0x5D and 0x65. In these registers you need to define the Sensor ID and Alias.

    Enabling CSI output (0x33) and Port Forwarding (0x20) must be written at the very end, i.e. after initializing the sensor.
    These are shared registers, you do not need to write them seperately for each port.

    Any reason for changing Frame Valid minimum time (0xBC) to 0?

    If using short cable < 2 meter, please change value of 0xD5 to 0x80 for both ports.

    Note: only registers 0x4C - 0x7F and 0xD0-0xDF are port specific and need to be configured seperately for each port. All other registers are shared and need to be configured only once.

  • Hamzeh, from customer:
    0xB9 Link error count ==> The control bits in DIGITAL_DEBUG_2 register can be used to disable error conditions individually.
    Do you want me to disable any error condition? In the datasheet it mentions that for 0xB9 register, if I disable it, the FPD-Link loses lock after first error count. Wouldn't that mean that there is a higher chance of FPD-Lock going out with shorter cables

    SER ID and SER Alias ID are to be defined in reg 0x5B and 0x5C, not in reg 0x5D and 0x65. In these registers you need to define the Sensor ID and Alias
    I had the same question before and I had raised this in an e2e post. However, I realized that in the vision SDK, I think SER ID and SER Alias ID are taken care by the 0x5D and 0x65 registers in the code, so it is not necessary to define them in 0x5B and 0x5C. I was able to run my use-case with and without defining in 0x5B and 0x5C.

    Any reason for changing Frame Valid minimum time (0xBC) to 0?
    This was pre-defined in bsputils_960.c source file in the Vision SDK 3.6. I didn't change this value. So I do not know why they use it as 0. Please let me know if you find out the answer from the TDA team.

    Thank you very much for your help. I will try with 0x80 in D5 registers with shorter cables. Hoping to get it in a week before I can test it out. Could you also help me with using ALP tool on the fusion board?

    Thanks
    Viktorija
  • Viktorija,

    I do not have the Fusion board to tell you what to connect where. But in generally USB2ANY requires just three pins to be connected; SCL, SDA and GND pins. These should be connected to any I2C pins on the board and that should work.

    See attached picture for USB2ANY

  • Hamzeh,
    Customer tried debugging it with just those three pins in the past with USB2ANY, but it didn't work.
    He is working on another issue this week, and won't be able to provide additional feedback this week. We can close this post for now, and re-open when he is ready.
    Thanks
    Viktorija