Page 141 - The Art of Designing Embedded Systems
P. 141
128 THE ART OF DESIGNING EMBEDDED SYSTEMS
the other in engineering modifications, but you’ll have options if (when)
the first board smokes. Anyone who has been at this for a while has blown
up a board or two.
I generally buy three blank prototype PCBs, assemble two, and use
the third to see where tracks run. Though sometimes you’ll have to go back
to the artwork to find inner tracks, it sure is handy to have the spare blank
board on the bench during debug.
It’s scary how often the firmware group receives a piece of
“functional” prototype hardware from the designers accompanied
by nothing more than the schematics-schematics that are usually
incomprehensible to the software folks. made even more abstruse by
massive use of PLDs and similar functional blocks plopped down on
the page, with perhaps hundreds of connections. They are documen-
tation black holes-every signal goes in, and presumably something
comes out, but without the designer’s suite of design tools even the
brightest firmware person will never make sense of the design.
Where does one draw the line between the responsibilities of
the hardware designers and those of the firmware folks? Should the
designers include device drivers? Seems reasonable to me, since
surely they did indeed at least hack together a bit of code to test each
device. Why not structure the development plan to make this test
code part of the framework of the final software? The hardware
tends to be so complex now that it’s unfair to give “naked iron” to
the software people. At the very least, deliver low-level drivers with
well-defined interfaces.
If you live and breathe hardware only, do talk to your software
counterparts. You may be surprised to learn that all too often your
cool new product makes debugging the code practically impossible.
Poor design decisions might seriously affect the firmware schedule.
All embedded people must understand that their creation does not
exist in isolation; the code and the chips all function together, to
form the seamless gestalt that (you hope) delights the user.
Changing PCBs
After spending a couple of months writing code, it’s a bit of a shock
to come back to the hardware world. Fixing bugs is a real pain! Instead of
a quick editkompile, you’ve got to break out a soldering iron, wire, parts,
and then manipulate a pin that might be barely visible.

