0
\$\begingroup\$

I have a problem with a device that I’ve built: It contains a LPC4300 microcontroller and it's supplied with 24V DC.

I’ve noticed a strange problem when I connect it to a USB port. The device is used as a Slave.

First I have to say that this device has no USB protection (my fault) and all the USB pins of the microcontroller are directly connected to the USB connector.

The problem is the following:

  • When I connect the device to my desktop PC it works correctly.
  • If I turn off the device and I connect it to my Laptop, the device also works correctly.
  • But if I connect it first to my PC desktop, then I disconnect the USB cable and I connect the device to the laptop, the USB port results broken (I measure a short circuit between the VBUS and GND line).
  • This happens just when I don’t turn off the device.

What could be the cause of this problem?

The laptop supply should be isolated (I measure more that 1MOhm between the Earth and the Output pin).

\$\endgroup\$
  • 1
    \$\begingroup\$ How are you "measuring a short circuit"? Are you aware that you must not use an ohm meter or continuity tester on a powered circuit? Likely you will need to include a schematic of the power and USB portions of the design. Also it would be interesting to know what happens if you reset the MCU before plugging it into the second system. \$\endgroup\$ – Chris Stratton Sep 5 '18 at 15:12
  • \$\begingroup\$ Dear Chrism thank you for your answer. I'm measuring a short circuit when the device is turned off and also when USB cable is not connected. Regarding the schematic, I'm using an LPC4300 and all the USB pins are connected directly to a USB connector. \$\endgroup\$ – MatD Sep 5 '18 at 15:25
  • 3
    \$\begingroup\$ Pretty obviously if it ever works your "short circuit" measurement doesn't have the meaning you think. In terms of connections, since you're using a non-USB power supply you need to show the connections for the whole system, especially all of the USB, voltage regulation, supply filter, etc. Not in words, you need to actually post a legible schematic. Without this, your question will probably be quickly closed. \$\endgroup\$ – Chris Stratton Sep 5 '18 at 17:20
  • 1
    \$\begingroup\$ If you want help in resolving your problem, it is advisable to answer questions from seasoned contributors. First, LPC4300 is a product family, there are dozens of modifications. Second, LPC4300 uses 3.3V power, and can't be "supplied from 24VDC", so the voltage regulation and relationship to USB VBUS is important. Third, LPC4300 familiy has TWO USB interfaces with direct PHY embedded, both are OTG, one HS, the other FS (+ULPI). Which one is "connected directly"? Also, what do you mean "USB port results broken", before measuring the mysterious "short"? Do you mean laptop overcurrent, or what? \$\endgroup\$ – Ale..chenski Sep 5 '18 at 18:39
1
\$\begingroup\$

If we disregard the "shorted VBUS" description, the whole problem sounds like the device lacks of proper VBUS sense functionality or USB_Reset functionality. When VBUS is disconnected (cable is unplugged), any USB device must reset itself into "USB Default State" (addr:0, endpoint:0), so it can again receive and respond to standard enumeration sequence form host. If the self-powered device don't reset its SIE on cable disconnect and USB_Reset doesn't reset the SIE, another computer will be unable to enumerate ("recognize") the device.

\$\endgroup\$
  • \$\begingroup\$ A simple way to test this would be to get the system into the condition where it is not enumerating correctly and then reset the MCU (without cycling power or anything else!). If it starts working then it's a good sign the USB disconnect/reset is not being handled properly. \$\endgroup\$ – ajb Sep 8 '18 at 6:01
  • \$\begingroup\$ @ajb, the standard way is to run simple CV - Command verifier from PC, usb.org/developers/tools/usb20_tools/… \$\endgroup\$ – Ale..chenski Sep 8 '18 at 6:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.