For too long, hardware design has been a black art. Here's a new book that may change that.
When my first book was just a proposal on the desk of an editor at O'Reilly & Associates, there were just one or two books about embedded programming in C. Half a decade later, there are literally dozens of books on that and related subjects, with new titles introduced regularly from a number of publishers. Yet, almost all of the “embedded books” have focused on software; very little attention has been paid directly to hardware design.
O'Reilly is again leading the way by publishing Designing Embedded Hardware by John Catsoulis. To be honest, at first I did not see why the world needed this book. Then I reviewed an early draft. In hindsight, I see that this book is much overdue.
Like the majority of Embedded Systems Programming subscribers, I'm an electrical engineer by education, yet have spent my career writing software. Despite years spent earning a BSEE and later an MSEE, I've never designed anything more than a toy circuit. Though I know how to read a schematic, am handy with an oscilloscope, and know the smell of liquid solder (and burnt fingertips!), if I were assigned the task of designing hardware I wouldn't know how to begin.
That's where Designing Embedded Hardware comes in. Catsoulis assumes “nothing about your knowledge beyond a rudimentary understanding of digital and analog electronics.” I have a strong feeling I'm not the only programmer with such knowledge and the desire to learn how to develop hardware.
In a much more efficient, practical, and accessible way than the typical textbooks, this book begins by outlining the basic principles of electronics and computer architecture. By page 77, you're ready to start applying those principles. The fun starts officially in Chapter 4, which gets into construction options (breadboards, wirewrap, and printed circuit boards), routing and signal quality concerns, and hardware debugging. There's even a primer on soldering for the uninitiated.
The remainder of the book is divided into two sections. The first contains chapters dedicated to designs based on each of various popular microcontroller familiesspecifically Microchip's PIC, Atmel's AVR, and Motorola's 68k processors and 56000-series DSPs. Through these specific examples, the general technique becomes clear.
The final section deals with peripherals and interfacing. The list of design topics is long and includes implementing SPI and I2C buses; communicating serially via RS-232C, RS-422, IrDA, and even USB; networking with RS-485, CAN, and Ethernet; and analog interfacing through A/D, D/A, sensors of various types, PWM, and more. Because this is a hardware design book, each of these discussions is complete with a circuit design for a common implementation.
For too long, hardware design has been a black art. Or maybe just the dearth of good books has made it seem so. I hope John Catsoulis' new book will be as successful in the market as it's been in showing me how to design hardware. I can't wait to put my new knowledge into practice.