Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TDA4VM USB boot using DFU

Other Parts Discussed in Thread: TDA4VM

Hi TI support team 

As I know the USB id used for OTG function as switching between host and device/slave mode,

So I add 10K PD for USB0_ID as TDA4VM USB host mode for default because I don’t have usb id pin from usb connector.

But If I want to use TDA4VM DFU boot feature:

  1. Can I need change USB0_ID status to slave mode for default?
  2. The USB0_ID signal is open for slave mode?
  3. Can I add PU from external resistor ? but DM mention should never be connected to any external voltage source.
  4. Can I need use GPIO to control USB0_ID status ? or only use PD resistor or open for USB0_ID pin. 

Thanks

Yutai

  • Hi Yutai,

    Yes, USB ID pin is required for the OTG mode and to switch between the host and the device mode of operation based on the type of cable connected to the the USB port. But this mostly used by the Linux kernel driver and not supported at the boot level.

    Is this a custom board design? Can you detail further on where you added the 10K PD for USB0_ID?  Can you share the schematic showing the change? This info will help us understand your issue and answer your queries.

    For USB DFU boot, the USB_ID pin does not play any role. We just need to make sure that the SYSBOOT is correctly set for USB DFU boot.

    regards,

    Praveen

  • Hi Praveen

    Thanks for your comments. Yes, it is custom board design not TI EVM.

    Does DFU boot don't need TDA4VM in USB device mode ? as my design I directly add 10K PD on TDA4VM Pin AC6 (USB0_ID).

    From datasheet: 

    USB0_ID: L => HOST mode

    USB0_ID: Open => Device mode

    So my quesiton is that if  I config TDA4VM to USB host mode, does it can also use from USB DFU to booting as you mention USB_ID pin dont play any role for DFU.

    Really ?

    Thanks

    Yutai

  • Hi Yutai,

    Yes, for the the DFU boot, it is required for TDA4VM to be in USB device mode.

    But for the TDA4VM USB controller to operate in the host or device mode, USB0_ID pin does not play any role. Instead it is the USB0_VBUS pin  is of importance. For the the device mode, it is expected that the external supplied 5V on the VBUS line of USB port. Similarly for HOST mode, the the VBUS pin on the USB port is expected to have the 5V.

    ID pin is used for OTG/DRD support only.

    Hope this clarifies your query. Suggest to read up more on the ID and VBUS pin role for better understanding.

    regards,

    Praveen

  • Hi Praveen

    When we use DFU boot it need TDA4VM is device/slave mode. 

    => That means the USB_ID pin need open from HW side; the TDA4VM is USB device/slave mode to run ROM code for DFU boot.

    => That means if the USB_ID is pull down from or low from HW side; theTDA4VM is HOST mode, in this case we can't use DFU boot. 

    Correct?

    Thanks

    Yutai

  • Hi Yutai,

    I am not sure if I understand your context of asking this query.

    As mentioned, for TDA4VM  to do the DFU boot, the requirement is to have the the remove device (ex: HOST PC) connect to it TDA4VM 's USB port via a cable to provide the 5V on the VBUS line.  ID pin is don't-care.

    Can you share you schematics?

    regards,

    Praveen

  • Hi Yutai,

    Just to reword what Praveen already said. Because the USB DFU (Device firmware upgrade) requires TDA4 to be in USB Device mode, ROM will configure the controller in always-Device mode unconditionally (only 5-V is required on VBUS). ROM expects this USB port to be either Device, or OTG on the PCB (B-connector or OTG connector).

    It is contrary to the USB host boot where ROM boots from a USB flash drive.  ROM expects the port is a host (A-connector or OTG) on the PCB and sets the controller in always-host mode. Note that flash drive mode is currently not supported. I only mention it for clarity.

    Of course, if in your design (and in the OS), the USB port is always-host or always-device, you need to pull the ID accordingly, and if port is OTG, to route ID to ID pin of the connector. As Praveen said, during DFU boot this is not 100% required and you may or may not pull the ID for device mode.

    I hope I did not introduce more confusion.

    Regards,

    Stan

  • Hi  Stan

    Thanks for your comments. As I mention before my design USB connector don't have ID pin but we also want to use DFU boot feature. 

    From your comments :

    1. " Because the USB DFU (Device firmware upgrade) requires TDA4 to be in USB Device mode, ROM will configure the controller in always-Device mode          unconditionally (only 5-V is required on VBUS). ROM expects this USB port to be either Device, or OTG on the PCB (B-connector or OTG connector)."

    Yutai: As you mention we use DFU to boot TDA4VM, the TDA4VM ROM code will configure USB controller in always-Device mode unconditionally (only                   5-V is required on VBUS).  Do you mean ROM code can configure USB controller to device mode  and don't care the USB ID status is low or high?

             As datasheet mention the TDA4VM DFU USB in device mode. So I dont know the device mode is configure from ROM code or from USB ID pin.

            Can you please give your comments. 

             

    Thanks 

    Yutai

             

          

  • Hi Yutai,

    >Do you mean ROM code can configure USB controller to device mode  and don't care the USB ID status is low or high?

    Yes, that correct. ROM code does not care for USB ID status.

    -Praveen