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.

MSP430F5528 BSL clock

Other Parts Discussed in Thread: MSP430F5528, MSP430F5529

Hi, I'm looking for some positive confirmation here that my hardware setup will work.

I was reading through SLAA452b and got to section 3.7. The text there reads: "The on-chip BSL needs to know the reference frequency to configure the PLL. By default, it is able to detect the presence of four frequencies on XT2: 4 MHz, 8 MHz, 12 MHz, or 24 MHz. If it finds one of these, it programs the PLL accordingly." In my hardware setup, my only clock is a 8MHz silicon oscillator feeding the XT2 input, but I noticed that all of the TI target boards have crystal oscillators on both XT1 and XT2 inputs. Will the BSL automatically know to set the XT2 to bypass mode to find the 8MHz clock or do I need to use a crystal oscillator?

  • The USB part requires an 48MHz clock. The BSL doesn't know of the hardware, so all it can do is checking whether the external reference it finds against the internal REFO clock to test whether it is ratehr 4,8,12, or 24MHz, so the PLL cna be programmed with a 12,6,4 or 2 factor.
    The second crystal on XT1 usualyl is a watch crystal with 32768Hz. It is more stable than REFO and low power and can be used for driving MCLK with a stable DCO-generated frequency that is independent of the USB reference clock. AFAIK the BSL does not need it - REFO is precise enough to tell 4 from 24 MHz USB reference. And for MCLK, no stable frequency is required for the BSL operation.

    The BSL will most likely not set the XT2 to bypass mode, but AFAIK, forcing a digital clock signal to XT2IN and leaving XT2OUT unconnected will only result in a higher power consumption for the unnecessarily driven output. The input should be satisfied with any oscillation, no matter where it comes from. Since it is for BSL operation only and this means that you have USB bus power, I'd consider this a don't care.

  • Hi,

    I have a custom built board with the msp430f5528 processor and a 8 MHz crystal connected to XT2. I've successfully implemented a CDC interface where I can communicate with the processor, but when I try to enter the BSL sequence it just won't work. I'm supplying 3.3V externally to the processor, so that it doesn't perform a reset on Vbus_off event. The code works perfectly in the msp-exp4305529 experimenter board, entering the BSL sequence and successfully programming with the python msp430 tools. I'm using ubuntu on a VMWare Fusion virtual machine running on OS X 10.8.

    But I can't get the BSL working with my board. The USB interface appears but fails in the enumeration process. I've tested the XT2 clock extensively with no troubles. The XT2_Start_Timeout routine returns successfully after one cycle, the clock stability is tested via a 0.01s square wave and a serial port at 57600 bps, all working OK. The message in OS X is the following:

    USBF: 335320.275 [0xffffff80347aa400] The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying. (Port 1 of Hub at 0x26200000)
    USBF: 335321.110 [0xffffff80347aa400] The IOUSBFamily gave up enumerating a USB device after 10 retries. (Port 1 of Hub at 0x26200000)
    USBF: 335321.110 [0xffffff80347aa400] The IOUSBFamily was not able to enumerate a device.

    I'm using a CSTCE8M00G52Z-R0 Ceralock crystal from Murata, which has an integrated load capacitor, so I'm discarding any load capacitor mismatch. I've tried with the 33pf and 10pf variants, with no luck. I guess there are three possibilities for this failure:

    1. The crystal is not accurate enough for the BSL (0.5% tolerance, 0.2% stability), but then the CDC interface wouldn't work, right?

    2. There's a problem with VCC in my board.

    3. The BSL program is optimized for 4 MHz crystals. Is it possible to modify the BSL sequence, giving it more time to stabilize the XT2 clock?

    What I don't understand is why does the USB work for the CDC interface but not for the BSL? I'll appreciate any help with this, I've spent countless hours searching through forums, datasheets and application notes, with no luck whatsoever.

    Thank you very much in advance!

    Jose

    Update: I just found out about the BSL6 issue of the errata sheet, and the device I'm using is affected (Rev. F). The msp430f5529 I'm using does not have this issue (Rev. E), so I'll try uploading a new BSL. If anyone has done this using mspgcc and a launchpad board I'll really appreciate any guidelines. 

  • Kaly Hong said:

    In my hardware setup, my only clock is a 8MHz silicon oscillator feeding the XT2 input, but I noticed that all of the TI target boards have crystal oscillators on both XT1 and XT2 inputs. Will the BSL automatically know to set the XT2 to bypass mode to find the 8MHz clock or do I need to use a crystal oscillator?

    TI dev boards have both XT1 / XT2 crystal oscillators on board, because user is able to do anything on projects where XT1 or/and XT2 is needed.
    For MSP430F552x USB module XT2 is used, and also for USB BSL XT2 is used, not XT1. I never checked, so I can't confirm that USB BSL is able to work without crystal oscillator on XT2, when the clock is generated on XT2 by silicon oscilator.

**Attention** This is a public forum