[elektro] Aszinkron átvitel kezdete
Móczik Gábor
pm_levlista at progzmaster.hu
Sat Aug 3 14:32:38 CEST 2013
2013.08.03. 10:53 keltezéssel, Erdos Zoltan írta:
> na ja, de mondjuk a proci hw usartjat hasznalom, ahol csak a baud rate
> generatort tudom allitani.
> vagy itt kotelezo bealdozni meg egy procilabat ?
Kikapcsolod az USART-ot, és használod a portlábat, "kézzel" megméred a
bitidőket.
Ha csak megszólításra válaszol az eszköz, akkor szopó van, akkor csak
próbálkozni tudsz.
Ha küld valamit, akkor méred az élváltási időket, ha szerencséd van,
akkor lesznek benne olyan pontok, amikor 1 bit áll magában, tehát egyből
megvan a bitidő. Ha nincs szerencséd, akkor több bit idejét tudtad megmérni.
Tehát próbálkozni kell a mért bitidővel, annak a felével, harmadával, stb.
Kis intelligenciát vihetsz bele, ha kiszámolod, hogy a mért idő a
szabvány sorba esik-e, annak a fele, harmada, oda esik-e, stb...
További intelligencia, hogy tárolsz valamennyit a stream-ből, és a
számított bitidővel megnézed, hogy lehet-e rá frame-t illeszteni, azaz
azzal az idővel jó helyen van-e start és stop bit. Ezt mondjuk
rábízhatod az USART-ra is, ha nem húz rá, hanem sok framing error-t dob,
akkor nem jó.
Újabb PIC-eken (már ha ez az architektúra), van hardveres baud rate
detektálás, de ez asszem 0x55 karaktert vár, ami a start bittel együtt
pont felváltott biteket tartalmaz, gyakorlatilag egy clock jel. Ha az
adó küld ilyet, akkor jó, ha nem, akkor nem jó.
More information about the Elektro
mailing list