Programming & Customizing PICmicro Microcontrollers, by Myke Predko, is probably the best book out there for someone who is starting out with the PIC series of microcontrollers from Microchip. I used Myke’s book as both a tutorial and reference when I created my PIC RGB Video Display. Since then, I have referred back to this book countless times even when working with other microcontrollers, like Atmel’s AVR family, because it contains so much useful architecture-independent technical information. I have referred to this book for information about topics including LCD interfacing, debouncing switches, RS-232 serial interfaces, and multiplexed LED drivers. As a technical reference it easily surpasses the majority of AVR books that are out there.
The book is starting to show it’s age by not including some of the latest PIC micros in the examples (like the PIC16F628), but the code is easily ported to newer/faster/better microcontrollers, a good learning excercise in itself.
Getting Started in Electronics, by Forrest M. Mims, III. is a spectacular introduction to the world of electronics. This book is not new – the truth is that it has changed little since it’s first release in 1983. Despite this, twenty-five years later, there is really nothing else like it. This book is suitable for beginners of any age yet it comprehensively describes the technical theory and practical use of electronic devices like resistors, capacitors, inductors, diodes, transistors, FETs (including the now-rare JFET), and LEDs, as well as circuits like amplifiers, oscillators, and logic gates. There is even a graphical introduction to device physics (semiconductor materials, doping, electrons and holes) and semiconductor fabrication! This is kind of stuff they teach third-year students in universityECE classes, written in a way that is understandable to a child in third grade!
The entire book is formatted like an engineering notebook with handwritten notes on every page. The illustrations are fun and make the book friendly and accessible. Here is an excerpt from the chapter on diodes:
My father gave me this book when I was six or seven years old along with a 25 watt soldering iron from Radio Shack. I am convinced that this book, together with a Science Fair 160-in-ONE kit, is what caused me to pursue a career in Electrical Engineering. I still enjoy leafing through its pages and proving to myself that I can understand how each circuit works.
The book even includes a handy guide to help you learn How to Solder!
Thankfully, it turns out that this fantastic book is still in print. The groovy green cover is gone (a mistake, in my opinion), but the contents have not changed. This is fantastic news for anyone interested in learning about electronics. These also make great Christmas presents – I bought one for my brother last year and he loved it!
In my opinion, this is probably the greatest introductory book about electronics ever written. I’d be curious to hear if anyone has any other favorites – leave a comment if you do!
The Art of Electronics, by Horowitz and Hill, has been referred to by some as the electronics bible. Within its 1125 pages are everything from a “what is a resistor?” level introduction to passive and active circuits to a thorough treatment of op-amps, phased locked loops, logic family interfacing, and shielding and noise elimination techniques. This book has some of everything, at least everything that was relevant to electronics engineering in 1989 when it was last updated.
True, this means it is horribly out of date with regards to computers, microcontrollers, and EDA/CAD tools – but this is a book about fundamentals, not the latest fad in physical computing (ie. Arduino).
Andrew Milmoe of Make:SF recommended Charles Petzold’s book Code to me several months ago to help me refresh my knowledge of computer architecture as I dive into embedded systems development. I finally finished reading it this week and thoroughly enjoyed it. Code is both a history of the computer as well as a tutorial illustrating how to build one from the ground up using switches and gates. Some chapters are slow reading due to the complicated subject matter, but the way he brings everything together at the end makes it a great read. Although the book is in some ways dated (written in 1999, it talks about 128MB of memory being novel and Apple having problems in the desktop market) I found that it is still relevant. This is particularly true for microcontrollers and embedded systems which have more in common with the 8 bit computer that is the subject of the book than a Pentium 4 in today’s desktop PC’s.
Charles Petzold’s latest book, Code: The Hidden Language of Computer Hardware and Software, crosses over into general-interest nonfiction from his usual programming genre. It’s a carefully written, carefully researched gem that will appeal to anyone who wants to understand computer technology at its essence. Readers learn about number systems (decimal, octal, binary, and all that) through Petzold’s patient (and frequently entertaining) prose and then discover the logical systems that are used to process them. There’s loads of historical information too. From Louis Braille’s development of his eponymous raised-dot code to Intel Corporation’s release of its early microprocessors, Petzold presents stories of people trying to communicate with (and by means of) mechanical and electrical devices. It’s a fascinating progression of technologies, and Petzold presents a clear statement of how they fit together.
The real value of Code is in its explanation of technologies that have been obscured for years behind fancy user interfaces and programming environments, which, in the name of rapid application development, insulate the programmer from the machine. In a section on machine language, Petzold dissects the instruction sets of the genre-defining Intel 8080 and Motorola 6800 processors. He walks the reader through the process of performing various operations with each chip, explaining which opcodes poke which values into which registers along the way. Petzold knows that the hidden language of computers exhibits real beauty. In Code, he helps readers appreciate it. –David Wall