TDA4VE-Q1: No USB cable, no power on

Part Number: TDA4VE-Q1

Tool/software:

We upgraded from 805 to 902 and found that it could not be turned on without the USB cable. The problem was the sbl. It could be turned on after the USB was connected.

We have ruled out that it has nothing to do with USB power supply

We have ruled out that the USB power supply has nothing to do with it. I don't know if the UART woke up the machine (the machine may be in sleep mode, but when the USB cable is not connected at this time, the current is about 0.48A, so it does not feel like it is in sleep mode)

I took a cable that cannot be recognized by the computer (it should be a cable with charging function only, and it should be a cable without D+/D-). It can also turn on the machine when connected. In addition, I turned on the machine by connecting the USB cable. When I unplugged the machine, the current dropped by about half. When I connected it again, the print on the machine seemed to be turning on.

  • I assume this is a customer design using TDA4VE-Q1, not one of TI's EVMs?  If you revert to 805 does the problem go away?

    You mentioned 'ruled out that is has nothing to do with USB power supply'?  How did you come to this conclusion? 

    Can you provide a schematic of your board?  What bootmode are you using?

  • I assume this is a customer design using TDA4VE-Q1, not one of TI's EVMs?  If you revert to 805 does the problem go away?

    The board we designed is based on tda4ve, not ti's evm board. If you replace sbl with sdk805, you can boot it without connecting the usb cable.

    You mentioned 'ruled out that is has nothing to do with USB power supply'?  How did you come to this conclusion? 

    Our hardware replied that 805 may not have this problem

    Can you provide a schematic of your board?  What bootmode are you using?

    It seems that the internal schematic cannot be provided, but the relevant pictures can be screenshot. The mode is booted from QSPI NAND Flash.
  • At what stage of boot it is getting stuck, is SBL loaded and it is unable to get the TIFS?

  • When I connected the USB cable, it started printing.

    When I connected the USB cable, it started to print, just like when I turned on the computer, if I didn't connect it, there would be no printing.

    Our hardware says that our crystal is 25M, which is different from the official one. How should we set it?

  • Since using different crystal frequency, need to make sure MCU_BOOTMODE bits are set correctly.  For 25Mhz, MCU_BOOTMODE[2:0] should be '011'.  Are these pins used for only MCU_BOOTMODE selection or also used for other functions?

  • These should be the dip switches for the startup mode. We use the same dip switch method as the 805 SDK (only used for dip switch judgment during startup). There should be no need to set registers in the software.

  • Please tell me what solution is there to solve this problem now?

  • As far as i understand the issue in 9.2 sdk is if you plugged the USB you are able to boot but if you dont do that, you are not even getting the SBL logs.

    ROM remain the constant, so my next guess is, it might be failing somewhere inside the SBL even before SBL version print statement.

    Have you tried connecting to the R5 core and see what exactly it is executing?

    Regards
    Diwakar

  • If we try to connect the emulator, we must power on the emulator, but the jtag power supply is together with the usb, so when debugging is needed, they are powered on together and it starts up directly. This should be a problem?

  • I am not able to put your images together to understand the overall power connections.  But yes - from the failure symptoms, it does appear there is a power-related issue.

  • pdk/proj6788_pdk/packages/ti/boot/sbl/board/k3/sbl_main.c

    main

    int main()
    {
    IO pull code
    }

    cai pull the IO port at the beginning of the function to confirm whether

  • I want to control the high and low levels of WKUP_GPIO0_11 at the beginning of the function main in the sbl_main.c file. I measured the waveform and found no effect.Is there something wrong with our code?

    int main()
    {
    	   unsigned int regval = 0;
             *(volatile unsigned int*)(0x4301C0EC) = 0x00060007;
            Osal_delay(5);
            regval = *(volatile unsigned int*)(0x42110010);
            regval &= (~(1u<<11));
            *(volatile unsigned int*)(0x42110010) = regval;
    
            regval = *(volatile unsigned int*)(0x42110018);
            regval |= (1<<11);
    
            Osal_delay(1);
            regval = *(volatile unsigned int*)(0x42110018);
            regval &= (~(1<<11));