Opis układu "WD2123" - dwukanałowy UART, montowany w komputerach "TIMEX
FDD 3" oraz "TIMEX FDD 3000".

Poniższe informacje są zebrane na podstawie analizy działających programów
(TIMEX CP/M i CONFIGUR.COM), artykułu R. Magdziaka (Bajtek 12/97, strona 24)
oraz badań empirycznych układu.

WD2123 posiada sześć portów:
  -status/komenda kanału A;
  -dane kanału A;
  -prędkość w kanale A (tylko zapis);
  -status/komenda kanału B;
  -dane kanału B;
  -prędkość w kanale B (tylko zapis);

Obydwa kanały sterowane są w ten sam sposób.

   Z wyjątkiem ustawiania prędkości, każdy z kanałów wydaje się odpowiadać
funkcjonalnie układowi 8251A.


   Aby zaprogramować kanał łącza szeregowego należy wpisać kolejno
następujące wartości (ustalone na podstawie badań empirycznych):
   do portu komendy, #40 - komendę kasującą
   do portu komendy, komendę ustawiającą parametry
   do portu prędkości, prędkość
   do portu komendy, komendę sterującą.


   Komenda ustawiająca parametry ustala parametry ramki łącza
szeregowego. Bity 7 i 6 określają ilość bitów stopu:
 %00 - działanie nieznane,
 %01 - 1 bit,
 %10 - 1.5 bitu,
 %11 - 2 bity.
Bity 5 i 4 określają parzystość.
 %00 - brak (NONE),
 %01 - nieparzysta (ODD),
 %10 - brak (NONE),
 %11 - parzysta (EVEN).
Bity 3 i 2 określają ilość bitów na bajt:
 %00 - 5,
 %01 - 6,
 %10 - 7,
 %11 - 8.
Bit 1 jest ustawiony, a bit 0 wyzerowany (brak informacji dlaczego). W
układzie 8251A odpowiada to ustawieniu wewnętrznego podzielnika na 1/16
częstotliwości sygnału zegarowego.

Prędkość jest określona przez bity 0..3 (brak informacji o znaczeniu
bitów 4..7, wydają się być ignorowane), w bitach na sekundę (bps):
 #00 -   50,
 #01 -   75,
 #02 -  110,
 #03 -  134.5,
 #04 -  150,
 #05 -  200,
 #06 -  300,
 #07 -  600,
 #08 - 1200,
 #09 - 1800,
 #0A - 2400,
 #0B - 3600,
 #0C - 4800,
 #0D - 7200,
 #0E - 9600,
 #0F -19200.

Komenda sterująca określa stan linii wyjściowej RTS oraz kasuje błąd.
Bity 0..2 są ustawione, ustawiony bit 4 kasuje błąd, bit 5 steruje linię
RTS (ustawiony - odbiór możliwy), pozostałe bity wyzerowane.


   Status określa aktualny stan kanału:
bit 0 - stan bufora nadajnika: =0 zapełniony, =1 pusty;
bit 1 - stan bufora odbiornika: =0 pusty, =1 zawiera odebrany bajt;
bit 2 - ? (8251A - stan nadajnika: =0 wysyła dane, =1 pusty);
bity 3..6 - sygnalizacja błędów (brak informacji jakich) =1 wykryty błąd.
bit 3 - (8251A - błąd parzystości)
bit 4 - (8251A - błąd przepełnienia odbiornika)
bit 5 - (8251A - błąd ramki, brak bitu STOP)
bit 6 - (8251A - błąd ramki, brak bitu STOP, nadal RxD=0)
bit 7 - stan linii CTS =0 nie można nadawać, =1 można.


Układ może generować przerwania przez pin 39 (stanem wysokim). Brak
informacji o rodzajach możliwych przerwań oraz sposobie ich wyłączania.

Brak informacji o możliwości ustawienia TXD w stan niski ("send BREAK"), jak
i również detekcji takiego stanu na RXD.


 2003-09-18 konwersja tektu na HTML, bez zmian
 1999-10-22 uzupełnienie własnościami układu 8251A
 1997-08-17 (C) Jarek Adamski