No announcement yet.


  • Filter
  • Time
  • Show
Clear All
new posts


    I have designed and built a custom imx6 board. Design is similar to the reference diagram. The power supply is running off a NXP PF1510. The device is driven of the USB power rail (5.0V, stable supply). USB_OTG1 is connected to USB TypeA connector.
    • All the power rail voltages from PMIC on power up are good (+/- 2%).
    • RESETMCU on the PMIC is good (3.3V)
    • POR_B either connected to PMIC RESETMCU or left floating is good (3.3V)
    • SI analysis of the board done on altium doesn't indicate too much overshoot or undershoot.
    • XTALs are ABS07-32.768KHZ-9-T and ASDMB-24.000MHZ-XY-T

    Only OTG1 being used

    Click image for larger version

Name:	Screenshot 2020-05-29 at 11.44.13.png
Views:	510
Size:	66.2 KB
ID:	14465

    Connected to USB Type A

    Click image for larger version

Name:	Screenshot 2020-05-29 at 11.45.01.png
Views:	716
Size:	38.7 KB
ID:	14466

    BOOT MODE Selector switch, ONOFF Left floating. POR with two option - driven by PMIC / Left floating

    Click image for larger version

Name:	Screenshot 2020-05-29 at 11.46.12.png
Views:	610
Size:	75.7 KB
ID:	14467

    XTAL connected

    Click image for larger version

Name:	Screenshot 2020-05-29 at 11.46.48.png
Views:	539
Size:	50.0 KB
ID:	14468


    When connected to the PC (MAC/Linux/Windows) the device is not detected (should come up as HID).
    • Tried do raw packet collection using wireshark, nothing there either.
    • I do not think it is a Signal Integrity issue (impedance matching has been done, differential pair lengths checked, reference plane is good).
    • Board quality looks good too, i have multiple prototypes but dosnt work on any - likely not a quality issue.
    • Checked with different boot modes (serial connect BOOTMODE[1:0] = 01, boot from fuses BOOTMODE[1:0] = 00).
    • I think either the imx6 is not booting or USB is not working - left floating POR_B is high (so that's good)and the USB differential is a straight circuit untouched and well shielded (i think).
    • Since it is not detected as HID can't use Mfgtool2 for booting, so no UART.

    Despite everything cannot get the device to be detected on USB. I would appreciated any ideas anyone can give.

    Thank you (Do not have an oscilloscope)
    Attached Files

  • #2
    In continuation ...

    The voltage rails are
    VBUS - 5.145V (PMIC supply)
    SW1 - 1.389V
    SW2 - 1.355V
    SW3 - 3.340V
    VLDO1 - 1.802V
    VLDO2 - Unconnected
    VLDO3 - 3.296
    VSNVS - 3.041V
    DDR_VREF - 0.676V

    on power on with POR_B floating POR_B - 3.309V

    Tried powering up the board with POR_B pulled down released after > 5 sec - No detection
    Tried pulling down POR_B after 10 sec of PMIC power on (initially with POR_B floating) - no detection


    ESR - 70kOhm
    Load Cap - 9pF and board cap is 9pF +/- 0.1pF

    Stability +/- 10ppm (not checked)
    Output load 10kOhm
    Load Cap - 15pF
    Board Cap 15pF (1%)
    Deviation - 2.2M registor to GND for XTALI bias not externally adjustable

    Q: Based on the schematic i have shared, are the board caps correct?

    Hardware Development Guide for the i.MX 6UltraLite Applications Processor

    Done that.the only deviations are

    Since BOOT_MODE[1:0] have an on chip pulldown (Page 12) are not connected externally to GND at 00
    Kept Floating
    USB_OTG1_ID - Type A connector not microusb - Grounded on chip

    I am severely hampered due to lack of oscilloscope, short of that is there anything else i can try?

    Again, any ideas & help is appreciated.

    Last edited by Harkirat S Virk; 06-06-2020, 09:04 AM.


    • #3
      When connected to the PC (MAC/Linux/Windows) the device is not detected (should come up as HID).
      - could you clarify, are you connecting your iMX6 board to PC?


      • #4
        Hi Robert,

        Yes connecting the iMX6 board using the USB interface to the computer



        • #5
          Yes connecting the iMX6 board using the USB interface to the computer
          - in this case, you can not have USB A on iMX6 board (USB A is for host). You will need to connect iMX6 Board as a slave/device (you need to have OTG support on the iMX6 USB connector).


          • #6

            I did not under clearly understand your instruction.
            Want to clarify that the product itself behaves as a USB Device (Type A)

            Click image for larger version  Name:	signal-2020-06-01-143420.jpeg Views:	0 Size:	105.8 KB ID:	14526Click image for larger version  Name:	signal-2020-06-01-143440.jpeg Views:	0 Size:	101.4 KB ID:	14527

            The circuity to the USB is in the first post

            Attached Files
            Last edited by Harkirat S Virk; 06-01-2020, 02:37 AM.


            • #7
              Ah, I didn't know you are pluging the board directly into PC (I thought you are using a cable). Still, your board USB has to run in device mode ... means, is your USB ID pin configured correctly (I can't see it in schematic)? Did you add OTG & device support into software?


              • #8
                Hi Robert,

                The USB_OTG1_ID is currently is grounded
                Didn't reach the OTG&Device Support in Software - Device is not detected on computer on connect at all to do anything else.

                I understand that for USB_OTG1_ID
                Host - Grounded
                Client - Floating
                Negotiated - Pulled up using 10K to VCC_3V3 (requires type B connector)

                For it to be detected as HID (OTG) enabled on the computer (for mgf2tool) but only using Type-A connector How should i leave the ID pin? as floating, or grounded?

                Last edited by Harkirat S Virk; 06-06-2020, 09:01 AM.


                • #9
                  In your case, PC is a host, your board needs to be a client.


                  • #10
                    You are suggesting that the pin (USB_OTG1_ID) be left floated. On a prepared board i am not sure how to do that but can try. Maybe remove the IC, reball it less that pin.
                    But want to understand where I went wrong. Technically the pin would have terminated on the USB Type B port with has the id pin grounded anyway - so how is it different from grounding it at the pin or why would i keep it floating?


                    • #11
                      I believe, you may be able to map USB_OTG function on several pins - maybe what could be possible is to map it to an unconnected pin .... maybe ? Still I am not sure if I would leave it unconnected.

                      Driver is checking OTG pin and based on that it will behave as host or device. E.g. if driver notice, that OTG pin says the USB should behave as a device, it will load storage driver and your board will then behave as storage when connected to PC. At least, that is how I imagine it.