S32K344 CAN Trans Error

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K344 CAN Trans Error

跳至解决方案
933 次查看
RegulusCheng
Contributor III

Hi, NXP friends

I am working with S32K3X4EVB-Q172(Part of MCSPTE1AK344), using simulink in matlab 2021b.

I have problem trying CAN trans Demo of MBDT:

I use CAN FD transmit EBT example, the board's CAN0H/CAN0L is connected to an USB-CAN device. After build and download, the RED_LED lights up, which shows there is an can error.

I have set the board config to S32K344-172,and other demos like Dio is working right. I wonder if the TJA1153_init is not set correctly. I am sure the EN/STB/ERRN pins are right, but I am not sure what should be write into the canExdHwId.  I have tried 6 (default value), and 4(Interrupt/CanObjectId - 4 ), 3 (Polling/CanObjectId - 3 ) accoring to this thread:how to use MBDT to initialize the TJA1153 CAN on ... - NXP Community  ,but still not work.

Considering the reply speed,  I ask this question in case someone know the reason and can give me some suggestion. Tomorrow I will try to get error Info through the FreeMaster (Sometimes the  Software just can not open, and may need rebot the computer)

Hope someone can give me some suggestions, thanks!

RegulusCheng_0-1705407631057.pngRegulusCheng_1-1705407663502.png

RegulusCheng_2-1705407696285.png

 

 

Regulus Cheng

0 项奖励
回复
1 解答
915 次查看
RegulusCheng
Contributor III

After one-day rest, the problem solved ifself: the bule LED blinks and I can receive the message board sent.

It's wired because I didn't change anything today, just power up the board and then receive the message correctly (I tried to shut down and power up the board yesterday, too). 

It shows that my configuration yesterday is right: the canExdHwId should be set to 3, whitch is the "Polling/CanObjectId - 3" in configuration file. But I don't know why should be this because I chose "CanHardwareObject_Can0_Tx_Interrupt" in CAN write model, not "CanHardwareObject_Can0_Tx_Polling". Why canExdHwId should be 3, not 4 (Interrupt/CanObjectId - 4)?

 

在原帖中查看解决方案

0 项奖励
回复
8 回复数
916 次查看
RegulusCheng
Contributor III

After one-day rest, the problem solved ifself: the bule LED blinks and I can receive the message board sent.

It's wired because I didn't change anything today, just power up the board and then receive the message correctly (I tried to shut down and power up the board yesterday, too). 

It shows that my configuration yesterday is right: the canExdHwId should be set to 3, whitch is the "Polling/CanObjectId - 3" in configuration file. But I don't know why should be this because I chose "CanHardwareObject_Can0_Tx_Interrupt" in CAN write model, not "CanHardwareObject_Can0_Tx_Polling". Why canExdHwId should be 3, not 4 (Interrupt/CanObjectId - 4)?

 

0 项奖励
回复
901 次查看
robertv
NXP Employee
NXP Employee

Hello @RegulusCheng ,

The TJA_1153 requires a complete disconnection from power supply and reconnection and it definitely seems unusual that it did not work the first time you tried it. I must mention that a reset using the button on the board is not enough to get the TJA_1153 to switch to the normal operating mode.   

To answer the second question, the mechanism of sending CAN messages is based on interruptions, thus the hardware object chosen for the Can_Write block is the one that is enabled for interrupts.

As for the other hardware object, it is used to communicate with the TJA_1153 transceiver with the purpose of selecting the operating mode. 

Regards,
Robert V

0 项奖励
回复
207 次查看
RegulusCheng
Contributor III

Hi Robert, @robertv 

I met this problem again with my second S32K3X4EVB-T172, the red LED is on, which shows that there is an error in Initialization. Unfortunately, this time it didn't solve itself after 2 days of power off.

I noticed the can phy on this board is TJA1443, but the function I used is TJA1153_Init, is this universal? I didn't remember what phy was on my last board.

hope for getting your reply, 

 

Thanks,

Regulus

0 项奖励
回复
173 次查看
robertv
NXP Employee
NXP Employee

Hello @RegulusCheng ,

The TJA1443 does not use the same initialization sequence as the TJA1153. In fact, it has a simpler initialization process. It requires setting the STB and EN pins of the CAN instance you are going to use to High.

You can use the Dio block, and the WriteChannel function to set the STB and EN pins to High and that should take care of the initialization. 

Could you try this and let me know if it fixed your issue?

Regards,
Robert V

0 项奖励
回复
94 次查看
RegulusCheng
Contributor III

Hi Robert,

Thanks for replying!

Yes, it works well. After reading the document about TJA1443, I tried to give high outputs on these two pins using the Dio module and the transmitter can work now. 

But I can not remember why this initialization function can work on my last S32K3X4EVB-T172, part of the Motor Control suite. Does the old version of this board use TJA1153?

 

Regulus.

0 项奖励
回复
80 次查看
robertv
NXP Employee
NXP Employee

Hello @RegulusCheng ,

Glad it worked.

You might be right in your assumption that the new version may have a different transceiver.
I asked a colleague about this and they confirmed that they found two S32K3X4EVB-T172 boards from different revisions, that had different transceivers. 

From what I understood, the SCH-53148 Rev B had the TJA1153 transceiver, while the SCH-53148 Rev B1 has the TJA1443.

Regards,
Robert V

0 项奖励
回复
52 次查看
RegulusCheng
Contributor III

Thanks, this information helps a lot.

0 项奖励
回复
886 次查看
RegulusCheng
Contributor III

Hi, Robert V

Thanks for your explanation, it is very useful for me to understand the mechanism! I

have another problem using FreeMaster. I will try to solve it today, and if I fail, I may ask for your help tonight in another thread

Regards, 

Regulus

0 项奖励
回复