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.

Rev A 6638 chip continually resets after upgrading to new USB API

Older versions of the MSP430 6xx Family User Guide specified bit 12 in the USBPLLCTL register as UPCS – the PLL clock select bit. Until January of this year the TI USB API had code in the USB_enable function in usb.c that set this bit:

 

    if (USB_PLL_XT == 2)

    {

        USBPLLCTL = UPCS0 + UPFDEN + UPLLEN;// Select XT2 as Ref     

    }

    else

    {

        USBPLLCTL = UPFDEN + UPLLEN;        // Select XT1 as Ref     

    }

 

However, the latest User Guide now shows this bit as Reserved, and says to always write a 0 to it. The latest version of the USB API no longer writes this bit:

 

    if (USB_PLL_XT == 2)

    {

        USBPLLCTL = UPFDEN + UPLLEN;       

    }

    else

    {

        USBPLLCTL = UPFDEN + UPLLEN;       

    }

 

The IAR compiler also removed the definition of the UPSC bit from its chip-specific include files.

 

After upgrading to the latest API I discovered that boards having a 6636 chip installed worked fine. However, we have several boards that have a Rev A version of the 6638 chip installed. After the upgrade, those boards would continually reset whenever a USB cable was plugged in. I hacked up the API code to write a 1 to bit 12 of USBPLLCTL, and then those boards started working again.

 

Is there some issue with the 6638 chip (perhaps specific to the Rev A) that requires that bit to be set? I do not want to keep the hacked up API that sets the bit, since the latest User Guide says to always set it to 0, and even though it might work now somewhere down the line something might change in the chips that would break.

 

Any help with this matter would be greatly appreciated.

 

Note: This issue is somewhat related to another thread at http://e2e.ti.com/support/microcontrollers/msp430/f/166/t/268483.aspx

 

  • The USB API is meant for the latest silicon, not the test/pre-release silicon.The first production release of the MSP430F6638 is Rev D.

    Revision A of the MSP430F6638 is a pre-rtp silicon and may not be supported fully by the MSP API. Upgrading to Revision D should remedy your issue. 

    However for engineering and testing purposes when using Rev A you can use your hack.

**Attention** This is a public forum