Hi Good People,
I'm having a problem of getting CAN0 working on my S32K142 q100 evb. I'm following AN5413 (S32K1xx_cookbook), the example S32K142_Project_FlexCAN. I also tried a cople of example projects from the RTM SDK v.3.0.
I expect to see some bit pattern on the CAN_Tx pin (PTE5) with the scope (for now I'm not bothering with UJA1169).
But nothing to be seen there. I followed all known to me guides: the board is powered with 12V; all PCC and MUX are set.
If a switch to CAN0 loop-back in CTRL1 reg. I can see the can engine is working. As soon as I switch CTRL1[LPB] = disable, the MB command code (0x0C for Tx) just stays and no timestamp update happens. I guess I'm missing some not so obvious, but crucial detail in the software config. or my board's PORTE is damaged (or any other hardware issue).
Can you give some guide lines, where to look for resolution, please.
I have no other device to listen for the CAN frames, just a bus monitor - CANape app.
Developing env. is S32DS Version: 2018.R1 .
Debugger: Lauterbach/S32DS
Best regards
Hi,
seems either transceiver is not enabled or pins are not configured well. You should see at least error pattern on TX line if transceiver is disabled, but this require correct pin configuration. FlexCAN must see bus free (high level on RX pin) to be able to start transmission. So check ESR1 register after leaving Freeze mode, if SYNC and IDLE bits are set, if yes you should see some pattern on TX line after message is sent, unless TX pin has wrong configuration.
Regarding UJA1169; by default SBC is in forced normal mode and CAN transceiver is enabled, unless SBC is reprogrammed and so leaved forced normal mode.
BR, Petr
Hi and Thank you for the reply.
As I see no activity on the Tx pin, I admit the pin driving logic might be damaged (could this happen if I short Tx and Rx pins? PTE5, PTE4). When I (test)drive PTE5 and PTE4 pins as regular GPIOs, they seem to work properly. Can you advise any method of testing pins if they were being damaged, please.
I see that here the key point is "FlexCAN must see bus free (high level on RX pin) to be able to start transmission.", so can I somehow simulate this condition, in case I do not have working CAN bus?
Thank you
BR
Hi,
if the PTE5 and PTE4 pins are working as GPIO, it should work for FlexCAN too, if function is selected well.
Simple testing of FlexCAN functionality and pin config is to connect TX/RX together, without transceiver, and sending a message. You should see message transmitted still. Not sure if this is possible on EVB, to disconnect transceiver.
Otherwise, measure RX level in idle state. Should be high and this should be reflected in ESR1 register.
BR, Petr