I’ve struggled with juggling all sorts of tools for development for years, ranging from serial adapters to chip programmers to logic analyzers. So, I decided to do something about it, but I haven’t gotten far enough yet to use it.
This board is built around the FT4232 from FTDI, which has a total of 32 I/Os in 4 groups of 8. Each group has a serial port, and the first two have MPSSE (Multi-Protocol Synchronous Serial Engine) blocks capable of doing SPI, I2C, JTAG, and others. All 32 I/Os are routed through 4-bit voltage-level translators, and then grouped to a set of 8 RJ-45 jacks. Of each of the 4 chip ports, the A jack has pins 1-4 and 7,8, while the B jack has pins 5-8 and 3,4. The other two pins are GND and VCCIO for that bank.
Pre-made cables could be designed for common interfaces, such as AVR-ISP or JTAG, or include extra components if needed for protocols such as I2C (the FTDI chips require DI/DO be tied together externally, for instance).
I have a software framework underway that will interface with this board and allow you to stack all sorts of modules together to accomplish what you’re after. An example would be an AVR ISP module that exposes a custom API. Underneath it would need to talk to 4 pins (MISO,MOSI,SCK,RST), and would use a standard connection API to be attached to a module underneath that provides those resources. If you hook it to dumb bitbang pins, the ISP code will hammer out the protocol the hard way. However, if you hook it up to pins that are aware that they can be controlled by an SPI module of some kind, the ISP code would make use of the SPI interface and give you radically faster programming speeds. This way you can shuffle your use of the RJ-45 ports to best match your requirements for particular ports and acceleration needs.
I plan on developing a very similar board based on an ATxmega128A1 that will have the same 8 connectors in roughly the same arrangement, but add another 4 connectors for A/D and D/A outputs, and possibly add an LPC memory bus on a different connector. The memory bus would also have an FT2232 for interface to the host computer. The remaining port may connect with another microcontroller (maybe via backpack?) that could do all sorts of interesting things with the VCCIO pins, e.g. making them inputs or outputs, suppling particular voltages, etc. The sum of these enhancements would mean an extremely fast device capable of running things like AVR-ISP, AVR-PDI, JTAG, 1-wire, and other protocols with microcontroller assist. A serialization format between modules would allow compatible modules to be shoved “down” into the hardware.
I also have a tiny version based on the FT232R, which can provide both RS-232 and 12-bit I/O (only 10 with RS-232 active). Unlike the FT4232, there is no sync-serial engine, so everything would have to be done via bitbang…
I have the two boards shown actually fab’d, but I haven’t put the parts on them yet. The software is much more theoretical at this point ;-(