I'm planning to use a Teensy 4.0 on a custom PCB to receive (and in the future, perhaps send) CAN-FD frames (250kBaud arbitration, 2MBaud data).
As a tranceiver, I plan to use a MCP2562FD (with the Vio pin, for 3.3V signal voltages).
Question 1:
Using UART for the connection, I'm used to connecting TX and RX to RX And TX (crossed). However, the manual for the IMXRT1060 on the Teensy says that:
"FLEXCAN3_RX " is "FLEXCAN transmit pin. This pin is the transmit pin to the CAN bus transceiver."
"FLEXCAN3_TX" is "FLEXCAN receive pin. This pin is the receive pin from the CAN bus transceiver."
Which seems backwards. The same text is found for FLEXCAN2, but it's the "right" way around for FLEXCAN1. The info is on pages 2610 and 2611 here.
Similarily oddly, the datasheet for the MCP2562FD says:
"TXD" = "Transmit Data Input" and "The Dominant and Recessive states correspond to the Low and High state of the TXD input pin, respectively."
"RXD" = "Receive Data Output" and "The Low and High states of the RXD output pin correspond to the Dominant and Recessive states of the CAN bus, respectively."
So both of the devices seem to be wired counter-intuitively. That would mean I'd still connect TX to RXD and vice versa, but the directions are different to what I'd expected.
On the other hand, if the IMXRT1060 manual is wrong there - and it's wired like on FLEXCAN1, I'd have to connect TX to TXD and RX to RXD.
Question 2:
I've found some nice options for connecting to the bottom pads of the Teensy 3.x series (with double row headers), but that doesn't seem applicable to the Teensy 4.0.
I only need access to the CAN FD pads.
The other options seem to be SMD headers, which seem to be higher than DIP headers; pogo pins, where I haven't found much information of reliability for fast signals like CAN; or castellated pads, which seem like they would work well, but the board would have to lay flat against my own PCB for them to connect well, which would then interfere with the bottom-mounted SMD resistors and capacitors.
What is the most reasonable solution here? Or should I use an external CAN controller (MCP2518FD) instead?
As a tranceiver, I plan to use a MCP2562FD (with the Vio pin, for 3.3V signal voltages).
Question 1:
Using UART for the connection, I'm used to connecting TX and RX to RX And TX (crossed). However, the manual for the IMXRT1060 on the Teensy says that:
"FLEXCAN3_RX " is "FLEXCAN transmit pin. This pin is the transmit pin to the CAN bus transceiver."
"FLEXCAN3_TX" is "FLEXCAN receive pin. This pin is the receive pin from the CAN bus transceiver."
Which seems backwards. The same text is found for FLEXCAN2, but it's the "right" way around for FLEXCAN1. The info is on pages 2610 and 2611 here.
Similarily oddly, the datasheet for the MCP2562FD says:
"TXD" = "Transmit Data Input" and "The Dominant and Recessive states correspond to the Low and High state of the TXD input pin, respectively."
"RXD" = "Receive Data Output" and "The Low and High states of the RXD output pin correspond to the Dominant and Recessive states of the CAN bus, respectively."
So both of the devices seem to be wired counter-intuitively. That would mean I'd still connect TX to RXD and vice versa, but the directions are different to what I'd expected.
On the other hand, if the IMXRT1060 manual is wrong there - and it's wired like on FLEXCAN1, I'd have to connect TX to TXD and RX to RXD.
Question 2:
I've found some nice options for connecting to the bottom pads of the Teensy 3.x series (with double row headers), but that doesn't seem applicable to the Teensy 4.0.
I only need access to the CAN FD pads.
The other options seem to be SMD headers, which seem to be higher than DIP headers; pogo pins, where I haven't found much information of reliability for fast signals like CAN; or castellated pads, which seem like they would work well, but the board would have to lay flat against my own PCB for them to connect well, which would then interfere with the bottom-mounted SMD resistors and capacitors.
What is the most reasonable solution here? Or should I use an external CAN controller (MCP2518FD) instead?