Hello everybody,
I'm working with TWR-VF65GS10 (SCH27442-RevG1/700-27442-RevJ) + TWR-SER2 (SCH26185-RevD/700-26185-RevB) and trying to run a FlexCAN application over the MQX 4.1.1 (on A5 core) using IAR + i-Jet.
In order to connect the FlexCAN signals at the tower, was inserted a 0 ohm resistor in R10 and R11 of TWR-VF65GS10.
Also was performed the workaround for e5295 (document VYBRID_2N02G.pdf) that lock the FlexCAN module in Freeze Mode.
The application use the new FlexCAN driver (fsl_flexcan_driver.c) to initialize the controller and try to send a data frame.
After run the application two problems were observed:
#1 - A data frame is sent only if the baud rate used it is 250Kbps or 125Kbps.
Into this context, a wave analysis was performed and a strange behaviour was observed on the change of bit status.
In order to exemplify this problem was sent in attached the oscilloscope images for 250Kbps and 500Kbps.
My question is: Is this a normal behaviour???
#2 - Even when a data frame is successfully sent (using 250Kbps or 125Kbps) the command "flexcan_send" remains blocked.
The data frame sent is confirmed by a sniffer on CAN bus.
Performing a more detailed analysis, was observed that execution flow is blocked while it wait an event.
This code is located into the "fsl_flexcan_driver.c" file in the "flexcan_send" routine (line 437).
The execution flow is blocked in the following code:
// Wait for the event
if (_lwevent_wait_ticks(&event, 1 << mb_idx, FALSE, 0) != MQX_OK) {
printf("\nEvent Wait for send failed");
}
Any suggestion???
I will appreciate any help with this situation.
Thanks.
Original Attachment has been moved to: FlexCAN_images.zip