Sorry for the delay (for anyone who's actually been polling this thread
It took me most of my morning to get "stuck in" to this sticky problem, and that wound up running into the early afternoon - then I was on the hook to deal with "real life". Simply put, failure of the latter (getting groceries, etc.) would have meant not having much to eat for dinner...
Anyways...
I started out this morning fully intent on putting together a simple MAX232-based serial converter to enable a TTL-level conversation between the software that Knuckles was kind enough to post the link to, and the Infineon controller. I'd picked out a piece of perf board, a handful of caps (the MAX232 needs 4 of these on top of the usual decoupling requirement), and the other wire and connectors needed to get going on this.
It was while I was rummaging for a DB9 connector (when's the last time I'd done something with one of THOSE?b) that I caught myself. I was trying to build an interface between an RS232 serial port and the TTL level programming header on the controller. Meanwhile, the computer I use to talk to the microcontrollers on my bike is a laptop that doesn't even have a serial port. When needed, I've been using one of those USB to RS232 dongles that has never really given me pause to think about what was inside it - until now...
Why was I trying to down-convert RS232 using a MAX232? Why was I mumbling about the fact that - however I did this - I'd STILL have to find a 5V supply to run the controller board during the programming process?
The blinding flash of the obvious hit me at that point - instead of building yet another external device/wiring harness - I SHOULD be modifying what was right in front of me. Rather than ADD a MAX232 to what was going to be connected to my laptop through the USB serial port emulator - why not REMOVE the signal converter which this device employs, and simply pass the TTL output of the USB HID device emulator directly to the outside?
To keep the story short, this is what I elected to do. I have a couple of different styles of these USB-RS232 dongles kicking around (not because I *need* them, but because I wound up purchasing additional ones when I was unable to re-locate the first one(s) I bought... but my cluttered workspace is a whole other story).
Anyone who has gone to the local Future Shop/Best Buy/Office Place/Business Depot/Staples/Circuit City - or whatever outlet you have in your particular country - may know that the price of one of these USB to RS232 dongles is somewhat out of line. I have one unit that I *know* I paid close to $40(CDN) for, and why would I want to bastardize THAT? But I have others that I came by almost "free", and which (as of this writing) can be purchased directly from Asian sellers on eBay for less than $2. It was one of these latter that I elected to hack, but they turned out nearly identical (electrically) to the over-priced ones sold in the big stores... The difference is how they are put together...
This is one labelled "Dynex" which, I believe, I got at Staples/Business Depot and for which I paid wayyyyy too much coin...
The beauty of this thing is that - with very little prodding - the innards slide out, and you can simply remove the inside covers to expose the PCB inside...
In the interest of other forum members who may want to try this, I elected NOT to use this one for this project. Instead, I used one of the "cheapie" units that (as mentioned) can be purchased on eBay for next to nothing. It's interesting to note, BTW, that the chips used in BOTH of the dongles I'm showing, here, are the same - and the driver software is the same, too. Hmmm..
The BIG difference is that the cheapies have their PCBs moulded into the connector. You literally have to slice open the sides of the thing and peel away the semi-soft shell (this isn't as ugly as it sounds)...
So the object, here, once you have the board out of its shell, is to remove the chip that does the level conversion between TTL and RS232. I'm lucky enough to have an SMD rework station that would have made this easy work, but decided to do it the brute force way - an approach that anyone reading this can take - by slicing the legs off the chip I wanted "gone", and using a soldering iron to clean off the leftover legs. The thing to keep in mind is that you need a sharp tool, and you want to cut the legs into the chip body - NOT the circuit board - so that you don't cut any traces. Today, I'm sporting a huge (3/4" diameter) blister in the middle of my right palm (no, I didn't get it doing THAT

) from chipping the ice off the driveway, so I'm using certain tools a bit awkwardly. I wound up lifting a few traces while trying to man-handle the driver chip off the board, but I wasn't really caring about this - virtually ALL of the signals that need to be jumpered pass through at least one via before reaching their target - and these are INFINITELY easier to solder to than the pads laid out for an SOIC chip.
Gadz, I'm realizing how long this post could get - so let me try to cut to the chase...
The USB controller has TTL level inputs/outputs that go to a level converter chip (to get to the +/- voltage levels required by the RS232 standard) before heading off to the DB9 connector which is the actual serial connector we know and hate. The object, here, was to remove the signal converter chip and directly connect the TTL level outputs from the USB controller to the DB9 - by simply jumping the inputs (to the now-removed conversion chip) to what used to be the output or vice-versa.
All of (three, in the end) the USB-RS232 dongles I looked at employed the same chips. Despite the popularity of the FT232, these all used the Prolific PL2303:
For drivers, all used the Zywyn ZT213 series driver chip:
What wasn't consistent was the choice of which pins on the driver were used for what purpose. If you venture down this road, the best thing to do is to follow the pins of interest back from the DB9, and target which signals to jumper accordingly. If TX Data goes to R5OUT, then jumper it to R5IN, etc.
You can't actually see the jumpers in this picture (I was able to pick up adjacent vias) that handle RX and TX, but you can see that I've run a 5V power lead to (the now unused) pin 4 on the DB9.
You can also see how many pads i ripped off with the ZT213. Didn't care - everything could be connectd to vias.
Once it was together, I looped pins 2 and 3 on the DB9 together and fired up an ancient DOS-based terminal program I have to see if the characters sent through the serial port were echoed back. THEY WERE! Woohoo!
So, now it was down to connecting this thing the Infineon. I agree wholeheartedly with what
fechter posted earlier. This "touching" of tin contacts with solder pads didn't seem like a great idea to me, so I added a proper header to the controller board.
All that remained was to build a little cable to connect the (now TTL) DB9 to the newly installed header:
And then the acid test... If I load up the software, will it work?
...
NO.
Alright, maybe it's the subjective opinion of what "RX" and "TX" mean... Perhaps they are (as often occurs) reversed, depending on which end of the line you're standing at. Let's try reversing them...
Nothing. Hmmmm...
But, after a pause (and double checking that my earlier loop test still worked), it hit me that this program is a Visual BASIC app that uses MSCOMM32.OCX - it probably cares about handshaking! Not with the device, but in order to actually LOOK at the serial port. This thought was confirmed when I realized that my simple loop-back test didn't work in HyperTerminal (when's the last time anyone used THAT?). It showed the status of the port as being "offline". Double-"ahah".
So I added three more wires to the dongle - this time to take DCD, DSR, and CTS low (signals used to indicate "readiness" of the hardware to accept data, and that you're online). Quick test with Hyperterminal again... YES! It works properly...
Back to the Infineon...
Connect the controller, load up the program, load a sample file, hit "Transmit", and... nothing. Just waiting...
*DOH!*
Forgot to put the RX/TX wires back the way they were... Try again...
Frak. Nothing...
It was at this point that I was about to walk away for a while, and then I remembered something that Knuckles wrote on the bottom of the picture of the original cable. "Briefly Touch Flash Connector to Infineon pcb to Transmit Software Settings to the Controller". Suppose the firmware in the MCU only looks for the programming cycle during boot? I've now made this sexy cable that, the minute I connect it to the new sexy header on the controller board, it powers up the MCU and has it idling by the time I can get the software PC organized.
Different timing required...
Disconnect header from controller, load PC software, load demo file to send to controller and hit "Transmit'. THEN connect the controller.
*BINGO*
At the end of all of this, I wound up putting the modified USB dongle in a small project case, and added a switch to control the application of 5V power (through pin 4 of the DB9) separately. You can see the extra yellow wire wrap wires jumpering DCD/CTS/DSR to ground:
And, here, the final setup after having some fun with the settings...
I confess, I've blown myself out of the water twice while trying to compose this (by phat phingering off the page and losing the message buffer contents) - and the subsequent efforts to re-create the story get messier with each attempt.
I'll come up with a proper schematic for all of this, but I'm hoping the gist of it comes through. I've been meaning to make a TTL-level serial interface for a while (for other purposes), but this same thing can be used to interface to other data logging devices, for example, that use TTL level serial communication.
Cheers!
Phil