I wrote a blog in 2015 about using an FPGA as logic analyzer.
In that blog, I promised to review the input buffer that I was using to translate 5V logic to 3V3.
Then I didn't follow up on that.
Yesterday I made a second buffer, using parts and PCBs that I had lying around from a few failed previous attempts.
A good excuse to finally document this.
What Is This Input Buffer?
The inputs of my analyzer are raw Xilinx Spartan 6 FPGA I/O pins. They aren't 5V tolerant.
GadgetFactory has designed a small 5-component 16-bit buffer.
The design open source. I decided to roll my own because it was a good excuse to practice SMD soldering (there's a TSSOP chip, good for your training).
The KiCAD project is attached to this post.
The word buffer may be used a little liberal here. The signal isn't actually buffered.
It's conditioned by a 16-bit FET digital switch. A smart side-effect of that switch is used to give 5V signals the "below 3V3" drop:
Jack Gassett: The I/O board uses a bus switch chip that does not do voltage translation like most chips do.
Instead it acts as a FET switch that is an actual physical bi-directional connection between the pins.
By setting the FET voltage to 4.3V we get a voltage drop of 1V which means that the FET will never allow more then 3.3V to be output on any of the pins.
If you input 5 volts on either side it will restrict the output on the other side to 3.3V. If you input 2.5V on one side it will output 2.5V on the other side.
The benefit of this is that it is bi-directional but also very, very fast. It can operate at speeds up to 2GHz.
The IC you use is critical. Although it sounds like a generic IC (it's of the SN74XX series), not all have the voltage-drop effect.
The Texas Instruments SN74CBT16245 is known to have it. I had first purchased a NXP version and that wasn't suited for this purpose.
I've drawn my own schematic and board layout. But haven't altered the design itself. The same components, IC and pin assignments.
The right wing below is one I made in 20154. The one on the left is the new one from yesterday.
The IC is recovered from one of the then failed attempts, and the PCB from another failed attempt.
Soldering TTSOP sized ICs can be challenging.
But it's worth it. I now have a 32-bit 5V tolerant analyzer. That'll keep me going for years.