So, I wasn't happy with ICOM's CT-17 CI-V interface. Even though it's the "official product" for CI-V, communication would still lock up under a mere 100W TX. This was remedied by liberal use of snap-on ferrite chokes, but that's ugly as sin. I shouldn't have to add circuit components to compensate for poor design. So here's my take on what CI-V interfaces should look like.
The general architecture is that of a completely isolated two-side system. One side works in the PC domain, the other in the RF domain. The system has about 3.0pF of isolation capacitance between the two sides, and DC isolation in the giga-ohms. This means that as radio waves hit one side of the circuit, they will find it very hard to propagate down the line to the other side. Worst case HF impedance would be 1,768 ohms @ 30MHz. At 1.8MHz this impedance rises to 29,473 ohms.
The system also interacts with the CI-V bus properly, and supports both 3V (IC-7000 style) and 5V (legacy?) operation, automatically. The CI-V transmitter is a proper open-collector design (unlike the CT-17!), and can therefore work with either 3V or 5V without modification. The CI-V receiver has its transition threshold set at 2V, so it is compatible with both 3V and 5V busses. The receiver also only places a load of 10uA on the bus. The transmitter places no appreciable load on the bus when it's in the high state. In the low state it shorts the bus as per open collector operation.
The source resistance of this 3V bus on my IC-7000 is about 20k so the 10uA draw represents about a 6.67% loading. I'm not sure why ICOM chose such tiny currents and voltages to send digital signals in high RF environments. Perhaps earlier designs, which are widely cited as being 5V, had a lower source resistance (ie: more current was used). A differential signaling method would have been best, although it does come with complexity.
Given the miniscule power available on CI-V, I couldn't use it to power any of the RF-side components. It certainly doesn't have enough juice to drive an optoisolator's LED. In order to keep the radio interface of things simple (a single 3.5mm jack), I chose to generate power on the RF side by means of a DC/DC converter from the PC side. I know other designs like to draw power from the radios, but this is just more messy proprietary wiring I don't want. The DC/DC converter was rather hard to find, and I probably hadn't found the best one for the job. The key criteria was the lowest isolation capacitance, and 3.0pF was the best I could find. The specific part is an NMJ0505SAC by Murata Power Solutions. This board does feature the optional output filter on the DC/DC converter to improve linearity. The idle loading resistor draws about 40mA (20% load) to bring the converter into voltage compliance.
One of the goals I had for this project was to do it all in a way that would allow the PCB to lay flat on a table. That meant SMD all the way. I do have 3 holes in the board, for plastic pegs on the power and CI-V jacks, but I expect these pegs can be either trimmed or melted flush with the bottom of the board. Then there's the matter of bringing RS-232 onboard. There are no DB9 connector solutions I could find that were purely SMD, so I gave up and went with an RJ45 jack instead. In retrospect this is nice since a big bulky DB9 plug can put mechanical stress on the board, or pull it out of position, whereas an RJ45 and some CAT3/CAT5 cable will put far less force on things. At the PC side a common RJ45->DB9 adapter is used, and is wired for 1:1 pin mapping. That is RJ45 pin 1 = DB9 pin 1 and so on. DB9 pin 9 is not connected. Any straight-through CAT5 network cable will work to provide the interconnect, and this has the added advantage that they're easier to procure than DB9 serial cables.
Power input can be anything from about 7V to 16V, DC, center positive. 7.5Vdc, as found on most universal wall warts, is probably ideal. Anything more and you're just burning more heat in the linear regulator at the input. Power draw has not been measured yet, but will be less than 500mA. A polarity reversal protection diode has been included, cuz you know, mistakes happen to the best of us.
The main RS232 interface is provided by the the MAX233A chip, and this guy feeds a couple different optoisolators. The optoisolators are spec'd at 15Mbaud signal rate, but with the high 20k source impedance of CI-V (at least on my IC7k) I wouldn't expect anywhere near those speeds. Besides, the MAX233A tops out at 200kbaud, which sets the maximum effective rate right now I believe. The fastest CI-V mode on my IC-7000 is 19,200bps so this should be ample headroom.
Here's a 3D rendering of the proposed layout and circuit routing:
And here's the 2D view, showing that Altium routing is not the sharpest tool in the shed. The circuit job around R1 is especially perplexing. I did run the clean-up pass after the routing pass. I kinda miss Specctra right now...
Next steps are to order all the parts and prototype this thing. If it all works reliably, I'll release full circuit data including PCB artwork.
The board presently measures 2.25" x 1.5". This could be reduced as there's still whitespace, but I dare not attempt it in Altium. It seems to have a nasty habit of saying routing is 100% complete even when some traces are removed for "rule violations". Only the clean-up pass seems to catch on to this fact. And I say "rule violations" in quotes since the traces look to not be violating any rules. Perhaps it's some n00b mistake on my part.