On Saturday 21 May 2005 06:55, Dave Hylands wrote:
> Hi Florian,
>
> > perhaps I missed it, but what's the clock speed of the Atmel 128 going to
> > be? I'm asking, cause we had big troubles with the uart at some rates
> > (especially, as the Gumstix detects bad bits and sets the whole byte to
> > 0x00. Therefore multiplying the errorrate by 8).
> > If used for uartspeeds bellow 250k 14.7456MHz or 18.4320MHz would be
> > optimal, otherwise the 16MHz is perfect...
>
> The early prototypes had 8MHz crystals, but the intention is to have
> 16MHz on the production units.
This would mean, that reliable communications with the robostix are only
possible at 250k or higher...
(ATmega128 specs, page 197, table 85: Examples of Baud Rate Settings.)
At 4800, 19.2k, 38.4k and 76.8k one would "only" have 0.2% errorrate, but
afaik this is a "per bit" errorrating. When multiplying by 8 the errorrate
would be 1.6% bad bytes. Suppose we checksum 10bytes. In this case we would
loose 16% of our sent data. (In our specific case we checksummed 13bytes, and
lost more than 20%...).
As the Robostix is going to communicate with the outside world many connected
devices won't be able to communicate at 250k or add checksums, and hence
loose some data...
I'm not saying, that 16MHz is bad, but you should at least consider for
instance 14.7456MHz (which has the inverse problem: 7.8% error from 250k on).
// florian

This function will terminate, if run infinitely.
void f() { while (random() != 0); }
