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.

AM68A: USB Device, DFU FW update thought USB to eMMC

Part Number: AM68A

Dear Team,

1) USB

We would like to use the USB port as a device only ( device peripheral, UFP, US).

we want to confirm following:

->The USB0_ID(AC9) pin should be left floating?

->The USB0_VBUS(AA8) pin should be left floating?

-> The USB0_DRVVBUS ( AG25, T25 or V23) pin is not needed for USB device?

2) DFU

To do the FW update to eMMC ( We only have eMMC on our device) via USB ( USB DFU)

->  the USB port on AM68A should be in peripheral mode?

3) Boot

we only will have eMMC and we will but from it.

-> Is it ok only to have eMMC?

-> Also the back-up mode will use  USB DFU

MCU_BOOTMODE MCU6 -> '0' Normal boot operation

MCU_BOOTMODE MCU5/4/3 -> '0'/'0'/'1'  & BOOTMODE PIN 6/5/4 ->  '0'/'0'/'1' -> eMMC

BOOTMODE PIN 3/2/2 -> '0'/'0'/'1' -> USB DFU

BOOTMODE PIN 0 -> '1'

How to set following pins

MCU_BOOTMODE PIN 9,8,7 ?

BOOTMODE PIN 7 ?

4) Do you have a guide how to do the USB DFU on AM68A? Is the following link ok reference?

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1127618/faq-sk-am62-how-to-flash-emmc-using-usb-dfu-on-am62x-sk-e2

&

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am68a/09_02_00/exports/docs/linux/Foundational_Components/U-Boot/UG-DFU.html?highlight=dfu

When doing first programing ( production) if eMMC is blank and can't do the primary boot, will be back-up boot automatically switch to USB DFU?

When doing FW update through USB ( eMMC is not blank) how can we switch  or force to do the FW update via USB DFU?

Best Regards,

d.

  • Hello,

    This question is loaded with software and hardware. Let's get the HW questions answered first:

    1) USB

    We would like to use the USB port as a device only ( device peripheral, UFP, US).

    we want to confirm following:

    ->The USB0_ID(AC9) pin should be left floating?

    ->The USB0_VBUS(AA8) pin should be left floating?

    -> The USB0_DRVVBUS ( AG25, T25 or V23) pin is not needed for USB device?

    2) DFU

    To do the FW update to eMMC ( We only have eMMC on our device) via USB ( USB DFU)

    ->  the USB port on AM68A should be in peripheral mode?

    I'll loop in our hardware experts to comment on this.

    Thanks,

    Erick

  • 1)  For device (UFP), USB0_ID should be left floating.  USB0_VBUS should be connected to USB connector VBUS (with correct voltage divider circuit). USB0_DRVVBUS pin is not needed.

  • HI 

    To do the FW update to eMMC ( We only have eMMC on our device) via USB ( USB DFU)

    ->  the USB port on AM68A should be in peripheral mode?

    Are we talking about the actual firmware update inside the emmc or about  flashing the boot images using DFU.

    -> Is it ok only to have eMMC?

    It is ok to have a emmc.

    4) Do you have a guide how to do the USB DFU on AM68A? Is the following link ok reference?

    Yes you can use the https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-am68a/09_02_00/exports/docs/linux/Foundational_Components/U-Boot/UG-DFU.html?highlight=dfu#usb-device-firmware-upgrade-dfu link for the reference.

    When doing first programing ( production) if eMMC is blank and can't do the primary boot, will be back-up boot automatically switch to USB DFU?

    The boot mode selection is done by the ROM if the ROM is not able to find the images in the primary boot mode it will try to get the images from the backup boot mode using boot switch settings.

    Regards
    Diwakar

  • Hi Robert,

    thank you for the feedback. Our USB device (AM68A) is on the same board with the USB Host, we don't have the USB connector but only have USB_DP and USB_DM signals. Where should we connect the USB0_VBUS? Is it ok to use VDDA_3P3_USB ?

    Best Regards,

    d.

  • Hi Diwakar,

    thank you for the replay.

    We only will have eMMC for our AM68A and we want to flash the boot images and root file system to the eMMC using the USB DFU.

    1) When in production, the eMMC is blank then as you said the ROM will automatically switch to backup boot and as per BOOTMODE pins will use USB DFU.

    But after that at some point we want to update the boot image on eMMC, how can we retrigger the USB DFU for flashing when eMMC is not blank and already contains valid boot images?

    2) can you check if i set the MCU_BOOTMODE pins and BOOTMODE pins ok for eMMC primary boot and USB_DFU back-up boot?

    MCU_BOOTMODE MCU6 -> '0' Normal boot operation

    MCU_BOOTMODE MCU5/4/3 -> '0'/'0'/'1'  & BOOTMODE PIN 6/5/4 ->  '0'/'0'/'1' -> eMMC

    BOOTMODE PIN 3/2/2 -> '0'/'0'/'1' -> USB DFU

    BOOTMODE PIN 0 -> '1'

    How to set following pins

    MCU_BOOTMODE PIN 9,8,7 ?

    BOOTMODE PIN 7 ?

    Best Regards,

    d.

  • If USB is always available, then yes I guess it can be connect high all time.  Or possible driven using GPIO from HOST when USB enumeration is ready to proceed.

  • Hi Diwakar,

    do you maybe have an update regarding the questions?

    Best Regards,

    d.

  • HI 

    But after that at some point we want to update the boot image on eMMC, how can we retrigger the USB DFU for flashing when eMMC is not blank and already contains valid boot images?

    Here do you mean with OTA you want to update the image after product is released to market?

    If the images are valid in the primary boot media then ROM will not switch to backup boot mode.

    Regards
    Diwakar

  • Hi Diwakar,

    yes when the product is released to the market. The image is valid in primary boot ( eMMC) but we want to do the update via USB is that possible and how?

    What do you mean by OTA ?

    Best Regards,

    d.

  • HI 

    What do you mean by OTA ?

    Over the air.

    yes when the product is released to the market. The image is valid in primary boot ( eMMC) but we want to do the update via USB is that possible and how?

    Dynamic switching boot mode is not possible at the run  time 

    Regards
    Diwakar