My initial introduction into the world of ICs (integrated Circuits) was the trusty MCP23017, mostly because it came as part of the Ciseco Slice of Pi/O board. Since then I’ve continued to use these chips in my projects and feel somewhat comfortable with them.
The MCP23017 comes in a DIP format (Dual In-line Package) like many other chips, but I hadn’t even considered that there would be other formats to try.
After recently receiving a ProtoLab board from AlienSpec, I noticed a small section in the corner of the board labelled “SOIC” (“Small Outline Integrated Circuit“). After some Googling I soon discovered that this was a smaller format of ICs that offered chips that could operate in a similar way to the MCP23017.
What a find! So, let me take you through SOIC…
What’s the Difference?
I find some things are a lot easier to grasp when you can see them in the flesh. Now you’re all welcome to come round for a cup of tea, but for now let me just show you the difference between my MCP23017 DIP, my new PCA9536D SOIC, and my PCA9536DP TSSOP chips:
DIP vs SOIC
Clearly, the DIP is much much bigger. SOIC is usually around 30-50% smaller in terms of surface area, and a whopping 70% smaller in terms of thickness. This allows smaller and lower profile boards to be created.
TSSOP (“Thin-shrink small outline package”) is even more fiddly, being a touch smaller than its SOIC relative. I ordered a TSSOP chip just to see the difference – I don’t think I’ll try and solder one of these using my basic methods!
However, whilst these particular chips might look very different, they pretty much offer the same functionality to us Raspberry Pi people – they’re both port expanders, and both operate via I2C SMBUS – so your code and layout won’t change much.
NOTE: I haven’t figured out the code for this chip yet – so the above statement is currently an assumption at best!!
SOIC vs Breadboard
In terms of breadboard prototyping with these, you’re going to get stuck.
SOIC chips are too small to push into a standard breadboard like you would with the MCP23017, and you’re probably not going to find a smaller breadboard. No, what you need is an adapter, that lets you break out the SOIC legs to DIP format.
SOIC to DIP Adapters
Amazon sell just the thing – SOIC to DIP adapters manufactured by AdaFruit. I don’t need to mention the reputation and quality of AdaFruit’s products.
The adapters come in a set of 6 in a single board, ready for you to snap apart each time you need one. One side has SOIC-14 (14 pin), the other has TSSOP-14 – I’ll try and cover TSSOP in more detail another day.
These adapters have room for anything up to 14-pin chips – there are other options available from Proto-PIC if you’re after something smaller/bigger.
All you need to do is solder your SOIC component to the adapter, and then add some header pins to the DIP holes to push these into a breadboard. I be using some male headers out of my header grab bag from 4Tronix.
Soldering the SOIC to the Adapter
Soldering SOIC chips looks a lot worse than it actually is. It’s one of those things that you need to take your time with, and can also be corrected if it goes a bit wrong.
I did some research after initially being a bit worried about soldering something so small. There appears to be 2 methods, one where you use liquid flux first (probably the better way), and another where you just secure the chip and go for it… I’m going for the second option, it’s cheaper and seems simpler. Why? – because I’m an Average Man!
1. Secure the chip in place using something like a crocodile clamp or even Blu-Tack. Take note of the position of the white bar print, indicating the top of the chip:
2. Solder a corner pin first, to set the position of the chip. It helps to heat the leg a bit first, but not too long or you risk damaging the IC:
3. Solder the opposite corner next in the same way – this guarantees your chip will remain in position whilst you solder the rest of the legs.
4. You guessed it – solder the other legs:
5. Have a quick check round – you want to look for any solder bridging or poor connections.
Add Headers to the SOIC Adapter
Now that your chip is in place, it’s time to build the adapter using the headers of your choice. I’m going to cut down a 40-pin male header from my 4Tronix header grab bag which will allow me to push it into a breadboard to break it out.
1. The SOIC chip should be facing upwards, so push the shorter legs of your header through the bottom. Use a crocodile clamp or some Blu-Tack to hold the header in place:
2. You want to solder from the top – the same side as the chip. As always, solder one end first, to set the header in position
3. Solder the opposite end, and check position. If it’s not quite right, just re-heat the solder at one of the ends and push into the correct position.
4. Solder the remaining legs, and then repeat this process for the other side.
5. After everything is soldered, you should have this: (underside pic)
Next Step: Coding the SOIC
This is the part I haven’t fully worked out yet.
Whilst the MCP23017 is a familiar friend, other chips – although similar – don’t appear to work in exactly the same way. So far I’ve managed to get this PCA9536 to show its address using i2cdetect, but I haven’t managed to drive an LED yet.
I’m going to spend some time reading the datasheets and no doubt calling for help on the Raspberry Pi forums, then I’ll come back and blog about it once I’ve worked it out.
Want one? Get your SOIC adapters from Amazon.