For a project I have chosen PIC18F25J50 microcontroller, because it has a lot of potential in it and was a way cheaper than the popular (but older) PIC18F2550. This chip has built in USB support, 2 MSSP, low energy mode, and it works at the 2.0V-3.6V range. Ideal for battery use, which was one of my goals. During the design phase I realized, that it is much more easier to test the software side on the real life hardware - so it was the time to build a test jig. I soon came to the conclusion to use breadboard, which is fast, when you make mistakes, easy to change the circuit during the development process.
I had a few options to choose from:
- use the pdip package of the microcontroller and build everything around that
- use the ssop package which I want to use in my final circuit
The first option seems nice, but consider the following:
- in the final PCB I will use the smaller footprint package
- every static component has to be placed in (need more breadboard space)
- when make new circuit around the PIC, almost the whole thing must be rebuild, even if the majority is the same
- you have to care to connect every VCC, VSS, VDD pins every time
- I don't want to buy another version of the same microcontroller :)
- there can be differences between the real life work of ssop and the spdip package (they should be identical, but the keyword is - should)
So I decided to make a breadboard compatible DIP adapter for the ssop package version. Ok, that is good so far, but what knows this adapter, why you call it demoboard - you ask? What makes this board more interesting than the usual adapters?
- this adapter connects to the breadboard vertically! (it uses only the middle two columns of the breadboard)
- all of the 28 pins are routed to the breadboard, so they can be used almost freely
- it has ICSP connection
- it has USB connection
- it has an LDO voltage regulator onboard if I plan to power the board from USB
- it has an NXK-32 oscillator for clock signal
- and of course all of the power signals are connected as they should :)
- it has no extra LEDs everywhere (if I need one, I can connect it into the breadboard)
Step 1: Know Your "enemy"
Every design must be started with reading. A lot of reading. And if you read enough, just read a little bit more. The datasheet of this PIC is 560+ pages long. It contains a lot of useful information, like the minimal components needed, USB connection example, etc.
With my minimal needs I have constructed the schematic and after that the board. Before you ask, I tell you, the board can be make with the toner transfer method - I have done my board this way. It is not easy, but if you have steady hands and good iron, you can do it!
I have attached the Eagle projekt files with the 3D model made with EagleUP plugin + Google Sketchup.
These files were made for DIY home PCB etching, but needs fine works. The demoboard is two sided and it has real thin wires (0.3mm "wide"!) - to fit into the dimensions I got from the pinheads. The vias were drilled with 0.6mm drill bit, they were filled with thin copper wire and were soldered both sides. The two 14pin wide pinhead row are standard pinheads, but they were bended with a plier to be wider (look at the 3D model) and they were surface soldered.
Step 2: Conclusions
After soldering the vias, my board got clear lacquer protection and just after that were the parts hand soldered in. Almost all the parts are SMD version, but only two capacitors are the size 0402 the other parts are bigger.
This demoboard is working for two years now without any hassle. My expectations was high, but it was completed them well. During this two years I have pulled out and pushed back the board many times, but my soldering joints holding great, there are no broken connections.
For programming this microcontroller, you need some hardware and software tools. I am using a PICKit2 for programming and debug in MPLAB-X, with XC8.
As you can see on the pictures, this board runs from a CR2032 battery and can control an OLED screen through i2c nicely. This thing could not happen without debugging, but by design I was able to put my Logic Analyzer into the circuit with only a few more wires, just to see how the PIC tries to communicate.
PS.: If you like my instructable, pls vote it in the PCB Contest. Thank you!