cancel
Showing results for 
Search instead for 
Did you mean: 

Internal pull-up/down resistors in the Rx/Tx pins for CAN

kam8711
Visitor

Split from this thread.

i've had the same issue. Set the internal pull-up on Rx pin and pull-down on Tx pin.

1 ACCEPTED SOLUTION

Accepted Solutions

It's comprehensible but it should be a pull-up and not a pull down resistor. May be to handle the transients and to ensure the node are asserting recessive state if the pin is not yet initialized.

But you need to check if the transceiver has that pull-up on Tx internally:

Ex, MCP2551:

mALLEm_0-1755782104410.png

So if the transceiver has that resistor, you don't have to activate the resistor from the MCU side.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

View solution in original post

8 REPLIES 8
mƎALLEm
ST Employee

@kam8711 : You should not enable pull-down on Tx pin.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

why?

In loopback mode, Tx and Rx are internally connected by hardware. If you enable the pull-up on Rx and the pull-down on Tx, a voltage divider will be formed on Tx/Rx path by the pull-up/pull-down resistors which should be avoided.

Please keep only the pull-up resistor on CAN_Rx pin.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Thank you for reply. I didnt know that loopback mode works like that. But

in normal mode using pull-down on Tx pin is ok?

The question is: is there any reason to enable the pull up/down resistor on Tx pin?

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Many people do it so that is why im wondering….

It's comprehensible but it should be a pull-up and not a pull down resistor. May be to handle the transients and to ensure the node are asserting recessive state if the pin is not yet initialized.

But you need to check if the transceiver has that pull-up on Tx internally:

Ex, MCP2551:

mALLEm_0-1755782104410.png

So if the transceiver has that resistor, you don't have to activate the resistor from the MCU side.

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.

Thank u for explanation