I wonder if anyone can help with a very strange problem.
I have a design using the MSP430F5500.
This hardware design is according to SLAA457A; with the TPD2E001 ESD supressor, diode, VBUS input (admittedly with 10 uF instead of 4.7 uF). It also has the caps on VUSB and V18 as required, and the push button to invoke the hardware BSL into PUR with 100R and 1K4 and 1M resistors.
Other parts of the circuit DO USE the 3V3 output from VUSB, the current draw there is a couple of mA.
XT2 is the MuRata resonator 4.00 MHz as used on the launchpad boards (ie 0.1% resonator; with integral loading caps).
I *do not* have an external regulator to make 3v3 - doing so adds to the BOM cost which is already too high.
There are numerous 100n decoupling caps sprinkled around, these are close to the micro pins.
WHAT WORKS:
When loaded with my application program, everything works fine - the USB comms is OK, the program starts OK, etc.
HOWEVER, my issue is the (built in) BSL.
Problem #1. Push the "BSL" button and plug in to the PC -> Windows 7 reports that the USB device is unknown / malfunctioning and it does not enumerate.
Problem #2. If I erase my application program so only the BSL is left, then in theory the BSL should run when it is connected to USB. It does not - nothing happens at all.
Problem #3. If I manually invoke the BSL (using debugging, unprotect it, set PC = 0x1000 and GO, then again nothing happens).
What I have done.
- Checked for excessive capacitance on the VUSB regulated output. There was too much (>10 uF) so removed a 10 uF cap leaving only round 4 x 100nF decouplers. => no change.
- Checked the version of the BSL. The IC is rev D, and the BSL in it is quite old now. Single stepping this BSL shows that it enters an endless loop of oscillator fail errors when trying to start XT2 using the 4.00 MHz ceramic resonator.
- Updated the BSL (using Elprotronic tools) to the most recently published USB BSL.
- After BSL update, the single step process FAILS at the point where the USB peripheral LDO regulators are all turned off and back on again to work around Errata USB9.
- Using the debugger to SKIP OVER the turning off of the LDO regulators for that errata... this most up to date BSL then also stops in an infinite loop trying to start XT2 using the ceramic resonator.
- Changing the XT2 crystal / drive level from 3 (ie fast crystals etc 20-ish MHz) to 0 (4-8 MHz)... and then the loop pf oscillator faults stops, and the BSL continues - BUT STILL FAILS TO WORK.
At this point I stopped chasing my tail. But it does look like there is something strange at the very least in the drive level used by XT2 when running with the MuRata 4.00 MHz resonator. ** BUT NOTE THAT THIS WORKS FINE WHEN USED BY THE NORMAL APPLICATION PROGRAM! **
Help!
How can I get the USB BSL to actually work?