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 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 !!


Sunday, June 5, 2011

chipKIT PIC32MX Competitive Analysis

Following up from my previous article about Digilent/Microchip's new chipKIT boards, despite the fact that they are footprint "Arduino compatible", they also are a new addition to the collection of PIC32MX development boards in the market, so I did some searching and put together a basic comparative analysis since the chipKIT boards are apparently priced with low margin to put some competitive pressure, the chipKIT Uno32 is even being promoted as being about $3.00 cheaper than the Arduino Uno.

While being "compatible" with Arduino, the PIC32MX has a fantastic feature set that could be crippled for some applications within the MPIDE environment. The good news is that if you don't care about Arduinio you can directly program the PIC32MX via the ICSP interface and you have sort of a generic PIC32MX development board at a very reasonable price.

What is out there ? Check the following table (click on it to download the pdf version with live links to each product page).

As you can see the chipKIT Uno32 is currently one of the cheapest options in the market, obviously there are a range of features to cover all boards, including the humongous dip switch flooded boards from MikroEletronika (I've the LV-32MX v6, like it for some work but it requires a modification to work properly with Microchip's REAL ICE).

The chipKIT Max32 falls more or less in the same price range of Microchip's Starter Kits, not that I think they are a bad product but if you want to go beyond the few LEDs and buttons on the starter kit, without the I/O expansion board (that at $72 I consider it a robbery from Microchip), they are practically useless, so the chipKIT boards may become a better solution for quick prototyping where you need to use some GPIO or analog pins.

In summary, I believe that the chipKIT boards are very well positioned not only to attract  Ardunio community enthusiasts looking for more juice and a more feature rich processor, but also current and future developers interested in the Microchip PIC32MX family.

Did I tell you that behind all the yada, yada, Microchip's marketing is running the show ?

Ohhh, just in case, chipKIT claims to be a registered trademark of Microchip Technology, Inc, other mentions to stuff that may/could/might/will/is/are registered marks of their respective holders or pure coincidence.


Friday, June 3, 2011

chipKIT PIC32MX based boards by Microchip and Digilent

Well, after some anxious waiting the new chipKIT™ development boards finally arrived this week. I'm obviously talking about the chipKIT™ Uno32™ and the chipKIT™ Max232™ boards produced by Digilent and co-developed with Microchip.
First of all notice that chipKIT™ is a registered Trademark by Microchip Technology, Inc. (they seem to be very cautious to include the ™ everywhere.)

These boards feature Microchip's PIC32MX 32-bit microcontroller family and claim to be somehow "the first 32-bit microcontroller-based platforms that are compatible with existing Arduino™ hardware and software" (more about the compatibility thing later).

The boards are produced by Digilent, Inc., and they share the same high quality and detail I've seen on other development boards produced by them. No need to say that the new chipKIT™ platform has behind it the marketing machinery of Microchip, and that the development of this new platform seems to have been originated within the Academic Exchange group to meet the demand for a 32-bit solution requested by the hobbyist, academia and embedded engineering communities.

(Hey look !! Microchip even produced and uploaded a video on YouTube.)
Update: For some reason the original video has been removed from YouTube.

As you may probably know "Arduino™ is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software", and until now all Arduino™ hardware has been based on Atmel 8-bit microcontrollers.

Hmmm "open-source", that's sort of new territory for Microchip, and obviously generated some buzz when the first rumors about these boards hit the development community, where Microchip licensing terms for most of the "License Free" stuff they make available for download and use are very well known for not allowing you to share or redistribute any changes or contributions to their stuff, kind of totally opposed to the spirit of the Arduino community.

Ian Lesnet from Dangerous Prototypes had a great initiative to collect questions from the community to be asked during a phone interview with the people involved in the chipKIT™ platform development. Ian was very kind to make the recording of the interview available on-line, you can find the recording and an interesting exchange of comments on this thread of Dangerous Prototype's forum.

OK, how compatible are the new boards with the existing Arduino™ stuff ?.

First of all notice that we are talking about a completely different Microcontroller, that means you need a different compiler and integrate it with the development environment. What Microchip did ? (something they not let you do with their stuff) took the open-source Arduino™ IDE and modified it to include support for the PIC32MX and redistributed it renamed as MPIDE (for Multi Platform IDE) with what seems to be an open-source license.

