![]() |
||||||||||||||||
Learn Hardware Firmware and Software Design is a practical design project starting from a blank, white page. The book is addressed to students, teachers, technicians and engineers, to beginners, intermediate, and even to advanced designers. Particular to LHFSD is, it starts from ground zero, then it implements few simple hardware schematics and firmware/software routines, and then it builds up gradually, towards more complex functionality--in firmware and software. Each design step in each chapter is an independent, working hardware module, or a stand-alone firmware/software program. |
||||||||||||||||
![]() Beginners are the ones to benefit most from the knowledge presented in LHFSD. Intermediate and even advanced designers will discover that LHFSD is an excellent reference for their design work, and they will learn many useful, little-known secrets. LHFSD is structured in three parts: it starts with hardware design, then it implements firmware programs on the previously designed hardware modules. In the last part, the software applications presented take control over firmware and hardware. Please find the Table of Contents in this site for details about chapters and subchapters. Part one, HARDWARE DESIGN, starts from a white page and it builds all schematics, the PCB, and the BOM of LHFSD-HCK (Hardware Companion Kit). The LHFSD-HCK implements the following hardware modules: 1. the power supply circuit having two power levels: unregulated +9V and regulated +5V DC 2. the oscillator circuit using a ceramic resonator (the crystal oscillator version is also presented) 3. the ICD2 programming interface using the standard RJ-45/6-6 female connector 4. the RS232 module is presented in 2 versions: using the standard MAX232N IC; and a custom RS232 hardware driver built out of discrete components 5. discrete I/O modules for buttons, leds, buzzer, etc. 6. serialized I/O modules working on a custom SPI Bus--extremely important! 7. a programmable digital potentiometer working as 8 bits Digital to Analog Converter connected to the SPI Bus 8. a Bargraph module using eight comparator Operational Amplifiers, and controlling an array of nine leds 9. one Seven Segments three numbers led display using multiplexing, Shift-Registers, and the SPI Bus 10. visual and audio indicators needed for testing and debugging 11. one temperature sensor analog channel 12. one linear potentiometer analog channel 13. a universal unipolar and bipolar stepper driver module for any stepper within 9 .. 12V, and 20 .. 200mA 14. interface connectors for extended functionality 15. the SPI Bus employing standard logic ICs--this is one of the most important lessons in hardware and firmware programming 16. the microcontroller dsPIC30F4011 or dsPIC30F3011 |
||||||||||||||||
![]() All schematics needed to build the LHFSD-HCK kit are presented in minute details. The chapter dedicate to building the PCB includes a description of the Bill of Materials. You could build the LHFSD-HCK kit yourself, or you could buy it from Corollary Theorems. Note that theoretical knowledge is great, though little hands-on experience helps a lot improving your design skills. The kit provided by Corollary Theorems includes one stepper motor which may be either unipolar or bipolar, because the LHFSD-HCK handles them both. In fact, the LHFSD-HCK is a development tool, and it was intentionally designed with sockets for all ICs and Through-Hole footprints. Therefore, the board may be modified, and used as a component module in further experimentations, beyond the topics described in LHFSD book. |
||||||||||||||||
![]() Part two, FIRMWARE DESIGN, uses MPLAB IDE and the ANSI C30 compiler available for 60 days free trial period from Microchip. The eight firmware programs developed in this part, plus four more developed in part 3, Software Design, implement drivers for all hardware modules previously designed in Part 1. The absolute beauty about LHFSD is, each firmware and software line of code contains at least one explaining comment! Practically, you can read the Source Code files--provided on CD--just as an extension of the LHFSD book. Note that the Source Code provided with Edition 4 (ED1RV1) was drastically changed from all previous Editions. Each firmware chapter builds one or two firmware projects carefully designed and tested for proper functionality. The reader is gently introduced to: 1. structuring firmware projects 2. real time multitasking 3. programming with interrupts 4. building a custom SPI BUS firmware driver 5. using multiplexing 6. programming discrete and serialized I/Os 7. programming Analog to Decimal Conversion channels 8. building RS232 serial communications firmware driver for HyperTerminal, and the custom-built VB applications 9. driving stepper motors 10. firmware data control 11. many more ... |
||||||||||||||||
![]() Many professional secrets are revealed in in Firmware Design, therefore they make the entire firmware development to appear simple, and even fun. Again, the most important aspect is, the firmware code is explained functionally (almost) line by line, in each firmware project! You will learn methods and techniques to deal with any type of firmware application, for any Microchip controller. This Part, at least, it is a "must have" for all firmware designers! |
||||||||||||||||
![]() Part three, SOFTWARE DEVELOPMENT, implements eight applications in Visual Basic, plus four more firmware programs. The accent in this Part is on: 1. Serial communications: you will build a HyperTerminal-like Application in Visual Basic. 2. Graphic Interface: you will build a Multiple Documents Interface (MDI) to harbor your graphic user-interface. Among the graphic controls presented, MSFlexGrid is really beneficial--its functionality is explained in details. 3. Data Control: this is a complex hardware, firmware, and software development system, and it helps structuring logically your applications 4. PC to PCB File Management: files are built in software, and they are sent to and from hardware/firmware dynamically, in real time 5. Graph Trace: this application is similar to the oscilloscope trace, and it is the most advanced form possible of analog graphic display 6. A custom Internet Browser interface is also included in LHFSD.exe. This is just a simple implementation to help you understand the power of the software code you will learn to write 7. Many others ... |
||||||||||||||||
![]() Again, each chapter builds one or two applications, and each is tested for performances at the end, because everything is designed to work. Almost each Chapter includes suggested Tasks exercises, while numerous Notes are scattered throughout the book, helping the readers to understand what is spinning behind the design work. In terms of Requirements for working with the LHFSD book, there are none, if you buy it only for reference. The readers can learn a lot just by studying the book and the source code files on CD. For those who intend to experiment with all firmware and software programs presented, and to learn using/implementing Microchip processors, they need: 1. The LHFSD-HCK: you can either build it, or you could buy it from this site 2. MPLAB IDE: available for free download at www.microchip.com 3. the MPLAB ICD2 Kit: you need to buy it from an electronic components distributor as is Digi-Key 4. the the C30 compiler: a student version is available for free download, for a 60 days trial period at www.microchip.com 5. a 9V/750mA DC power adaptor: comes with the ICD2 Kit 6. the RS232 serial cable: comes with the ICD2 Kit 7. Visual Basic 6 compiler: you need to buy this excellent software tool. 8. One PC having one USB connector, as a minimum; normally, you should have both the USB and DB9 connectors on your PC, but this is not mandatory if you use a USB/RS232 cable adaptor. |
||||||||||||||||
The bottom picture shows the running
LHFSD.exe program displaying the GRAPH TRACE application. The red trace is the
Analog Potentiometer, POT, manually adjusted to 0..5 V. The blue trace is the stepper motor position: it follows
automatically the POT voltage translated into 0 .. 1023 digital values. Of course, you could add as many traces as
you like.![]() |
||||||||||||||||
Following is the image of the custom Internet Browser implemented in LHFSD.exe. You could easily do the same in all your future applications. You can test this custom browser by downloading LHFSD.exe. ![]() |
||||||||||||||||
|
|
||||||||||||||||
LINKS |
||||||||||||||||
|
||||||||||||||||
Back to Main LHFSD page |
||||||||||||||||
| Send your
comments regarding this page using support@corollarytheorems.com Page last updated on: April 13, 2008 © Corollary Theorems Ltd. All rights reserved. |
||||||||||||||||
|
||||||||||||||||