I have a project where I am interfacing with PSX/PS2 controllers using an Arduino. To give a quick run down, the protocol is simply modified SPI, and the controllers take approximately 3.3v for power. To shift the logic level of the Arduino, I am using an IC, TXB0106 bidirectional, 6 bit level shifter (https://www.ti.com/lit/gpn/txb0106). Bidirectional is a little overkill, but I liked the convenience of using a single IC for all the pins.
So I've connected the IC using a breakout board to a breadboard, and I've connected the B pins to the Arduino and VccB to 5v. I've also connected the A pins to the PS2 controller and VccA to my 3.3v input, currently it is just the Arduino's 3V rail. I've also connected the OE, "enable" pin, to 3.3V.
The issue is that, when I run a simple test program with the Arduino that switches a pin between 0v and 5v rapidly, the output will sometimes show 0v and 3v to match, but sometimes rather than switch from 0v to 3v or vice versa, it goes low impedance, and the scope reads like 1.5v for the entire interval. I can attach a screenshot or a file of the scope to maybe communicate what I'm saying better. I don't want to give up on this IC yet but I am unclear as to what I could be doing wrong. The data sheet seems to indicate that no further components are required except maybe bypass capacitors. I don't have them installed currently. I'm not sure what not having them does. I don't really have an electronics background so I'm sort of in the dark here. Any advice would be appreciated!