|
Hi all!!
We are developing an application that sneds & receives messages through CAN. We are using the evaluation kit AT91SAM7X-EK 512. And we have based on the CAN basic sample application available at atmel website. So, we are using that driver and it is working fine, but the problem comes when an external hardware is sending to the evaluation board a set of packages with the same ids in a short period of time(around 36 packets in less than 1 second), and what is happening is that we get the first 6 values but we are missing the rest (around 25 more or less).
The configuration of the mailboxes we have is the following: from 0 to 6 configured as reception mailboxes with no acceptance mask (so we can get any message from CAN), we also tried with the latest in reception and overwrite mailbox (number 6), but in that case we get the first five packets and the latest one, so we are missing the others in the middle. And particularly, waht we are doing is that we are getting the handler for CAN called CAN_Handler, the same as the one in the exmaple, and we store the packet received so we can process it later, and we are able to receive more packets, but it is not working 100% as we are losing some of them.
We think that the problem could be that the mailboxes are not free when we get more packets and that is why the handler is not triggered and so we are losing the packets. We also thought in the bus speed (configured for 1 Mb), but we connected a CAN sniffer, and we can see all the packets, so that is not the problem. So, does anybody know what could be the problem??
We would appreciate any information,
Regards,
Javier.
|