Compact and intuitive way to reroute pins - Page 1
Forum section: electronics / beginners

author: rthorntn
author_rank: Frequent Contributor
timestamp: August 12, 2024, 05:55:54 am
content: HiSo say I have a small PCB around 40mm2, basically an IDC26 male on one end and an IDC26 female on the other. In between the IDC connectors I want a matrix of switched pins and buffers that can allow me to reroute pins.So I need to buffer certain output pins and those pins will be different on different BOBs.So my FPGA connects to one IDC and the other IDC can connect to a variety of CNC BOB breakouts (basically opto-couplers and screw terminals). The FPGA can change its pins, the BOBs have fixed input or output pins. The BOB I have here has 12 outputs on IDC26_1 and 4 outputs on IDC26_2, the other pins (36) are +/- pairs for the 18 inputs.Some background here:https://www.eevblog.com/forum/beginners/easiest-way-to-buffer/Is there some funky IC that allows me to set it up to reroute through a buffer or straight through?In my beginner mind I'm thinking 52 trace "pairs", one of the pair goes to the buffer the other goes straight to the IDC. If the buffer package is 20SSOP I'm also thinking of having three 20SSOP footprints right next to each other so the buffer can be placed across any of the 26 pins.I could just make a board that only worked with my BOB but I'm thinking of a more versatile approach.Thanks.

author: PGPG
author_rank: Frequent Contributor
timestamp: August 12, 2024, 09:50:07 am
content: I have never used FPGA. Isn't it so that you can do all your rerouting inside it?

author: rthorntn
author_rank: Frequent Contributor
timestamp: August 12, 2024, 10:07:42 am
content: Thanks, yes, the FPGA can route the pins, but I need to add buffers on the output pins and the CNC breakouts all have different fixed pins so I'm thinking about a "switched" buffer stage in between the FPGA and breakouts.

author: xvr
author_rank: Frequent Contributor
timestamp: August 12, 2024, 10:58:58 am
content: You can do it with analog cross point switches, but it isveryexpensive.16x16 switches -https://www.digikey.ie/en/products/filter/interface/analog-switches-special-purpose/780?s=N4IgjCBcpgnAbBaIDGUBmBDANgZwKYA0IA9lANrgAMArAMzwBMIAusQA4AuUIAypwCcAlgDsA5iAC%2B0oA

author: ebastler
author_rank: Super Contributor
timestamp: August 12, 2024, 11:50:53 am
content: Not sure what loads (voltages and currents) you intend to drive with those outputs? There are auto-sensing, bidirectional level converters which you might be able to use, which could avoid the need for a switching matrix entirely. They automatically detect which side is driven, i.e. which pins are input vs. output. The catch is that they can only drive very weak DC loads, a few 100 µA DC, but have much stronger boost circuits to drive level transitions.When I looked into these about two years ago, I found:- TXS0108E (Texas Instruments); PI4uls5v108 (Diodes Inc) 2nd source.- NXB0108 (NXP); FXMA108 (OnSemi/Fairchild) 2nd sourceIf you have enough I/O pins on your FPGA, you could also think of bi-directional drivers with additional inputs for direction control. I am pretty sure I came across some which allow individual direction selection per pin, but I did not take notes since they were not suitable for my intended use.

author: rthorntn
author_rank: Frequent Contributor
timestamp: August 12, 2024, 12:09:51 pm
content: Thanks, the outputs drive need to drive an opto-coupler, its 5V @ 5mA.The FPGA card I have has bidirectional level shifters on it I believe and they only put out ~1.5mA so I need a buffer.

author: ejeffrey
author_rank: Super Contributor
timestamp: August 12, 2024, 03:23:37 pm
content: This would be fairly easy to do with mechanical jumpers but would also be large. Are you stuck with only 26 pins from the FPGA? There are bidirectional buffers / level translators that can drive an optocoipler but they usually need to be manually switched. So you would need at least a few extra FPGA pins to control them. A SPI/i2c gpio expander could control a while bank of them with a single chip and just a few control lines.

author: ebastler
author_rank: Super Contributor
timestamp: August 12, 2024, 04:21:10 pm
content: I'm wondering whether it really needs a full matrix? Any of the 26 pins can either be an input or an output -- so wouldn't it be enough to have one dual jumper per pin to select whether to use an output or input buffer/driver on that pin?If so, wouldn't 26 solder jumpers be an option? I take it that a give combination of FPGA board and interface board is put together once and then used long-term, right?

author: rthorntn
author_rank: Frequent Contributor
timestamp: August 15, 2024, 12:01:32 am
content: Quote from: ebastler on August 12, 2024, 11:50:53 amThanks all, so say I was to redesign the whole thing, make a single PCB with the FPGA, circuitry and terminal blocks on there, is there such a thing as a bi-directional level-shifting digital isolator buffer driver with additional inputs for direction control? That would give say 5mA at 5v on an output terminal?