Logic Level Shifters (on the BBB)
The Beaglebone
Using the BeagleBone PRU_1 as inputs, you have to take care of what other functions are also present on the pins. For example, the PRU1 0..8 pins are also BOOT configurations! These pins tell the BBB what to do on powering up.There is a specific combination of pull-up and pulldown resistors on the port to setup modes for the CPU.
The Simple FET shifter (Bidirectional)
From the circuit, you can see that R3 is a pullup. Adding this will override the BBB's on-board BOOT strapping if you use it on PRU_1 and you may notice that your board will fail to boot.
Zener Clamps
Conclusion : Not suitable for high speed logic
So far I am favouring the above circuit - I have to confirm that it can handle the speed I need and it doesnt skew the signal edges.
After some tests - this is unsuitable for high speed using the components I had to hand.
The blue trace is the 5V signal, the yellow is the output to the Beaglebone - this is not good.
TXS0108E
NOTE! there are 2 different versions.. TXS and TXB - One is for open collector and the other is for Push-Pull. I bought the Open collector version.. Wrong part for a BUS configuration.
A range of chips from TI are available for the purpose of level shifting.
A range of chips from TI are available for the purpose of level shifting.
You can buy read made tiles from EBAY and other online shops.
From the Breakout, there is quite a special feature that is available when using this chip. On the bottom right is an OE signal input. This allows for the outputs of the level converter to be tri-stated to Hi-Z and only when the BBB cpu has completed its bootup, this pin can be asserted which wakes up the converter.
This allows for the PRU1 bus to be 'left disconnected' until linux is running, which at that point I can switch on using a GPIO
I have now settling on...