Dear TI team,
we're looking for ways to implement synchronization over CAN networks.
CANopen for example has a "SYNC" object that would allow multiple nodes to be synchronized relative to that SYNC message. There are of course limits to the precision because CAN nodes don't "know" about the cable transmission delays but instead rely on compensating that with slower baud rates at larger distances, but we need to at least aim for something that is "as good as possible".
According to the TRM, the MCAN controller in the AM64x supports timestamping of messages, either using an internal timestamp counter that is clocked at a multiple (1-16) of the CAN bit rate or using an "external" timestamp counter, where "external" appears to mean "external to the MCAN IP re-used in the AM64x". On the AM64x the TRM explains that this "external timestamp counter" is clocked by ICLK (MAIN_SYSCLK0 / 4) divided by a 24-bit prescaler.
Unfortunately I couldn't find any means to generate cross-timestamps between either the MCAN's internal timestamp counter or the external timestamp counter and any of the other "timesync" hardware in the AM64x.
Is there any way to correlate the MCAN timestamp with e.g. one of the CPTS instances or the GTC, apart from "software" synchronization, where I read both the MCAN timestamp counter and "the other" timestamp "close enough" to each other?
Regards,
Dominic