Preruseni RS232 - problem

Dotazy na technické problémy, vlastní řešení technických problémů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

Preruseni RS232 - problem

#1 Příspěvek od WLAB »

Mam zahadny problem s prerusenim od rs232 na PC. V okamziku, kdy v povolovacim registru preruseni (na adrese base+1) povolim preruseni od vysilace (vyprazdneni tx bufferu) prestane se prerusovat od prijimace (od prijeti znaku). Pokud preruseni od vysilace nepovolim, prerusuje se spravne....
Uz jsem se tim nejaky ten rok nezabyval, tak se mi mohlo lecos vykourit z hlavy - nevzpominam si, ze bych s tim mel nekdy problem...
Napada nekoho neco?
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#2 Příspěvek od Crifodo »

jaký že to máš operační systém, jaké HW a jak je nakonfigurován port?
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#3 Příspěvek od WLAB »

OS W98 v rezimu DOSu, HW je on board seriak na desce Abit .... typ fakt nevim... zkusim zjistit z uvodni obrazovky biosu, seriovy port nastavuju primo z cecka (TC 3.0) pres "outportb" (57600,8,1,N). Port je com1 tj. base 3f8, irq ma zvoleny 4, konflikt na nem neni.
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#4 Příspěvek od Crifodo »

napíšeš jaká je taktovací frekvence, nevím jestli nebude problém s rychlostí. Nefunguje to ani při nižších Bd?
Na http://www.hw-group.com/products/hercules/index_cz.html je nějaký prográmek pro diagnostiku, mrkni na to. S kompatibilitou nových náhrad sériových řadičů jsou někdy problémy.
A triviální věc: kabel je OK? :wink:
Ještě vykoumej jestli máš nastaveno softwarové nebo hardwarové řízení toku a jestli to windows nepřepisujou pro BIOS...
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#5 Příspěvek od WLAB »

Na HWcko kouknu. S baudama ani kabelem bych problem nevidel - ponevadz -jak jsem psal-, kdyz zakazu prerusovani od TX tak se od RX prerusuje normlane, coz by jinak nedelalo (v priade jinych baudu ano, ale byly by tam nesmysly).

Jakmile proste povolim prerusovani i od TX a nevysilam, tak se vubec neskace do obsluhy IRQcka (kde se pak zjistuje zdroj preruseni)... :? :?
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#6 Příspěvek od WLAB »

Problem u handshake si dovedu predstavit napr. v tom, ze by mi to nevysilalo, ale tohle? Onot to i prijima jen to neprerusuje - nebot pri kazdem intku puvodem od TX se v obsluze irq zjisti i priznak intka od RX a zavola se i jeho obsluha (ziska se tedy mala cast dat z prijimace), ale IRQcko se jen na zaklade RX proste nevyvola....
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#7 Příspěvek od Crifodo »

sakra s tím vypařením z hlavy máš asi pravdu :) taky už se do toho nějak nemůžu dostat... je to dlouho co jsem si hrál s terminálama.
Co máš vlastně za protějšek na lince?
Zkoušels to i zjiného prostředí než z Céčka? interpretuje se to určitě správně, není to třeba závislé na rychlosti procesoru jako slavný error 200 u Pascalu?
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#8 Příspěvek od Crifodo »

V některých Biosech se zakazuje/povoluje probouzení z úsporného režimu modemem, tj. signálem na sériové komunikaci, nepere se to? zkus ten program zkompilovat na disketu a spustit někde na starým PC AT :wink:
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#9 Příspěvek od WLAB »

Programek od HW ten port cte dobre. Akorat za nej temer veskerou praci se seriakem (vcetne identifikace irq) delaji widle.
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#10 Příspěvek od Crifodo »

WLAB píše:Programek od HW ten port cte dobre. Akorat za nej temer veskerou praci se seriakem (vcetne identifikace irq) delaji widle.

jenže pindows sahají na port nejspíš přes chráněný režim, ale s tím snad programátoři od HW počítali?
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#11 Příspěvek od WLAB »

Naproti sedi mustek RS485<->RS232 osazeny ATmegou128 - tam asi problemek nebude. To bude nejaka zapeklitost kolem nastaveni toho portu.

s ATckem bude problem, pac uz nic takoveho nemam... ale myslim, ze jsem se seriakem jeste delal na tomhle poci (a tomu uz je skorem 8 let :o) ) a nejak si nevybavuju, ze by byly problemy. Mozna, ze je problem v necem, co jsem pred tim bral jako samozrejmost :o).
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#12 Příspěvek od Crifodo »

každopádně by to chtělo problém izolovat... jiný překladač (nebo rovnou z DOSu), jiný PC, pořádně otestovat... nějak nakopnutý obvod to být nemůže? zkoušels druhý COM2?

komunikaci nejde řídit softwarově znakem? bez nutnosti sledování stavových pinů?
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#13 Příspěvek od Crifodo »

wlab: dej si frťana liquoru a pak se mrkni na http://rs232.hw.cz/#registr_modemu :wink:
Uživatelský avatar
WLAB
Příspěvky: 867
Registrován: 13 zář 2005, 00:00
Bydliště: Praha

#14 Příspěvek od WLAB »

Crifodo píše:wlab: dej si frťana liquoru a pak se mrkni na http://rs232.hw.cz/#registr_modemu :wink:


O tom vim 8-) kdysi jsem to taky musel vyzkoumat. Sice nevim, jestli bych si na to hned vzpomel, ale to moje historicke pascalske kopyto, ze ktereho jsem ted vychazel, nastavuje out 2 (i out 1) do log 1. Ale je pravda, ze o tom se skoro nikde nepise.

Uz se mi to vyresilo - bohuzel nejhorsim moznym zpusobem. Po opakovanem ruznem nastavovani registru, vypinani a zapinani poce, hranim s biosem, se to z niceho nic rozbehlo - bohuzel - s tim uplne puvodnim nastavenim vseho - takze nevim kde byla chyba, :?
Uživatelský avatar
Crifodo
Příspěvky: 14779
Registrován: 11 říj 2005, 00:00

#15 Příspěvek od Crifodo »

nejspíš se ti v PC pere několik faktorů, které nemáš pod kontrolou protože o nich nevíš. Ona se chyba třeba zase ozve a dá ti příležitost ji dál studovat :wink:
U toho rozpomínání na sériovou komunikaci jsem si taky vzpomněl na odložený problém: mám starou průmyslovou řídicí jednotku z barvicího aparátu, něco jako MCU moderní pračky, ale historický kousek s Motorolou 6802 a krásným 15 místným displejem. Umí to napouštět, vypouštět, ohřívat, chladit, měřit několik teplot a hlídat několik chybových stavů, ale programovalo se to po sériové lince z nadřízeného počítače a já už neznám protokol a dokumentaci samozřejmě nemám! bylo tam několik řídicích slov, parametry, atd., neznám ani formát komunikace. To asi nerozchodím, co?
Odpovědět

Zpět na „Poradna“