Measuring if a transistor can work for SPI/UART when doing logic level conversion

logic-levelspiuart

I need to convert 3v3 to 5V and 5V to 3v3 for SPI/UART. I found many options. But I'm still confuse whats good for me. Because Transistors and few other components has rise and fall time. I want to know if a transistor is able to get to the speed that I want of SPI/UART.

My only concern here is about speed, not voltage threshold.

Lets say I want SPI clock speed of 1MHz, how do I know if specific transistor can able to work properly with it.

For example, SparkFun Logic Level Converter – Bi-Directional

The above product is using BSS138, according to its datasheet. It's total fall and rise time is (5 + 18 + 36 + 14) = 73ns

What I think is, convert 1 frequency to nano second and check if its higher than the total fall and rise time. I'm not sure about duty cycle of clock but I assume its 50%.

So if I need 1MHz clock speed, it would be 1us for each freq. Divide it by 2 as duty cycle is 50%. Making it 500ns.

Now reducing 500ns – 73ns = 427ns of actual duty cycle. But I do not know if 427ns is enough for SPI/UART ? or I'm completely wrong about whole thing ?

Best Answer

At 1Mhz your timings should be more than adequate. however, make sure you drive the transistor pretty hard to achieve your rise/fall timings.