I have been playing around with a logomatic V2 for a little more than a week now and could program both the firmware and the bootloader multiple times.
When I received it months ago it seemed DOA but then life caught up and I had to deal with more pressing matters.
When I resumed checking it out last week it seemed to at least power up and after some poking I got it to work about right.
During these days it was mostly on all the time, either with the USB attached or not (I used a LiPo from Sparkfun for this guy).
Last night I left it with the USB plugged in to recharge the LiPo.
And then this morning it stopped powering up altogether when I cycle power.
Well, not quite, actually: from time to time it would power up and boot ok, every 40th attempt or so but then only after some time off.
But most of the time I switch the power on and it does not boot. Everytime, now, in fact.
- The USB LED does not switch on (my code switches it off as soon as the uSD is done configuring but I should still see it, and then I use it to indicate activity)
- Nothing goes to the console - the RS232 and the USB are on the same laptop, therefore I rule out ground loops as a cause for damage.
- If the USB is plugged in, the device does not enumerate
I fired up the oscilloscope.
- The LiPo was properly charged (the charger LED still lights up when I plug in the USB).
- 3V3 is present and stable when the switch is on.
- The RST signal is not stuck, I could see it going up and down as I press the button.
- The clock is more difficult to check but I have a hunch it works just fine by looking at the signal on the caps next to the oscillator, but mostly because when I power up the unit in ISP, flash magic can access the LPC2148 and reprogram it which would not be possible without a working clock.
So I thought to myself “You stupid guy! It’s your $^c#!ng changes in the code that got you in this mess!” and I reprogrammed the original SFE bootloader in there using flash magic.
Programmed all right.
Same problem.
Now I don’t know any more where to go.
The only things I can think of are:
- If the PLL fried for some reason - the ISP probably does not use it.
- Maybe the ISP runs on the 32kHz, and then my problem is my clock.
Does anybody have other leads?
I think I found at least the failure mechanism:
The unit enters ISP every time, even when the button is physically removed.
I guess that now I can fire up the microscope!
I will let you know.
Ok, all is good.
It was some oxydized solder blog on the BSL pin that was shorting to the nearby GND pin.
Apparently it worked fine so far because I was mostly working on it at night, but then in the day temperatures can be somewhat higher here (Costa Rica) and the expansion would do the trick - it seems to explain as well why it would sometimes boot after some time off: the LPC does not develop much power but it would still heat up internally…
Anyway Saint Xacto solved that for me.
(I have a microscope picture of the fixed pin, but I forgot to take one of the problem before xactoing my way through.)