It seemed like time to hook the LPC2378 eval board up to the JTAG debug pod, the better to make sure that the low-level initialization code is doing its thing.
And so it came to pass that I connected the ol' Nohau pod, that'd mostly worked pretty well over the years (though software updates are now out of my price range), and... it didn't work.
Now, wait a minute: didn't I have it working at one point last summer? Check with the LPC2148 board: it works. Connect the Olimex OpenOCD pod to the 2378 board: it works, though my 30-day evaluation license for NoICE expired about 200 days ago. Play with supply voltages, the Nohau troubleshooting screen, .... Hmmm. Results seem very inconsistent.
Ponder.
Ah. There's the trick! I had the JTAG clock set to the default 0.5 MHz. You'd think that'd work, what with the MPU having a 12 MHz crystal connected, but....
But, the LPC23xx family doesn't run off the crystal on reset. There's an internal 4 MHz oscillator that's used initially. D'OH! Yeah, that's great from the perspective of letting the firmware make sure the crystal is working properly on startup, but it does mean that the debugger needs to be run more slowly.
Setting the JTAG clock arbitrarily to 0.1 MHz got the pod working properly.
Earlier, though, I'd been shopping around for a replacement for the Nohau - something maybe with current software, and with the right special function register definitions for the parts I'm actually working with (the Nohau has a part-menu selection for LPC2378, but as far as register definitions go, the closest it comes is LPC2138, which isn't very close).
I suppose getting a live license for NoICE, to go with the OpenOCD pod, is a plausible option; that's certainly in my price range, even for the version that supports all manner of targets.
Looking at the various other pod+software offerings on vendor web sites, I noted a great lack of the information needed to make a decision: (a) what's included, (b) what it does, (c) what it costs, (d) where I can buy one, and (e) what limitations apply to the version that comes in one of those attractively-priced starter bundles. (Seriously, if the software has a $3000 price tag, and the starter bundle with software, JTAG pod, and an MPU eval board goes for $350, I really want to know what's wrong with the software in the bundle, whether I'm thinking of buying it for myself or asking my boss to buy it.)
Maybe there's a market for a course in "selling to engineers 101."
And, after all that, the LPC23xx task just got pushed aside, as there's at least one flavor of revenue work on tap for tomorrow. Gotta do the revenue stuff so's I'll have money to buy the new toys (currently on the shopping list, a USB protocol analyzer pod).
Update: looking now at the code I'd loaded in the 2378's flash last summer, I see why it's not signing on: the initialization code is definitely for a 2148, and getting stuck in PLL initialization. So, I must have tested the debug pod and/or programming via serial port, but never used a correct binary. So now I just need to produce a correct one (starting with the configuration files...), and not worry about why the old one isn't working.
Recent Comments