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.

Need help with MSP430F5510 and USB

Other Parts Discussed in Thread: MSP430F5510, MSP430F5529

Hello,

I have a custom board with an MSP430F5510, and I'm trying to get the USB interface working with the example projects from the "USB Developers Package". My board has an 8MHz ceramic resonator on XT2, and nothing on XT1.

The example project I'm working with is called "C1_Example". Its the example that uses the CDC device class and accepts commands through Hyperterminal to blink an LED at various rates.

I've changed the device to MSP430F5510 in the Code Composer project from the default of MSP430F5529. Other than that I have not changed the code at all.

I can compile the code and load it on the chip using the JTAG header on my board, but the USB device is not recognized when I plug it into my Windows 7 computer. My custom PCB is bus powered.

Are there any parameters in the example code that I must change to get it working? Or any other tips or hints?

Best regards,

Rob

  • > My board has an 8MHz ceramic resonator on XT2

    I don't recommend a resonator. Apply a crystal, instead.
    Usually, resonator doesn't have required frequency tolerance defined on the USB spec (+/- 0.25%), except for some high-accuracy ones specific to USB usage. With an inaccurate resonator, you may see that your device would be recognized by a PC, but not on others.

    The examples expect a 4 MHz crystal.
    For an 8 MHz crystal, replace USBPLL_SETCLK_4_0 into USBPLL_SETCLK_8_0 on this file,

    C1_Example\USB_config\descriptors.h
    #define USB_XT_FREQ       USBPLL_SETCLK_4_0  // Indicates the freq of the crystal on the oscillator indicated by USB_PLL_XT

    You may need to tune this crystal drive current, too. For the details, refer to the XT2DRIVE bits on UCSCTL6 register on the MSP430 User's Guide.

    C1_Example\USB_API\USB_Common\usb.c
    BYTE USB_enable()
    {
        ...
        XT2_Start(XT2DRIVE_3);    // <--- XT2DRIVE_0


    Tsuneo

  • Thanks for your response Tsuneo. I have some crystals on order, and I'll try them out when they arrive. In the mean time I've tried making the changes to the code you suggested, but I still have no luck getting through the enumeration process. So, either the ceramic resonator really is out of tolerance, or something else is wrong. When I run the code it seems to get stuck in the state ST_ENUM_IN_PROGRESS. I've tried plugging the board into several different computers, but always the same results.

**Attention** This is a public forum