Howdy EEVbuddies, long time lurker here.
I've been working on a device based around an LPC1547; got some parts last week, assembled a prototype (everything worked first power on, much to my surprise), cobbled together a skeletal blinky project and associated toolchain/linker crap, and built a (very questionable) blinky.bin.
So cool, I've got at least somewhat working prototype hardware, and an at least somewhat working build kit, time to use that slick USB firmware upload feature to flash this thing.
Plug the USB into my board's USB hole, power it up - Windows sees it as a mass storage device just like the datasheet says. Awesome.
Copy the existing image over to check it for anything interesting (there wasn't), delete it, and copy over my 4 kilobytes of pleasure. Appears to be successful.
Power cycle it - no blinky but that's pretty much what I expected first try.
Notice a possible error in my C, fix it, recompile, plug in the USB...and nothin.
Device no longer gets detected as a mass storage class, and as far as I can tell appears completely inert to the host PC.
Figure maybe I killed USB with some config or power bit I didn't set, so I pulled the boot pins appropriately, hooked up a serial dongle and poked it with lpc21isp....nothin.
When I checked it with the scope, I found that with ISP_1 pulled high (boot to USB ISP loader) the 12MHz osc starts up, as it does when both ISP_0 and ISP_1 are pulled high (boot to flash program), but not when both are pulled low (boot to UART ISP loader). This strikes me as a bit odd.
The manual certainly makes it sound like the bootloader is in its own ROM, but it kinda seems like my dodgy firmware either wacked something important or enabled all the protection bits.
I suppose it's possible I just coincidentally zapped the chip with static or a USB transient or something around the same time I programmed it, but I've only got the one prototype on hand so I can't reproduce the whole process at the moment.
Anyone out there encountered anything like this?