Re: 2 UARTy na jednym IRQ - czy da sie to zrobic w DOSie

Autor: MariuszC (mcukr_at_poczta.onet.pl)
Data: Fri 22 Dec 2000 - 11:47:33 MET


Nie napisalem ze oba kanaly komunikacyjne pracuja z predkoscia 19200.
A wiekszych szybkosci raczej nie przewiduje.
Program dziala w trybie DPMI.

W tej chwili mam taki objaw, ze oba kanaly pracujac pod jednym IRQ
wlasciwie dzialaja, tyle ze jak przychodza ramki danych z urzadzen zewn.
to oba porty odbieraja tylko pierwszy znak (tak jest przy pelnej ustawionej
szybkosci 19200). Miedzy kolejnymi ramkami jest krotka przerwa.
Jesli wprowadze sztuczne opoznienie miedzy wysylanymi
bajtami, wtedy PC-t odbiera troche wiecej bajtow. A jak z terminala
wpisywalem jakis tekst - powiedzmy bajt na sekunde - to program odbieral
wszystkie znaki poprawnie.
Zatem moze byc ze w ktoryms momencie nastepuje zablokowanie linii przerwan,
jak to sugerowal Kolega Andrzej Popowski cyt.:
"Chyba patrzysz na to wylacznie od strony oprogramowania kontrolerow
PC, ktore akurat nie stanowi problemu. Natomiast sprzet nie jest
przystosowany do wspoldzielenia przerwan. Styki kazdego IRQ na szynie
ISA sa zwarte miedzy slotami i prowadza wprost do kontrolera 8259A (w
XT/AT). Jak ustawisz 2 karty na jedno przerwanie, to moze sie okazac,
ze jedna karta ma silniejsze wyjscie i druga nie jest w stanie wymusic
jedynki, aby zasygnalizowac przerwanie."
U mnie jest nastepujaca konfiguracja: COM1 na plycie IRQ4
COM2 (IRQ3) i COM3 (IRQ4) sa na karcie I/O ISA. No i stad moze wynikac
jakis sprzetowy problem.

Kombinowalem juz na rozne sposoby, ale bez pozytywnych wynikow.
Jak otwieram COM1 program dziala. Jak dodatkowo otwieram COM3
odbierany jest co ktorys znak. Ale jak nastepnie zamkne COM3, to na COM1
nie poprawia sie nic. Zamkniecie i otworzenie portu tez nie skutkuje.
Jedynie wyjscie i wejscie do programu umozliwia wykorzystanie mozliwosci
portu.

Czy macie jeszcze jakies sugestie?

Mariusz



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 21:04:19 MET DST