This question is related to Question

I wonder how much hardware is needed to not make HAL_CAN_Transmit give a TIMEOUT...

Is only the STM32F103C8T6 needed (in my case)

Or a CAN transceiver attached to Can Rx and Can Tx (PB8 and PB9) ?

Or is it also needed that the CAN transceiver is coupled with another CAN transceiver?

Or is there a mistake in my circuit:

What I connected:

- STM32F103C8T6 #1: PB8 -> CAN Transceiver 1 RX
- STM32F103C8T6 #1: PB9 -> CAN Transceiver 1 TX
- CAN Transceiver 1 CANL -> CAN Transceiver 2 CANL
- CAN Transceiver 1 CANH -> CAN Transceiver 2 CANH
- STM32F103C8T6 #2: PB8 -> CAN Transceiver 2 RX
- STM32F103C8T6 #2: PB9 -> CAN Transceiver 2 TX

(and of course all VCC/GNDs)

  • 1
    \$\begingroup\$ The transceivers is not what's important (though you'll of course need them), but the controllers, that reside inside the MCUs. You need to have at least 2 CAN controllers connected to the bus and they must both be enabled. They should also use the same settings for baudrate (and preferably same settings for time quanta too). \$\endgroup\$ – Lundin Oct 19 '17 at 15:14
  • \$\begingroup\$ @Lundin I assume the CAN controller is inside the STM32 (?) Do you mean I should connect directly the PB8 from one STM to PB9 to the other STM and vice versa? And not use the transceivers at all (as first test)? \$\endgroup\$ – Michel Keijzers Oct 19 '17 at 15:18
  • 1
    \$\begingroup\$ No. I'm saying that tou should make sure you have 2 microcontrollers and 2 CAN transceivers. \$\endgroup\$ – Lundin Oct 20 '17 at 6:49
  • \$\begingroup\$ @Lundin: that's what I did, I added the circuit in the other question. \$\endgroup\$ – Michel Keijzers Oct 20 '17 at 9:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.