I needed to output some debugging from a micro controller, usually this is easy. Just plug in a MAX232 and connect up a USB to Serial cable and you’re away. But in this case I was using 3.3v making the MAX232 useless. I didn’t have any MAX3232′s in my boxes and I didn’t want to fiddle around with resistors etc to make a rudimentary level converter. I needed something, and I knew it was something I would use time and time again in the future so I set out to make a LVTTL USB to Serial cable.
Looking at the various USB to Serial cables I had, I came across one that I could clearly see had a FT232BM. Looking up the data sheet for the FT232BM I found in the app notes that this chip can be configured to be 5V bus powered, 5V self-powered, 5V bus powered with 3.3V I/O and 5V self-powered with 3.3V I/O.
The 5V bus powered with 3.3V I/O was what I was after. Looking at the data sheet it showed a 3.3V LDO regulator running off the 5V USB supply. Since I was also low on 3.3V LDO regulators I was starting to think this might have to wait until I can source something.
More investigation showed that the FT232BM uses 3.3V internally and has it’s own 3.3V LDO regulator built in. The data sheet states that the
3.3VOUT can supply 5mA to external devices. Thinking about it I couldn’t see why I couldn’t use this to supply the
VCCIO. After further careful reading I found in fact that this is exactly what can be done! It may be possible to use the in-built regulator of the FT232BM to supply the 3.3V without any other components being required. In this case, connect VCCIO to the 3v3OUT pin of the FT232BM.
Eureka! We have a contender!
Fresh with this knowledge I set about extracting the PCB from the moulded casing. With a sharp knife, a fair amount of swearing and a little patience I got it all out with no damage.
First I removed the DB9 from the edge of the PCB. This came off fairly easily with a dob of flux, a fresh bit of solder and decent solder wick. I then removed the RS232 level converter IC (Sipex SP213E) as I won’t be needing RS232 levels and I needed access to the FT232BM’s outputs.
Now I had to lift the
VCCIO pin on the FT232BM and hook it up to the
3.3VOUT. Looking at the PCB I could see that the
3.3VOUT had it’s required capacitor sitting very close to it, a perfect solder point to pick up the 3.3V. I lifted the pin, soldered on some 30AWG enamelled wire and connected it up to the capacitor. Done, now the FT232BM has LVTTL I/O! YAY!
Flipping the board over I wanted to use header pins to allow cables to be patched, thankfully the pads left by the now removed DB9 where perfect. And because the level converter was removed they’re not connected to anything!
I located the TX, the RX and the Ground pins on the level converter and wired these up to the pins on the header. I could have just simply jumpered to the appropriate output pins of the level converter on the PCB but in it’s removal and the cheapness of the PCB the pads had lifted. So I simply used 30AWG enamelled wire again. All done!
Plugged it into my laptop, connected up the patch cables to the micro controller, and hooray we have output!
After spending a week on my desk in it’s naked form I thought I better create a case for my little hack. I measured the board up and designed a three part case in CAD. Using VCarve Pro I created the NC files and here are the results.
If I was to spend more time on this, I’d add a jumper or a switch so that
VCCIO could be either 3.3V or 5V allowing this adapter to be universal. That being said I’m not sure if the RX is 5V tolerant in 3.3V mode, given that the TX at 3.3V will still work in TTL-land? Hope this is helpful to someone!