CAN bus ACK issue with TJA1042

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

CAN bus ACK issue with TJA1042

1,779件の閲覧回数
peteyo
Contributor II

Hi all,

I got a CAN bus issue on S12 MCU with TJA1042 CAN transceiver.

Node A received message and 'ACK back', but host(S12 + TJA1042) could not detect the ACK.

The result is host continued to re-sent message and then bus heavy.

I found the signal level of ACK(can low to can high) is larger(over 2V) than other CAN bus signal.

Does this cause ACK fail or other error so host re-send message again and again.

By the way, if I add a PCAN tool connect to laptop and open PCAN-view to check data, host would detect the ACK(from PCAN-view??) and would not re-send again. 

The circuit and waveform are below:

pastedImage_5.png

pastedImage_3.pngpastedImage_4.png

ラベル(1)
0 件の賞賛
返信
2 返答(返信)

1,603件の閲覧回数
PetrS
NXP TechSupport
NXP TechSupport

Hi,

most probably the issue is caused by imprecise setting of CAN bit timing or insufficient bus termination. Check both.

The host is not detecting ACK pulse properly, thus get ACK error and resent the message automatically.

The voltage level will not cause issue, but must be placed at right time; differential voltage represent dominant signal.

BR, Petr

0 件の賞賛
返信

1,603件の閲覧回数
peteyo
Contributor II

Hi Petr,

Thanks your reply.

I have checked the impedance of both sides.

Only host device is 120 ohm, while connect to slave it become 60 ohm. I think this value is right.

And in S19 setting, I set BTR0 = 0xC0 and BTR1 = 0x50.

With 8M osc. the bit rate should be [1*(1+6+1)]/8M = 1us.

Is there any other registers need to check again?

BTW I used to enable CANTARQ to abort request and let the message send only once,

but this would not meet my function: a stable 250ms cycle time message report.

(the waveform is below. message loss frequently)

pastedImage_1.png

0 件の賞賛
返信