[pso] [Tema2][lin] SETLINE semnificatie baud

Andrei Voinescu voinescu.andrei at gmail.com
Sun Apr 3 12:57:06 EEST 2011


2011/4/3 Vlad Dogaru <ddvlad at rosedu.org>:
> On 4/3/2011 9:28 AM, Ciprian Mihai Coman wrote:
>> Driverul trebuie sa verifice valorile argumentelor primite sau putem
>> presupune ca sunt intotdeauna corecte?
>
> Din câte îmi amintesc, checker-ul nu face teste în care trimite
> line_info nevalide. Și nici nu e precizat nicăieri că trebuie să faceți
> verificarea. Deci nu, nu e nevoie să verificați.
>
> Vlad
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii

Salut,

Presupun că te referi la baud rate. Baud rate-ul nu poate fi greșit,
acea valoare (96,48,24,12,6) este divizorul folosit pentru a obține
frecvența la care se comunică (și probabil frecvența internă pentru
lucrul cu datele). Dacă te uiți în datasheet (informația la prima
mână), la pagina 15 ai un tabel similar cu cel de pe ghidul de
interfațare și pe pagina 16 ai explicația.

Formula este divizor = frecvență / (baudrate * 16). Singurul divizor
incorect este 0. Într-adevăr, la unele valori o să se împartă bine,
iar la altele va apărea o parte fracționară ( partea fracționară /
divizor * 100 = error rate în procente). Valoarea cristalului (the
unlikely value of 1843200 Hz) este aleasă special ca să se împartă
exact pentru cât mai multe baud rate-uri. Prin comparație, la avr
atmega16 (yes, PM) ai un tabel pe care apar și cristale cu 1.8432MHz
și cristale de 1,2,4MHz. O să observi că acolo sunt erori la fiecare
baud rate în dreptul cristalelor cu frecvențe multiplu de 1MHz (sau
poți calcula și singur).

Valorile comune provin cel mai probabil de la primele modem-uri  cu
300,1200 de biți/s. Și numărul de biți/simbol și baud rate-ul au
progresat prin puteri de 2.

TL;DR Orice divizor în afară de 0 e bun pentru baud rate, doar că apar
erori la unele valori.

Andrei


More information about the pso mailing list