10 MHz fast voltage-level-shifter

Hello Everybody,

I am testing different microcontrollers in combination with different CAN-controllers and CAN-tranceivers to make the CAN-BUS work.

So far I have successfully tested two Arduino Unos with Niren CAN-BUS-module with MCP2515-controller / NXP1050-CAN-tranceiver

two Unos with each other
one Uno with an ESP32-S3 / adafruit TJA1051-tranceiver

Raspberry Pi pico with Niren CAN-BUS-module with MCP2515-controller / NXP1050-CAN-tranceiver combined with an Arduino Uno and same Niren CANBUS-module.

As the RaspBerry Pi pico is a 3.3V device the Niren CAN-BUS-module with MCP2515-controller / NXP1050-CAN-tranceiver is supplied with only 3.3V

The voltage-difference is only around 1.2V which should be 2.0V

This project is for educational purposes. So I would like to have the full voltage-difference of 2V. The MCP2515-CAN-BUS-controller can be supplied with 5V but then the SPI-bus would have 5V which is too much for a RaspBerry Pi pico as a 3.3V device.

The clocksignal of the SPI-Bus has 8 MHz. This means a voltage-level-shifter must be capable of working with a minimum 10 MHz.
This is pretty fast.

Does somebody know of such a fast voltage-level-shifter or of a different MCP2515 CAN-BUS-module that has a different CAN-BUS-tranceiver than the T1050

You can use 74LVCXXX to go from 5v to 3v3 to 1.6v

You can use 74AHCTXXX to go from 3v3 to **5v.


example:

  • SN74LVC1G34 to go from 5v to 3v3

  • SN74AHCT1G08 to go from 3v3 to 5v.


Also:

TXS0108E

Try this link: https://www.ti.com/lit/ds/symlink/txs0108e.pdf This is an IC that will do it for you at the speed you want.
Another alternative is to change the TJA1051 transceiver with a 3V3 one, the MPC2515 works of 3V3. I started to do this and found several of the MPC2515 modules had 3V3 transceivers already installed. They came from china about 18 months ago.

Hi @gilshultz
thank you very much for your link. I looked up the TXS0108E-datasheet and it says


So I looked up what is the difference between push-Pull versus open-drain

While a push-pull sensor has two MOSFETs that alternately conduct to provide high or low output signals, an open drain sensor has only one MOSFET . When a magnetic field turns the open-drain sensor on, the MOSFET conducts, allowing current to sink through the pull-up resistor to ground.

Does this mean if the circuits connected to the TXS0108E-chip have a PUSH-PULL-output/input the max. speed is 110 Mbps But to what frequency does 110 Mbps equalise?

Then the interesting question is:
does the MCP2515 use PUSH/PULL or open-drain on his output-pins / input-pins?

Open-drain only applies to outputs.

The datasheet specifies VOH and VOL. Because VOH is specified at a current rating (meaning that the IC can supply current), it's push-pull.

To write all the details. The datasheet of the MCP2515 like here

Has a table that specifies a VOH and VOL.

And this specified current and specified voltage tells me the MCP2515 works in push/pull-mode?

Is this correct?

Yes. It's the VOH that you marked. The SO pin that connects to the Arduino (or other device) can source (deliver) 400 uA. An open-drain / open-collector output can not source anything.

Compare it with the datasheet of e.g. a 74HC05 which has an open-drain output (chapter 9). There is no specification for VOH. There is a VO in chapter 7.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.