Yahoo Groups archive

68300

Index last updated: 2026-04-29 00:01 UTC

Message

TouCAN Dropping Messages

2003-10-23 by agawam1964

I have five MC68376 systems communicating with a host PC via CAN 
using a proprietary protocol.  We're running at 125Kbaud.  One 
channel is Rx, one channel is Tx.  The Tx we more or less use in a 
syncronous (polled) mode, with the Tx interrupt basically just 
clearing the IFLAG register.  The Rx is normal interrupt driven.

For the most part everything is running smoothly.  Most of the CAN 
traffic occurs in bursts separated by several seconds, which all five 
systems weather without incident.  However, the host (Dell XP system) 
needs to poll one system at a rate of about 10 hz, and every 100 
seconds or so I'll get the Rx Buffer overrun error on that system.

I instrumented the ISRs to toggle an I/O pin and found that the Rx 
ISR is 500 usec.  The Rx ISR where the error is dectected doesn't 
seem to occur in heavy traffic; typically the prior ISR occurs a few 
msec before - definately no overlap with prior Rx or Tx ISRs.  

To help debug this I moved all other ISRs to a lower priority INT, 
including the heartbeat PIT, with no noticeable effect.  My past 
experience suggests to me I'm not locking-reading-clearing the 
buffers and registers correctly, but I've reread the manual about n 
hundred times and can't see where I'm going wrong.  Is there some 
subtlety about reading the TouCAN registers and buffers that isn't in 
the manual?

--John

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.