I run the MSCAN Demo of S12ZVM ( AN4975 Using MSCAN on the MagniV Family) on the S12ZVMLEVBLIN.
But it will wait for CAN0CTL0_SYNCH forever(the CAN_init func in the CAN.C).
Why does it always SYNCH failed?
Is there a problem with the transceiver or USBCAN(another CAN node)?
if we don't wait for SYNCH, Just send frame from CAN,it inidcate the problem isn't at my MCU,is it other things?
你好,我也在做S12ZVM的CAN通讯,我没找到带CAN的工程,你说的AN4975的代码,官网上怎么找不到,
Hi,
In order to synchronize you need 11 recessive bits. Does your bus provides this status. (search by scope)
For synchronization, in the simplest case, i tis enough to connect Rx to log. 1.
A synchronization problem looks to be the issue of the bus the device is connected to. The issue could be the transceivers are not compatible or bus is set to different communication speed. Have you tried to use loopback? If it is working then device could be OK. Next thing I usually test is a communicaton between two CAN nodes without transceiver in order to test transceivers compatibility. The principle is described in a general principle application note in the Figure 2.: https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf
However this solution requires either a device with two CAN peripherals or two devices which are able to accept this solution....or.... only one device, in this case you are able to synchronize but there is no communication (ACK).
Finally, it can look like stupid comment, but some of our boards, even a connector is populated, they do not have transceiver populated on the board.
Best regards,
Ladislav