Převodníky USB to RS232 - zajímavost
Dnes jsem se setkal se třema převodníkama USB to RS232.
Předběžné výsledky byly následující:
Zkoušel jsem to na dvou noteboocích s XP.
Dva převodníky fungovaly v notebooku HP i Toschiba.
Třetí způsobil okamžitě po připojení výpadek celého USB rozbočovače.
Nebylo tedy možné již připojovat ani žádné jiné zařízení pokud nebyl proveden reset OS.
Viděl jsem však ještě větší perličku, kterou mi hlava pořádně nebere.
Bylo potřebné trochu laborovat při odesílání a přijímání dat.
Příjímání i posílání dat probíhá tak, že nejprve musí být příjemce nastaven na přijímání
a teprve potom je spuštěno na odesílajícím zařízení posílání.
Jinak to logicky není možné...
Tedy zatímco u prvního převodníku bylo striktně nutné dodržet uvedený postup, jinak komunikace havarovala u druhého převodníku jsem se nestačil divit. I když bylo zahájeno vysílání a teprve po nějaké chvilce byl nastaven příjem komunikace probíhala plynule jako by se nic nestalo .
Z mého zjištění tedy plyne, že některé převodníky mají brutální buffer na cokoliv co kde zachytí.
Evidentní jsou propastné rozdíly mezi jednotlivými "výrobci".
Co na to říkáte vy ?
A čo tak PCMCIA RS232C?
V prvom rade potrebujes spravne ovladace pre dany USB prevodnik (to k tomu ze si skusal rozne na roznych PC - uz sa mohli mlatit ovladace).
Ano su rozdiely, zavisi od toho ako cinan-zaciatocnik naprogramoval mikrokontroller ktory v tom je, a ovladace k tomu.
RS232 nepotrebuje prepinat ziaden smer ani nic podobne (to by bolo RS485 apod.), RS232 je plne duplexny (mozes vysielat a prijmat sucasne), navyse aj klasicke RS232 radice maju uz roky FIFO (16byte) a aj Windows ma vyrovnavaciu pamat pre seriove porty.
Ak potrebujes 100% DOS-kompatibilny seriovy port (zavisi od aplikacie) tak si kupuj NB so seriovym portom, ak to je pre korektne napisanu Win aplikaciu, tak to je plusminus jedno, PCMCIA je vseobecne lepsi ako USB, ale ani ten nemusi byt 100% OK pre stare DOS-aplikacie.
P.S. s tym "prepinanim" prijemcu a odosielatela si mal mozno na mysli HW-handshaking (signaly RTS/CTS, DSR/DTR), to je ale vec aplikacii na oboch stranach, RS232 radic len robi to co od neho aplikacia chce, handshaking nie je nutny (ak to aplikacia nepouziva/nechce).
No právě. Je to DOSovská aplikace (vydána 1994) pod XP. A byla to přímo kopie. Upozorňuju na to, že jen díky rozdílu
použitého převodníku se přeci jen chovala mírně jinak.
Dle mých zkušeností se někdy - téměř vždycky chovají tyhle převodníky naprosto nepředvídatelně. Jeden jsem už vzteky rozšlapal.
Jeden jsem už vzteky rozšlapal.
Kdyby bylo vše dokonalé, na čem by sis vybil nahromaděný adrenalin? :)
Tak to radeji nechtej vedet...
Ak to je stara DOS aplikacia, tak USB prevodniky a radsej ani PCMCIA neodporucam (ak to nepojde tak vyhodene peniaze), uz principialne to nemoze bezat 100% dobre (ak navyse ta DOS aplikacia bola napisana prasacky, co bolo uplne bezne). Za tie peniaze si kup si v bazari nejaky P1 notebook so seriovym portom a na DOS aplikaciu pouzivaj ten resp. lepsie nepouzivaj DOS aplikacie.
P.S. aj dnes sa este predavaju niektore NB aj s normalnym (legacy) seriovym portom.
P.S.2. co sa tyka HW handshakingu, je uplne jedno ci to je DOS aplikacia alebo vcera vydana Win 64bit aplikacia , pouzitie HW handshakingu zavisi na tom co ta aplikacia ma robit a k comu sa ma pripajat (resp. u slusnej aplikacie je to nastavitelne v jej nastaveniach). Ale nie je to ziadne prepinanie smeru, aj HW hanshaking je u RS232 plne duplexny.
P.S.3. ak si odkazany na staru DOS-aplikaciu a na USB prevodnik, tak budes musiet skusat s ktorym prevodnikom ta aplikacia bezi aspon akceptovatelne, ak taky prevodni vobec najdes.
Handshaking se tam snad ani nekona. Funguje to se všema převodníkama (teda mimo toho jednoho).
V PCMCIA už je něco jiného. Můj způsob je cenově i celkově naprosto dostatečný.
Nemám tam žádný problém. Jen mě zarazil ten buffer.
Ok, potom som ta asi celkom nepochopil Proste mozu s USB prevodnikmi byt problemy rozneho druhu, je v tom zbastleny firmware ktory sa snazi programovo napodobnit RS232 kontroller, a to je u kazdeho prevodniku naprogramovane trochu inac, inac moze byt rieseny aj HW, ovladac k tomu, preto tie rozdiely.
No me se proste zda ze ten jeden funguje dokoce tak, ze cokoliv, kdykoliv uklada do bufferu (nevim zda do vlastniho nebo nejakeho virtualniho v RAM PC) a kdyz si to nejaka aplikace vyzada tak ji to preda .
No, ano to je normalne spravanie serioveho portu vo Win (ak myslis prijate znaky). Je mozne ze jeho ovladac ma ine default nastavenie (bez handshakingu, bez parity), t.j. cokolvek pride na RxD je platne, vlozi sa do bufferu, a aplikacia si to moze precitat (pod Win musi byt vsetko bufferovane ptz. v multitasking OS nemozes zabezpecit ze aplikacia bude stihat citat znaky z RS232 presne vtedy ked pridu).
P.S. default nastavenie si mozes zmenit v spravca zariadeni - com port - vlastnosti.
Je aj mozne ze sa ten prijmaci buffer nevyprazdni, ak aplikacia ten COM port otvori, co je uz asi chyba ovladaca k tomu, alebo co ja viem, az tak podrobne to z hlavy neovladam