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