Posted By: Brouk (Zrovinka ten ...) on 'CZhardware'
Title: RS232 uprava
Date: Wed Oct 11 11:57:19 1995
Cauky hojky, hardwaristi :-))
Jak jsem slibil, predhazuji zde sve reseni problemu s tou modifikaci RS-ka.
Hnedle v uvodu se omlouvam vsem, kterym jsem nasadil brouka (nebo snad
Brouka?) do hlavy s tou moji zminkou o retriggeru... jak jsem tak jel domu,
houpaje se jsa zavesen na tramvajovem madle, doslo mi, ze jsem opet placl
hloupustku, nebot funkce retriggeru by se hodila na presne opacny
problem... no nic. Takze zde je me reseni a rozneste ho na kopytech,
paklize ho shledate zmatenym. Podotykam, ze jsem to nezkousel v praxi :-))
<Pro ty, kteri nevedi, o jaky problem jde - prectete si postik cislo ...>
Predpokladam, ze vstupni signal je upravenej do CMOS urovni - takova RSacka
nula v -12V by asi nedelala dobrotu. Pokud tuhle mrsku hodlas napajet primo
z RS232 konektoru PCcka (treba ze signalu DTR nebo RTS) +12V, tak na
"pojisteni" vstupu a napajeni budou hadam stacit diody.
Takze - pokud by stacilo, aby kazda "jednicka" klasickeho RSka byla
reprezentovana kladnym pulzem o delce poloviny trvani tehle jednicky, staci
k reseni daneho problemu jeden CMOS obvod 4047 zapojeny jako gatovany
astabil. Signalove by to tedy vypadalo asi takhle:
t(B)
|<----->|
..neco.. 1 1 1 0 ..neco..
v v v v
_______________________
Vstup (RS232) _____| |______
___ ___ ___
Vystup z pripravku _____| |___| |___| |__________
|<----->|
t(A)
Cas t(A) se voli pomoci hodnot R a C soucastek pripojovanych na vstupy
Ct, Rt a RCt obvodu 4047 a vzorec pro jeho vypocet je nasledujici:
t(A) = 4.4 * R * C (+7%, -0%)
Vstup (signal z RS232) nam hradluje oscilator, ktery (aspon podle vnitrniho
zapojeni obvodu) by mel byt synchronizovanej tim spoustecim impulzem. Jak
je vam asi vsem jasny, to t(A) by melo byt presne rovno delce trvani RSacke
jednicky t(B) ...coz si nebudeme namlouvat, je temer neproveditelna
zalezitost. Krize by nastala, kdyby t(A) bylo mensi nez t(B), protoze
bychom dostali na vystupu falesnej impulz z oscilatoru, kterej by vypustila
jeste ta "stara" a uz jednim pulzem reprezentovana jednicka. Kdyz ale
nastavime t(A) zlehynka (ale opravdu zlehynka) vetsi nez t(B), tak, aby nam
ty presahy ani po odvysilani FF "nepreskocily" zadnou jednicku, pri dalsi
nabezne by se to melo zase sesynchronizovat. (Jo...nemusim snad rikat, ze
ta nula musi prijit prave nejdyl po tom FF-ku plus minus autobus nebo driv
;-))
No - takze ted uz jen zbyva nakreslit zapojeni pinu toho integrace a
zapojeni nozicek toho pripravku: (mozna to neni poznat, ale je to klasicka
DIL 14)
_______
_| |_| |_
pripojeni vnejsiho C |_| |_| Udd napajeni
_| |_
pripojeni vnejsiho R |_| |_| Qo vystup oscilatoru (nehradl.)
_| |_
spolecny bod vnejsiho R a C |_| |_| RETRIG
_| |_
negat. uvolneni neg(AST) |_| CMOS |_| neg(Q) negovany vystup
_| 4047 |_
vstup uvolneni AST |_| |_| Q vystup
_| |_
trigger MKO sestupna -TRIG |_| |_| MR nulovani vyst. pulzu
_| |_
zem Uss |_| |_| +TRIG trigger MKO vzestupna
|_______|
Takze jak to zapojit? Zkus to takhle: (H..log 1, L..log 0)
Nozicka Signal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AST vstup (signal RS232)
neg(AST) H
+TRIG L
-TRIG H
RETRIG L
MR L
Q Vystup z pripravku
No a kdyby ti nestacilo, ze ten impulz ma delku poloviny trvani jednicky
a potreboval jsi min (myslim ze tam bylo cosi o jedne sestnactine), tak
muzes pouzit stejnej obvod, t.j. 4047 ale v zapojeni jako monostabil,
kde se pres R' a C' nastavi pozadovana doba trvani toho pulzu.
takze signalove by to mohlo vypadat asi takhle:
t(B)
|<----->|
..neco.. 1 1 1 0 ..neco..
v v v v
_______________________
Vstup (RS232) _____| |______
___ ___ ___
Vystup z prvni 4047 _____| |___| |___| |__________
|<----->|
t(A)
_ _ _
Vystup z druhe 4047 _____| |_____| |_____| |____________
<->
t(C)
kde pro t(C) plati:
t(C) = 2.48 * R' * C' (+12%, -0%)
A jeste zapojeni nozicek te druhe 4047-icky:
Nozicka Signal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AST L
neg(AST) H
+TRIG vystup z prvni 4047
-TRIG L
RETRIG L
MR L
Q Vystup z pripravku
Jo, na funkci toho "zkracovace" vystupnich impulzu by se dal pouzit i CMOS
4098, ten ma v pouzdre DIL 16 dva MKO, nam staci jeden, ale kdyby bylo
treba udelat tenhle pripravek dvojity (rozumej pro dva nezavisle RS232
vstupy), tak to setri misto na tistaku. Ale zapojeni 4098-icky tu cmarat
nebudu :-) ... nejsem prekreslovac katalogu do ASCII.
Dale bych rad upozornil na takove ty notoricky zname veci... vazne nevim,
jake mas zkusenosti s CMOSkama, takze:
1) nepajej to pistolovkou, ono to sice z 99% vydrzi, ale taky to nemusi
odejit hned, ale az to budes nejmin potrebovat...mimochodem, patice
stoji 2 Kc.
2) nezapomen pichnout co nejbliz kazdeho obvodu mezi napajeci piny 100nF
kondik... Tyhle bestie jsou nachylny pustit ti tam nahodnej pulz z
ruseni a zrovna tady by se to docela tezko hledalo :-) (zkusenost)
3) tyhle obvody se nedelaj jako HCMOS ani HTCMOS, takze urcite koupis
obvody, jejichz napajeci napeti se snese celkem "divoke"...ale radsi na
to nehres... a bacha na prepolovavani a tak vubec.
Jo...myslim ze tam byl pozadavek na nizkou cenu... tak v katalogu GM
Electronic (kteri jsou docela drazi) je maloobchodni cena 4047 15,- Kc a
pro zajimavost te zminovane 4098 14,- Kc.
Hehe...takze to zkus a pokud to teda nebude chodit, tak prijdes o 30 korun
(a nejaky drobny, pokud nemas v supliku ty "spravny" odpory a kondiky).
Kazdopadne mi dej vedet, jak se to chova a taky by me zajimalo, na co to
vlastne ma byt. Pokud to shledam zajimavym, tak se na to podivam drobet
podrobneji a to by nebylo, aby se to i v pripade nejakeho neuspechu tohohle
reseni nerozchodilo... myslim tim, ze nevim jak ses na tom s vybavou a tak.
Uuuuffff.... hele mam u tebe ... no tri piva nejmin...takhle dlouhej post
jsem snad jeste nenapsal a navic jsem na tom zabil strasne moc casu... a to
kvuli te nasi session uz vubec nestiham... :-)) ... no jo, ale HW je HW...
to je marny.
Takze cauky hojky a hodne stesti.
Tfuj Brouk '_/`
___ (o o)
( //)()~
~~~ ~~
The Session Catastrophic Manager