The key question is if the existing Arduino™ libraries will fully work on the new platform and if Microchip adds new libraries to support the new features introduced by using the PIC32MX will also be open-source and freely modifiable and distributable.

There are some folks already testing how well the existing libraries work and doing some performance testing as related on this article at Hack a Day, and some pin compatibility analysis by the Rugged Circuits folks.

About the hardware, the fine letter says "footprint compatible", and the intention here is to have the same form factor and approximate pinout so you may be able to use many of the already existing Arduino™ shields, but keep in mind the the chipKIT™ boards are 3.3V and there may be some shields that require 5V, remember always to check the schematics and documentation of each particular shield to avoid the unpleasant blue smoke.

Now taking a quick look at the new boards, this is a quick and preliminary first look at them, I'll post more articles as I power them and start doing some developments and tests.

The chipKIT™ Uno32™

Inspired and "footprint compatible" with the Arduino™ UNO. It features a 64-pin PIC32MX320F128H 32-bit Microchip microcontroller with 128KB of internal FLASH program memory and 16KB RAM, instead of a Type-B as the original Arduino™ UNO it has a mini-USB connector for the serial interface to the FTDI USB-Serial converter.

One thing that bugs me being one of the nice features of the PIC32MX family that you can have a nice chunk of program memory, why for one more dollar they didn't populate the Uno32™ with a PIC32MXF340F512H that has 512KB of FLASH and 32KB of RAM? It will probably be the first mod on my board.

The chipKIT™ Max32™

Inspired and "footprint compatible" with the Arduino™ Mega2560. It features a 100-pin PIC32MX795F512L 32-bit Microchip microcontroller with 512KB of internal FLASH program memory and 128KB RAM.

One nice feature of this member of the PIC32MX family is that it includes an 10/100 Ethernet MAC module, it requires and external PHY chip for a 10/100BaseTX but Digilent said to expect an shield that will take advantage of the Ethernet and USB interfaces by July.

Both boards include direct access to the PIC32MX ICSP interface in case you need to program the PIC32MX directly. The boards are preprogrammed with a bootloader and the classic flashing LED demo. In case you wonder why the ICSP header pins are not in line read this tutorial article from SparkFun.

One nice change on the layout of the new boards is the position of the RESET button, as you can see on the pictures if you have a shield installed on top of the Arduino™ boards unless you have a hole on the shield it is almost impossible to hit the RESET button, the new chipKIT™ boards have it in one of the corners where even with a shield on top it makes the button accessible from the side.

I'll start playing with the boards and post additional articles. As Microchip, I took care to include the stinking TM mark on all references which they make explicitly clear that are trademarks of Microchip and just saying that other trademarks are from their respective holders blah blah blah without mentioning that Arduino™ is a registered trademark of the Arduino team.

Hope this incursion of Microchip in this arena brings a change of attitude and helps they learn from this experience and embrace some of the practices of the open-source community.

BTW, even when it is a registered trademark the boards and associated software are not "official" Microchip products so don't expect direct support from Microchip, if you need help visit the chipKIT Forum (how original !! they also registered the domain, well it goes in companion with the originality of the packaging too).

Some links to keep handy:
You can currently purchase the boars via Digilent or Microchip Direct, I'm sure there will be other distributors in the near future.

Looking forward to see the first batch of clones :-), hey it is open-source after all !!


Saturday, April 16, 2011

Short Circuit a Virtual Paper about Electronics 'n Stuff

I've been trying to find a easy way to aggregate the vast amount of information and news that every day gets dumped on my Twitter timeline. Thanks to the folks of SmallRivers and their service I put together a list of news sources about the electronics industry and related stuff.

Feel free to subscribe and follow, and if you are interested to be included in the list just send me a tweet at @jamodio.

Read Short Circuit here


Tools: An Engineer's Dream, New Agilent InfiniVision 2000 & 3000 X-Series

InfiniiVision 3000-X Series
Reproduced with Permission, Courtesy of Agilent Technologies, Inc.
When doing electronic systems design or if electronics is a serious hobby for you, when the need arises to visualize a signal, not having the right instruments is like trying to navigate without a map and a compass, or in modern times without a GPS.

