Hi everybody,
I'm working on a project with a large amount of
pic's in a peer to peer network configuration.
Each station has to recieve compute and send all the data at
the 'same' time.
To do so I use a serial recieve interupt, which
move the data to a small buffer.
Each program cycle I get a byte out the recieve
buffer, compute it and send the byte away.
Everything works perfect except when I send a
large amount of data via the bus with no pause between the bytes, then I am
loosing a byte ones in the x thousand bytes. I checked my buffers timing etc,
but it seems to be all okay.
When I use a little delay now and then in the transmision { 2
ms after 1000 bytes written } it works fine.
I discovered that the frequency in wich the fault occured
depended on the caps that I used with my crystal. When I use
a single oscillator for all my stations, it all works fine.
So I made seperate high precision oscillators for each station
and reduceded the fault so only one byte in the several hundreds of thousands is
lost.
Apart from the bytes that gets lost some others gets
corrupted, dispite the parity check.
There does not occure a single parity or framing
error.
Has anyone any ideas on what is causing the problem, I'm
getting very tired off this problem.
Thanx,
Remco Brenninkmeijer