Saturday, October 22, 2011

Yet Another PIC32 Proto Board

Over the past few months I've been doing some developments and research based on Microchip's PIC32MX 32-bits Microcontroller product line. Time to time I have the need to do some hardware and firmware verification before I commit a final design on a pcb, I'm a prototype maniac.

Searching on eBay for TQFP-100 adapters I found this one from some folks in Thailand that is not just a plain adapter. It is tailored for dsPIC, PIC24 and PIC32 parts.

What is special about this one is that it is not just an adapter, as you will see on the other pictures below, on the bottom it includes the pads for several of the support components (decoupling capacitors, VCORE caps, etc.) and a header for the ICSP (In Circuit Serial Programming) interface to get a PIC32 up and running very easily.

You can get this adapter for less than U$S 2, and taking advantage of Microchip's excellent sample program you can get free samples of several of the PIC32MX family parts. I went ahead and dropped a PIC32MX795F512L-80I/PF on it.

Some folks may feel intimidated about soldering a 0.5mm pitch100-pin surface mount chip, don't be so, as you give it a try you will find that sometimes prototyping with surface mounted components is easier, quicker, cleaner and more reliable than with the old through-hole parts. 

So how do you solder this beast ? I'll show you.

First of all, you need the right tools, patience, a good solder iron with a thin tip (I have a Weller WESD51 station with the PES51 iron and a long canonical 1/64 tip (ETS), a good set of tweezers, a pair of magnified glasses or a microscope, and more patience.

First of all make sure the board is clean, use denatured or isopropyl alcohol to remove any grease, dust, etc. Put just a tiny bit of solder in one of the corner pads, I normally do it with the lower left corner. Position the PIC32 with the right orientation, double and triple check that you put it with pin 1 where it is supposed to be, don't get confused with the orientation of the PIC32 legend on the chip, you will see it rotated clockwise 90 degrees, that's the right orientation !!

Using the tweezers or your fingers to hold the part in place making all the pins aligned with the pads, melt the solder on the corner pin so the pin gets soldered to the pad. Then add a little bit of solder on the opposite side and corner (upper left in my case, as shown on the picture). That will put the PIC32 in almost a fixed position so with your magnifying glass and/or microscope you can double check that all the pins align correctly with the pads before we move to the next step.

Then we are going to use a technique that consists on flooding all the pins with solder, that we will later clean up using a desoldering braid or wick. Do one side of the PIC32 at a time making a pause before moving to the next side so you don't overheat the PIC32.

The desoldering braid I use is a Pro Wick 1815-10F from my Texan friends of Techspray available from Mouser.


When you are done let it cool down before you start to clean each side with the desoldering braid, put the braid in parallel to the PIC32 side with enough braid to cover all the pins on that side, when you are ready put the iron on the braid (not the pins) as the braid heats up it will start sucking up all the excess solder from the pins, when you see that most of the solder has been removed remove the braid, don't let it cool down and attached to the pads or traces on the pcb. You need to be careful about not to damage the traces coming out of the pads or trying to remove the braid if some solder got it attached to the pads or traces, reheat the braid to make sure it is free of any hard connection.

Another great product I use from Techspray is a general purpose defluxer to remove all the flux left on the board by the solder. It is also available at Mouser and the product number is 1631-16S.

Once you are done removing the solder and cleaning the area you will find that you just soldered a 100-pin PIC32 microcontroller and it looks very neat !!


Now it is time to take care of the support components in the bottom of the adapter, in case you wonder about the values and what each one is for I put together a quick schematic showing how pins on this adapter are connected. Take in account that this is not a "generic" TQFP adapter, given that the Vss and Vdd pins are connected according to the dsPIC33/PIC24/PIC32 pin outs, but be aware that the Analog Vdd (AVDD) pin and VBUS pin are not connected to Vdd. After adding the bottom components and headers I added a small piece of wire connecting AVDD to VDD, without that connection your PIC32 will not startup or be recognized by your ICD or REAL-ICE.

To solder the SMD parts I normally put a little bit a solder in one of the pads for each part, then with the tweezers position the part with one hand while with the iron heating the pad with the solder. TIme ago I put together a tutorial with some pictures showing how to deal with these parts. 
You may have noticed that on the schematic I have one LED connected to RG15, looking from the bottom on the upper right you can see one of the leads of the LED soldered to the GND/Vss plane and the other which I later connected via a 330Ω limiting resistor to RG15 (Pin 1).

While I included as optional the crystal and load capacitors for it as an external source for the PIC32 main clock oscillator, I was planning just to use the internal clock. These are the particular configuration bits (for the MPLAB C32 Compiler) I used for this project:


#pragma config FPLLODIV = DIV_1, FPLLMUL = MUL_20, FPLLIDIV = DIV_2
#pragma config FWDTEN = OFF, FCKSM = CSECME, FPBDIV = DIV_1
#pragma config OSCIOFNC = ON, POSCMOD = OFF, FSOSCEN = OFF, FNOSC = FRCPLL
#pragma config CP = OFF, BWP = OFF, PWP = OFF

After finishing with the components on the bottom, adding the wire for AVDD and the status LED, I added the headers for each side and for the ICSP interface. Created a simple program to initialize the PIC32 and get the LED on RG15 blinking, applied power and voila the thing became alive !!


I've several other development boards and gadgets for development with the PIC32MX family, but I really like this simple one that has nothing besides the minimal support components and one LED connected to its pins.

Hope you find this article useful for your PIC32 projects, don't be afraid of soldering a TQFP-100, the worst that can happen is you get a wasted free sample and few bucks on parts.

Happy Prototyping !!

Cheers
Jorge