When I'm talking about visualizing signals obviously I'm referring to an oscilloscope. There is plenty of information and tutorials on-line about oscilloscopes so I won't get into that on this article. I've been involved with electronics for more than 35 years, and through my career I used, touched and why not blown away many oscilloscope brands and models.

Since my early days at technical school I had a tremendous admiration for a company that has been since then one of the leaders in developing and manufacturing electronic measuring instruments, I'm talking about Hewlett Packard. As you may know in 1999 the test and measurement division spin-off from HP to form Agilent Technologies, with a quite successful initial public stock offering raising more than $2 billion.

I remember from those early days the anxiety and excitement that preceded the arrival on the mail of two of my favorite publications, the Hewlett Packard Journal and the HP Annual Catalog. I was drooling browsing page after page of the catalog, something I still do today when I browse Agilent's website or their latest catalogs that they still produce.

There is no doubt that when talking about quality oscilloscopes, Hewlett Packard and Tektronix were the two brands that we heard more often, years later with the introduction of digital scopes other companies like LeCroy and very recently Rohde Schwarz entered the scene to compete with the two predominant leaders.

While I believe the oscilloscope is a must have instrument, if you work with digital electronics, and like in my case where I do design, consulting, and research & development in embedded microcontroller applications, another very useful instrument is the logic analyzer, but despite the fact that digital signals are "digital", any signal is still an analog waveform, then there are cases where you need an oscilloscope to inspect a digital signal, or a logic analyzer to analyze a group of digital signals, or what in some situations is a plus, a combination of oscilloscope and logic analyzer, a MSO or Mixed Signal Oscilloscope, where you can inspect and correlate on the same display both analog and digital signals.

Thanks to the on-line big auction house, my fascination with Hewlett Packard instruments (also calculators and the HP Series 80 desktop computers), turned me into a collector and I was able to put together an interesting collection of gear from HP.

On the picture you will find a 1650B Logic Analyzer, a 1652B Logic Analyzer with Digital Scope (sort of an ancient MSO), a pair of 3478A multimeters, a 4951C Protocol Analyzer (I also have a 4952A), a 3476A Digital Multimeter, the intriguing for some 5005A Signature Multimeter, the Batman & Robin of basic digital troubleshooting the 545A Logic Probe and 547A Current Tracer, and believe or not the 548A Logic Clip. Some of the gear is connected via HP-IB to the HP 85 on the bottom left. Ohh yes, before you mention it, there is a pair of Tektronix scopes too, an old analog 2246 and a digital TDS224.

But the interesting thing is that today you can have all that stuff, and most obviously better and with many more features, in a single, compact and beautiful instrument.

While I enjoy my collection and still use many of the instruments I have on my bench, for long time I've been craving to have one of the new Mixed Signal Oscilloscopes or MSO. For a while my dreams were filled with images from the Tektronix MSO4000 series or the more expensive InfiniiVision series from Agilent Technologies.

But I was recently blown away and the desire for a Tek went instantly to the trash can when I discovered the announcement of the InfiniiVision 2000-X and 3000-X series from Agilent. WOW, before this series there was nothing and there is still nothing to compete with Agilent on this range of specs and pricing. Not only impressed by the technical specs, the design, and the pricing, I was also impressed about Agilent's move to capture this abandoned segment of the market.

I think that Dave Jones from EEVblog did an excellent job reviewing and tearing down this new series, so I'm embedding on this article his videos about the new InfiniVision series 2000 and 3000-X from Agilent.

Agilent's InfiniiVision 2000-X Oscilloscope Review by Dave Jones:

Agilent's InfiniiVision 2000-X Oscilloscope Teardown by Dave Jones:

Agilent's InfiniiVision 3000-X Oscilloscope Review by Dave Jones:

Agilent's InfiniiVision 3000-X Oscilloscope Teardown by Dave Jones:

I agree with many of Dave's comments, including that some of the options such as the Waveform Generator or the LAN/VGA module feel a little bit pricey. My preferred choice would probably be the 200MHz MSOX3024, with obviously the serial decode option and the LAN module.

Unfortunately I don't have today the budget but I hope to have soon the opportunity to put my hands in one of these (I'd not venture as Dave to take it apart), meanwhile I recommended this new series to several friends and colleagues, I strongly believe that it was a brilliant move by Agilent to capture this segment of the market that was previously abandoned.
My kudos then to Agilent Technologies for this impressive and beautiful product line.