S32K388CVB-Q289 Driving PTC21

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K388CVB-Q289 Driving PTC21

Jump to solution
1,372 Views
AhmadKhalil
Contributor I

Dear Team

I am using S32K388CVB-Q289, and enabling the FlexCAN_0 along with the TJA1153 CAN0. I am connected a second node on the physical bus for testing porpose.

But the FlexCAN_0 gets Ack errors upon transmission

AhmadKhalil_0-1764329071712.png

When I double check that the TJA1153 transceiver is enabled, I measure pin 5 in J95 But it reads ~2 Volts. And when I change the GPDO85 register between 0 and 1, the voltage read on the pin is not affected.

AhmadKhalil_1-1764329191048.png


Although I can see that pin is Set high in GPDO85 register, and that the Output driver is enabled in MSCR85

AhmadKhalil_2-1764329282677.png

 

AhmadKhalil_3-1764329341274.png

 

Configuration:

AhmadKhalil_4-1764329501186.png

 

AhmadKhalil_5-1764329565448.png

AhmadKhalil_6-1764329609295.png

 

 

0 Kudos
Reply
1 Solution
1,260 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

by default the device is in Vanilla state so must be configured, either from host or remotely. After configuration, the state can be changed, but in examples it is commonly kept in Vanilla state, so init is needed after each power on.
If the posted example is working between FlexCAN modules on the board, it should work as well if just single one is connected to your CAN tool. In that example the ID being transmitted is added to the CAN0 transceiver's passlist, other configurations are left as default.

You can refer to below example, done in IP level,  for another init sequence.
https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500...
It expects transceiver in Vanilla state as well and set transceiver's passlist to pass all std and ext ID and do not block any message coming from bus. Finally leaving configuration mode without writing to non-volatile memory nor locking the transceiver (keeping Vanilla).

BR, Petr

 

View solution in original post

0 Kudos
Reply
3 Replies
1,335 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

to check pin level simply remove J95.5-6 jumper and check MCU (5) and TJA1153 (6) side.
Note TJA1153 has VIO connected to VDD_HV_B_PERH (VDD_HV_B 3.3V) using J804, while used MCU pins are on VDD_HV_A (5V)

There is no need to drive EN pin, unless user want to switch between TJA1153 modes. Both EN and STB_N are pulled up to VIO by external resistors. STB_N should be driven low by MCU to allow local configuration if device is in Vanilla state. At the end of config TJA1153, STB is put back to Normal mode with EN, STB_N high.

If you see message on the bus, but it is not ACKed, most probably it is due to inconsistent CAN bit timing between both nodes.

 
BR, Petr
0 Kudos
Reply
1,277 Views
AhmadKhalil
Contributor I

Thanks for your response.

The voltage levels seems now good. EN and nSTB go to high. Still I get Ack errors, with nothing appearing on the bus in my test measurement tool.

Is it possible that my transceiver is in Vanilla state, and hence it is not operational till I configure it once?
I read the example, but it would be way easier for my current setup to just send the CAN messages from test tool, rather than connecting the transceivers to each other. Can you share with me the initialization sequence, what I should send through CAN for a basic configuration that just send and receive (no security requirements needed)?

0 Kudos
Reply
1,261 Views
PetrS
NXP TechSupport
NXP TechSupport

Hi,

by default the device is in Vanilla state so must be configured, either from host or remotely. After configuration, the state can be changed, but in examples it is commonly kept in Vanilla state, so init is needed after each power on.
If the posted example is working between FlexCAN modules on the board, it should work as well if just single one is connected to your CAN tool. In that example the ID being transmitted is added to the CAN0 transceiver's passlist, other configurations are left as default.

You can refer to below example, done in IP level,  for another init sequence.
https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500...
It expects transceiver in Vanilla state as well and set transceiver's passlist to pass all std and ext ID and do not block any message coming from bus. Finally leaving configuration mode without writing to non-volatile memory nor locking the transceiver (keeping Vanilla).

BR, Petr

 

0 Kudos
Reply