8-Bit Blog: IC Programming September 29 2013
There are many things that go smoothly during prototyping that fall apart when you begin manufacturing. We were in for a surprise when we recieved our first batch of programmed microcontrollers (or ICs). Below is a video of the sample IC that was sent to us by the programming factory. Note: this is not what it's supposed to sound like.
Unfortunately, they had already programmed 1500 boards this way, so it was time to take a trip out to the factory to see if we could sort it out. The reason we had let them go ahead without receiving a sample, is that they had made several versions of the board already, and we made some very minor changes in our last iteration (small tweaks to the sensitivity of the board). This was a mistake that we learned the hard way: If you change anything, even if it seems minor, make sure you get a sample before you begin mass production.
The IC programming house is actually a company that sells auto programmers. Their main business is in selling the machines to other factories, but they program ICs on the side to make some extra money. Below is a video of one of the machines in action.
Pretty cool, right? I've often seen microcontrollers shipped in those clear tubes, but never knew the reason why. Turns out they're very low resistance, so the chips can slide through them easily, even at a shallow angle. This makes it easier for machines like this one to robotically program the chips.
Another common packaging for microcontrollers is on a reel. This machine punctures through the plasitc casing with little spikes, and programs the chips with the same pins! Also pretty cool.
It turned out that our main problem was in the programming configuration. These are controlled by a group of settings called "fuses" that determine characteristics of the chip. The factory had turned on a fuse that caused the chip to run at 1/8th speed, which resulted in the lower tone that you heard in the video above. They were able to change the fuses, and make us a sample chip with the new configuration.
I've often found it very difficult to solder and de-solder ICs from boards (this is due to them having many connection points, which you have to heat up individually). At the programming house, they were pros at this. The engineer was able to take off our IC and solder on the new sample in a matter of seconds. When he was done, we tested the board, and confirmed that everything functioned correctly. Luckily they were able to reprogram the boards that had errors, and gave us an estimated delivery of two days.
After leaving the programming house, we stopped at a Szechuan Hot Pot restaurant. This was by far the spiciest meal we had, but it was absolutely delicious. Little did I know, there are distinctions between types of spice in China. The Hunan spice is what we more traditionally think of as spicy (think hot salsa). The Szechuan style of spice has a numbing effect, even in small quantities. This meant that every few bites, my tongue and other parts of my mouth would go tingly and then numb. It was a very strange feeling overall.
All in all, the programming error was a pretty good problem to have, and fairly easy to solve. It was one of many instances where I was glad to be onsite to help resolve the situation quickly, and without too much cost.
Thanks for reading!