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.

PUR and USB D+ pull-up during enumeration

Other Parts Discussed in Thread: MSP430F5638

On a USB transceiver, is it required for the D+ line to be connected to the PUR pin?  Or can the D+ line be pulled up to an external +3.3V  net?

I am trying to troubleshoot an issue with a custom MSP430F5638 board where the host is failing to enumerate the device.  USB_connectionState() constantly returns "ST_ENUM_IN_PROGRESS" when attempting to enumerate.  The D+ line is pulled up to an external +3.3V net (same one that is used to power DVCC) and is not connected to PUR at all.

Thanks,

Jason

  • On MSP430, DP pin must be connected to PUR pin over 1k4 resistor. At the enumeration begging (you can see this in source code) MSP430 will pull PUR pin high...

            bis.w #PUR_EN, &USBCNF        ; Generate rising edge on DP -> the host enumerates device as full speed device

    Pulling PUR pin manually (over 100R) to external 3.3V (VUSB) is used to invoke USB BSL at device power up (of after reset).

  • Thank you for the response.  However, that was not my question.  My question is whether the D+ line can be pulled to an external +3.3V via a pullup resistor, instead of connecting it to the PUR pin.

  • Probably DP can be pulled up with external resistor to +3.3V, without relation with PUR pin, but in this case I expect (some, maybe not relevant) start-up timing problems, because host will start to enumerate device immediately after reset / power up, even device is not ready at this moment. With PUR pin device trigger enumeration by host side when it is ready.

  • So with the pull-up to an external +3.3V on the D+ line, the host might be trying to enumerate the MSP430 USB before it is ready.  This makes sense that it will fail in this condition.  At this point, does the host automatically retry enumeration?  Or does it give up?  This is just for my own understanding of how USB works.

    Regardless, I will try modifying the custom board so that D+ is tied to PUR through the 1.4K-ohm resistor.  I will let you know if this helps.

    Thanks,

    Jason

  • According to the manual you can drive D+ vía a direct pullup if you don't want SW control. Pulling D+ up tells the host the device is a full-speed device this can be performed vía SW using PUR_EN or not (fixed pullup to VUSB) 

    Page 1077 MSP430-F5 and F6 Family User's Guide

    40.2.1.1 D+ Pullup Via PUR Pin

    When a full-speed USB device is attached to a USB host, it must pull up the D+ line (DP pin) for the host to recognize its presence. The MSP430 USB module implements this with a software-controlled pin that activates a pullup resistor. The bit that controls this function is PUR_EN. If software control is not desired, the pullup can be connected directly to VUSB. 

**Attention** This is a public forum