I’m finally getting around to building up one of the iPhone 4 HSMC Bridge boards. I got a pair of HSMC connectors (QTH-090-02-L-D-A) as samples from Samtec and spent way more time than I should have getting a thin bead of solder paste down along the center rail. The solder paste refused to stick to the board, preferring instead to stick to the pointy tools I was using to try to get it on to the board.
Center rails. Great for SI, not so great for hand-soldering.
Once that was done and run through the oven, though, I hand-soldered all the signal pins, getting only a few bridges due to my own impatience. I think I need an even finer tip iron. Anyway, with the bridges cleaned up, I then grabbed the actual LCD connector and soldered it down. There was a minor issue with the footprint but I thought I’d just messed up the footprint (it happens sometimes, especially when trying to make footprints that work with multiple vendors), so I kept soldering it down, mucking one of the pins up in the process. Luckily the pin wasn’t used, and I only caused minor damage. Once the part was finally soldered in I thought it would be a good idea to go back and just make sure I got the connector right.
I didn’t. Something went wrong when I made the order and I accidentally ordered the connector that is on the LCD instead of its mating part. Now I have to pull that connector off the board, order the correct connector and solider it down. The footprint on the board was fine after all.
This is the connector I should have put on my board.
This is the connector which is on the LCD itself. I left the LCDs at home today which is probably why I didn’t catch the error sooner. ASS-U-ME and all that. sigh
I’m usually not this bad at soldering, nor am I this bad at fact-checking before starting. This was just one of those days where I should have left the soldering iron alone.
I’m a big fan of alternate components and designing in the ability to use alternate components through resistor “strapping” options.
I’ve been designing hardware professionally for almost 20 years now. During that time I have had, on numerous occasions, run into situations where the parts I’ve designed into a device are either temporarily out of stock with long lead times, become EOL’d or the suppliers I use simply no longer carry them. This used to be a big problem, but over the years I’ve developed my own component preferences and these preferences bear out the ability to substitute in one of a few alternates which can be used in a pinch. These easy-to-substitute devices have my “go to” parts when designing a circuit.
For most passives and a good deal of “glue” components (transistors, FETs, diodes, basic logic, etc.) this is almost trivial. It’s not often that you need a specific manufacturer of resistor, for example. (It does happen, but that’s another blog post for another time.) Most times when you design around a transistor you aren’t trying to use it in a way where its specific gain or voltage drop or power dissipation is important so replacing an MMBT3904 with an MMBT2222A or BC847 is no big deal. You need to be mindful that the replacements are capable of withstanding the same conditions but by and large a good design doesn’t ever use a component near its rated maximums so substitution is generally easy.
I recently discovered that there is a bit of an understanding among vendors regarding the pinout of SOT23-5 voltage regulators. In my nanov6 and i4hsmc designs I designed in a TI TPS62203 buck switchmode regulator. It’s small, uses small inductors and is relatively inexpensive. The original circuit used it to take 3.3V down to 1.8V for the LCD core supply. Without thinking, I also used it on the i4hsmc design to take the 12V power down to a 5V bias supply that the LCD needed.
Now when I select regulators such as these I always place the adjustable version and install a 0 ohm resistor from the output to the ADJ pin, and then another unpopulated resistor from the ADJ pin to ground (R1 and R2, respectively). this allows me to use the fixed output variant of the regulator, but I can always sub in the adjustable version and populate the feedback network in a pinch. What I didn’t realize at the time I designed the board was that the TPS62203 has a maximum Vin of 6V and a maximum output of 3.3V. This was obviously not going to work for the 12V-to-5V bias supply. Oops! Thinking this was going to be the one gotcha that every prototype has, I went off to DigiKey to take a look at what other SOT23-5 buck regulators I could find and see how badly I was going to have to mangle the board to use it.
Unfortunately there aren’t any SOT23-5 buck regulators which can take a 12V input and give me a 5V (or adjustable to 5V) output. Not a one. I decided to look at linear (LDO) regulators to see if I could salvage what was left of my pride. It was here that I found a goldmine.
I found LDO regulators from TI, Diodes Inc (3 families), Micrel (2 families) and Exar. All of these (7 families in all, probably more if I continued my search) had footprints which were compatible with the TPS62203. All of these could take 12V down to 5V. All of these only required that the output inductor I’d placed for the buck regulator be shorted out, and either have the feedback network removed or place a bypass capacitor in the “ADJ-to-ground” resistor’s place. In fact, I don’t even really have to short out the inductor, as it would act like a rather poor RF current filter. There was one outlier: STMicro’s LK112S, which has a completely different pinout from all of the others. It seems strange that so many vendors would settle on a common pinout. I certainly won’t be designing in the LK1125 anytime soon for this reason alone.
So long story short, I now have another design rule of thumb for small regulators: drop in a SOT23-5 TPS62203 and potentially also lay out a NP zero ohm resistor to short out the inductor. The supply can be designed around a switcher or, in a pinch, converted to a linear regulator with only BOM changes. The expected power dissipation of the LDO would have to be investigated but this is an excellent find in the search for ever-easier to build boards.
I’ve added these parts to my public wiki, both so I don’t forget and to serve as a reference point for others interested. Until now I was using that wiki page more for “interesting components” but I think I’ve found a much better use for it.
It’s been busy here. I’ve just sent a set of board files off to Hackvana for manufacture. Among them are boards for two new projects here, an iPod Nano gen6 Display Breakout board and an iPhone 4/4S HSMC board. Both of these projects will utilize VHDL that I will be designing to drive a MIPI display. Initial target will be the Altera Cyclone V, but I hope to make it generic enough to also work with the Cyclone IV and Lattice MachXO2 devices.
Another FPGA project on the go has me working with high speed ADCs and interfacing with National (now TI) ChannelLink LVDS receivers. The latter will be a blog post, but I’d like to get the LVDS HSMC breakout board back and built before I go into more detail. A picture is worth a thousand words, and being able to demonstrate something that works will make for a much better blog post.
Outside of the FPGA side of things, I have been taking a closer look at the Cypress PSoC 5LP devices for a client project. I was a little let down when I discovered that the programmable logic in them more closely resembles a CPLD rather than an FPGA but reading more about their UDB design it seems like they’ve struck an okay balance between the simplicity of a CPLD structure and the flexibility of an FPGA LAB/ALM/CLB. Having a standard ARM in there certainly helps keep things simpler from a software standpoint since I can just use the regular old GCC toolchain that I know and love. The downside is the Windows-only design software for the analog and digital stuff. I haven’t gotten far enough into things to know if I can write VHDL to create digital logic or not.
One last thing... I stumbled upon the Intermediate Electronics Blog by Julio Rodriguez. I am not one for videos because I find I can’t stay focused on them but Julio has some interesting content and his approach where he takes only one or two narrow subjects and talks about them is nice. I’ll be keeping an eye on his video blog.
Just testing to see what this looks like and whether it’s something I can use.