i.MX8MM & i.MX8MQ USB2.0 Design Without USB TYPE-C

Document created by Wigros Sun Employee on Mar 29, 2020Last modified by Wigros Sun Employee on Apr 13, 2020
Version 3Show Document
  • View in full screen mode

-BACKGROUND
      Since the release of i.MX8MQ and i.MX8M Mini, some customers have submitted questions
about the design of USB2.0 for these two processors: due to the needs of the project, there is no
need to use USB3.0 and USB TYPE-C. Therefore, these applications need to use a conventional
USB2.0 interface design similar to i.MX6Q.
      In order for customers with similar needs to complete the design smoothly, this document
summarizes the answers to previous customer responses and draws two USB2.0 design schematics.
At the same time, the i.MX expert hardware team member helped review these two drawings, and
the i.MX Expert software team gave suggestions on software adjustments.

-BEGIN
      i.MX8MQ supports USB3.0 and is compatible with USB2.0, i.MX8M Mini only supports USB2.0,
not USB3.0. In both development boards, the USB TYPE-C design scheme is used. We must remove
the USB TYPE-C, PD chip and logic chip. At the same time, change the connector to MicroUSB and
USB TYPE-A-F.

No.1 Hardware Design

1. IOMUX list

2 、USB circuit design
(1) USB Power & OC control

I.MX8MM

i.MX8MQ

                                                i.MX8MQ

                                             i.MX8MQ

[Comment] For i.MX8MQ

-USB1 is configured as Dual Role Mode, USB1 OTG ID is used for detection

-USB2 is configured as fixed Host mode, USB2 OTG ID is used for detection

 

-i.MX8M Mini USB2.0

                                       i.MX8M Mini

                                    i.MX8M Mini

[Comment] For i.MX8M Mini

-USB1 is configured as Dual Role Mode, USB1 OTG ID is used for detection

-USB2 is configured as fixed Host mode, USB2 OTG ID is used for detection

(3) Additional description

--About USB1_VBUS & USB2_VBUS of i.MX8M Mini

         According to i.MX8M Mini datasheet, USB1_VBUS & USB2_VBUS allows 0~3.9V input. See below, please!

Therefore, some customers have questioned the USB1_VBUS on the I.MX8M Mini-EVK. From the drawings, the external input voltage exceeds this range.

         In fact, customers do not need to worry about this problem. There are internal voltage-dividing resistors on the USB1_VBUS and USB2_VBUS pins. As long as the customer refers to the design method on the I.MX8M Mini-EVK, the input voltage of these 2 pins can be guaranteed Inside.

--About USBx OTG ID & USBx_ID

(1) USBx_OTG_ID

         USBx OTG ID is also called GPIO ID, which is the same as that of i.MX6Q. During the work process, the software changes the role between device and host according to the level of the ID pin from high to low or from low to high.

(2)USBx_ID

         USBx_ID is called USB PHY ID, which can also perform the same function as USBx OTG ID.

(3)Using USBx_OTG_ID or USBx_ID

         USBx_OTG_ID is recommended. But if customer wants to use USBx_ID, for i.MX8MQ, she can

configure USB_CTL0_ADDR[utmiotg_iddig_sel] register.

And for I.MX8M Mini, USBNC_n_CTRL2[DIG_ID_SEL] register.

[Comment]

         The configuration is got from reference manual of these 2 processors, due to no suitable board, this configuration is not validated on board. Customers can try it.

(4) About Flashing Images to the Storage of Board

         For an empty board or a board that requires an update image, we need to use the USB interface to program the image. At this time, we need the USB interface to work in device mode. For this, the ROM CODE inside the CPU will ensure that the USB works in device mode.

No.2 Tuning Software

1.IOMUX

According to the actual application, the signals to be used are multiplexed in the dts file. This step is relatively simple and will not be described here

2. Tuning USB configuration in u-boot / device tree

For i.MX8M Mini & i.MX8MQ, i.MX Expert softer team gives the following suggestions, I quote their suggestions here:

      Customer can try it by removing CONFIG_USB_TCPC in imx8mm_evk_defconfi and well as removing the typec_ptn5110_1/2 dependencies in the fsl-imx8mm-evk.dts. The uboot does check the state of the Type C ICs and crash or gets stuck if they are removed.

--i.MX8M Mini

U-BOOT:  CONFIG_USB_TCPC=n

Device Tree:

&usbotg1 {
    status = "okay";
};

&usbotg2 {
    status = "okay";

---------------------------------------------------------

--i.MX8MQ

--u-boot

CONFIG_USB_TCPC=n

 

--Node of Device tree

&usb_dwc3_0 {       

      status = "okay";       

      /*extcon = <&typec_ptn5100>;*/       

      dr_mode = "otg";       

      hnp-disable;       

      srp-disable;       

      adp-disable;       

      maximum-speed = "high-speed";

};

----------------------------------------------

 

-END

 

[Comment]

If you encounter problems while using this document, please submit a ticket to me. Here are the steps to submit a ticket:

1. Open below SUPPORT site, click blue "Go to Tickets" in the middle.
http://www.nxp.com/support/support:SUPPORTHOME
2.Then you will be requested to Login, if you have no an account, please first Register with your business email.
3.After login, please "Create New Cases" button in the middle, then you can submit your question.

 

NXP TIC team

Weidong Sun

2020/3/30

1 person found this helpful

Attachments

    Outcomes