What’s your favorite MCU package and why?

  • The DIP is big and easy to use. You can stick it in a breadboard (wireless or soldered), a socket or easily hand solder it. But, it tends to be more expensive and takes up more real estate.
  • SOIC is a good step down in size. It can be machine soldered. It’s big enough that most people can hand solder in a pinch. But, as an SMT, I’m not sure it has much purpose anymore. If there’s an SSOP available for the same part, why would you take the bigger SOIC package?
  • SSOP are nice and small so that, unless you are really tight on space, they’ll do just fine. They aren’t really any more difficult to layout than and SOIC. If you do need to hand-solder, this package is probably too small. Being smaller with everything else being equal, it might have more issues with heat dissipation than the bigger part or a smaller one with a heat slug under it.
  • QFP – these are just lie either an SOIC or SSOP, but with leads on four sides.
  • BGAs are really compact and and do a good job of keeping signals close to the PCB and to bypass caps. They can be a challenge to layout though. Many will require upping your layer count. The really fine pitch BGAs may require expensive PCB features such as blind or buried vias. CSP and wafer-scale BGAs can be more difficult to handle because of their small size. Breathing on them wrong can toss them around like dust.
  • QFN and DFNs are somewhat newcomers to the scene. The package can lead to some very tiny components. It’s great for signal cleanliness and the heat slug underneath can dissipate (with proper layout) a lot of heat. But, QFNs and DFNs seem to garner the most layout problems. Careful use of thermal vias is critical for maximum performance, but you either have to use expensive techniques, such as filled and plated vias, or you have to rationalize and get around some nearly mutually-exclusive requirements.

Yeah. They all have their pluses and minuses. Fortunately, with proper board design, our SMT machines can place all of the these types all day long without breaking a sweat. All the SMT designs, that is. We do hand place the DIPs. What’s your preference?

Duane Benson
All we are is BGAs in the wind


Done and Done

LED scroller 005 trimmed And … (drum roll, please) … it works.

I put in a couple of batteries, programmed the MCU and turned it on. It works.

I’m always surprised when something I design works on the first try. This being such a simple design, I probably shouldn’t be surprised, though. I should at least give myself a little more credit.

The unpopulated lands on the board in the photo are supposed to be unpopulated. I left a few things out because they aren’t needed for what I’m doing with this piece now and leaving them off keeps the cost down.

So, what did I learn from the process?

  • If you have a lot of different parts laying around, it’s pretty easy to grab the wrong one.
  • I ran into some variability in the “zero rotation” position in the CAD library land patterns.
  • The whole process is pretty easy, but start to finish, there are quiet a few steps.
  • It’s a nerve-racking wait after sending off a box of parts.
  • Good communications between designer and assembler are very important.
  • Clear documentation from the designer is very important.
  • This was a WHOLE LOT easier than hand soldering all the SMT parts (I’ve done that before).

That’s a good set of educational results. Next time, I think it will be easier.

Note the large diode polarity indicators on either side of the long row of LEDs and by LED D25. D1, the Schottky on the upper right has the same polarity indicator, but it’s in between the pads, under the part. In case you’re interested, I have a 3V supply. The LEDs drop 1.8V and I’ve got a 150 ohm resistor for each. That gives me a theoretical 8 mA per port for a total maximum of 176 mA with all 22 lit up. That’s within spec in the -40C to 85C temperature range but too much when above 85C. I’m not sticking this in an engine compartment or anything, so no worries there.

Duane Benson
0x45 0x53 0x43 0x20 0x62 0x6F 0x6F 0x74
0x68 0x20 0x38 0x32 0x33 0x20 0x20 0x20