[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