Op 8 september 2023 05:48:41 schreef KGE:
[...]
Huh? Een UART is niet voor niets 'Asynchroon' en in de praktijk gebruik je nooit een 1:1 deler voor de clock van je seriele data bij een UART. Meestal is de verhouding 1:16 of 1:64 waardoor er geen enkel probleem is om een startbit te herkennen en ruim binnen de marge 1 byte foutloos te ontvangen (daarna begint het spelletje opnieuw).
Nee. Er zijn ongeveer tien bits (het stopbit moet je ook correct ontvagnen. Je begint te samplen in het midden van het eerste bitje. Als je dan op het begin van de bittijd aan het samplen bent tegen het eind van de byte dus dat je in de tijd van 8.49 bits van de zender tot 9 bits hebt geteld met de ontvanger, dan zit je in het laatste bitje ipv in het stopbit te samplen. Goed. de data is dan al correct ontvangen, maar je krijgt op even bytes een frraming error.
Dit is een afwijking van maar iets meer dan 5%. Zelfs als de zender een kristal heeft, kan je er officieel niet op vertrouwen dat een rc-clock atmel het kan ontvangen.
@blup: Dat zeg ik ook: In de praktijk zijn ze veel beter, maar de specs zeggen: je zou rekening moeten houden met 10% afwijking.
Als Microchip de atmel familie de das om wil doen, brengen ze een ex-atmel batch chips in omloop die 9% snellere RC hebben. Prima binnen spec toch? JE KAN ER NIET OP VERTROUWEN. hoeveel je ook getest hebt. Baudrate maakt niet uit.
P.S. Ik zat te denken aan twee atmels waarbij er eentje een "+9%" afwijking heeft en de andere een "-9%". Allebij binnen spec. En omdat het allebij atmels zijn zullen ze de zelfde afwijkingen hebben voor specifieke baudrates. Maar inderdaad die "ongeveer 9%" kan je ook krijgen door 230.4 te willen doen met een ongeschikt kristal. Wacht effe. we hadden het over de RC interne klok. Die 8.5% afwijking is omdat je 250k moet instellen ipv 230k4....
[Bericht gewijzigd door
rew
op 8 september 2023 10:57:29
(13%)