From: Jarek Adamski Date: 2004-10-07 19:14:07 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Subject: YAMOD.AYLPT 1. Dekoder 138 (IC10) dekoduje 8 młodszych bitów magistrali adresowej. Jeśli pojawi się jeden z adresów: #F5, #F6, #FD, odpowiednie linie /F5, /F6 i /FD przyjmują stan niski. 2. Zworka JP9 pozwala wyłączyć tryb adresowania ZX (rozłączenie linii /FD) oraz TC (rozłączenie /F5 i /F6). Zakładam, że rozłączone wejścia będą w stanie wysokim. Dla pewności na płytce przygotowane są miejsca do przylutowania rezystorów SMD (pod 151 i koło JP9). (Rezystory te nie są zaznaczone na schemacie przed v004.) 3. Linie A13 i A15 są podłączone do bramki NAND (132, IC12A). Wyjście przyjmuje stan niski, gdy obie są w stanie wysokim. Wyjście bramki NAND oraz sygnał /FD podłączone są do bramki NOR (02, IC11C). Na wyjściu bramki NOR (sygnał XFFD) pojawia się stan wysoki tylko wtedy, gdy na liniach adresowych jest adres %1x1xxxxx11111101. Odpowiada to portom AY w ZX128 - #FFFD i #BFFD. (Linia A13 dekodowana jest ze względu na możliwość użycia portu #DFFD do innych celów. W przypadku problemów może być odcięta, a wejœcie połączone z A15 albo +5V.) 4. Linie /F5 i /F6 podłączone są do bramki NAND (132, IC12C). Gdy któraś z nich przyjmie stan niski, na wyjściu pojawi się stan wysoki. Jeśli na tym wyjściu albo na linii XFFD będzie stan wysoki, to na linii /CS (wyjście bramki NOR - 02, IC11D) pojawi się stan niski, który poprzez diodę D3 zablokuje linią /SEL wewnętrzne porty komputera. (Układ odcina też wewnętrzne porty #F5 i #BFFD do odczytu, mimo iż nie sš one używane.) 5. Jeżeli linia /CS będzie w stanie niskim (co oznacza dostęp do układu AY) i jednocześnie procesor ustawi /WR=0 (cykl zapisu do portu, YABUS uwzględnia /IORQ), to sygnał BDIR na wyjściu bramki NOR (02, IC11B) przyjmie stan wysoki. Odpowiadać to będzie zapisowi do jednego z portów #F5, #F6, #BFFD, #FFFD. 6. Czy zapisywany do portu jest adres, czy dane określa linia BC1. Również ona odpowiada za odczyt z portu. Zależność jest następująca: BDIR BC1 0 0 - AY nieaktywny 0 1 - odczyt z rejestru 1 0 - zapis do rejestru 1 1 - wybór rejestru Wybór rejestru ma być dokonywany portami #F5 oraz #FFFD, odczyt rejestru następuje w portach #F6 oraz #FFFD. W tych 4 przypadkach linia BC1 ma przyjąć stan wysoki. Ponieważ jest to dość skomplikowane, najłatwiej było użyć multipleksera 151 (IC7), który zastępuje 8 prostych bramek. Do wejść multipleksera podłączone są /WR (A), /RD (B) i XFFD (C). W zależności od tego, czy odbywa się zapis (/WR=0), czy odczyt (/RD=0) oraz czy adresowane są porty #FFFD i #BFFD (XFFD=1), linia BC1 przyjmuje zanegowany stan jednego z 8 wejść: XFFD /WR /RD na C B A wejściu 0 0 0 1 - stan niemożliwy 0 0 1 /F5 - wybór rejestru - tylko #F5 0 1 0 /F6 - odczyt z rejestru - tylko #F6 0 1 1 1 - stan nieaktywny 1 0 0 1 - stna niemożliwy 1 0 1 /A14 - odczyt z rejestru - tylko #FFFD 1 1 0 /A14 - wybór rejestru - tylko #FFFD 1 1 1 1 - stan nieaktywny Linia A14 jest zanegowana na bramce NOR (02, IC11A). W wersji 003 jest błąd - zostały zamienione linie /RD i /WR na wejściach 151 (IC7). Aby to poprawić, należy albo zamienić wejścia linii /RD i /WR albo linii /F5 i /F6. W wersji 004 jest to już poprawione. 7. Wejścia AY: BC2 oraz A8 podłączone są do +5V, wejście /A9 do masy (GND). Wejścia te są praktycznie nieprzydatne do niczego i nie da się z ich pomocą uprościć dekodowania. 8. Sygnał zegarowy dla AY generowany jest na bramce NAND z histerezą (tzw. przerzutnik Schmitta). Jedna bramka NAND (132, IC12D) jest użyta w generatorze RC, druga (132, IC12B) służy jak wzmacniacz. Częstotliwość pracy generatora jest zależna or pojemności C1 oraz rezystancji R4, R7, R12. Rezystor R12 można odłączyć zworką. Częstotliwość 1.77MHz (połowa 3.5MHz) otrzymuje się dla kondensatora 1nF i szeregowo połączonych rezystancji 330om i 4.7kom (wynikowo 308om). Jeśli zworka JP4 ma przełączać częstotliwość, należy dobrać R7 i R12. 9. Zworka JP1 wybiera tryb stereo - ABC (kanał B w środku, jak w Amstrad CPC - zworki równolegle do AY) albo ACB (C w środku - zworki prostopadle do AY). R3, R5, R9, R11 miksują kanał lewy i prawy z kanałem środkowym. R1, R2, R6, Q1 to wzmacniacz kanału lewego (można go pominąć zwierając R2). R8, R10, R13, Q2 to wzmacniacz kanału prawego (można go pominąć zwierając R10). JP2 to pinowe złącze dźwięku (wspólna masa w środku). X1 to złącze magnetofonowe. Można korzystać tylko z jednego złącza, zależnie od potrzeb. 10. Linie obu portów we/wy są dostępne na 20 pinowym złączu listwowym (razem z masą i +5V). Złącze to pozwala na zamontowanie własnego rozszerzenia, np. portów joysticka jak w TC2068 (linie A8 i A9 należy doprowadzić kabelkami do dwóch wolnych pinów złącza), złącz dla Keypad i RS232 jak w ZX128, AY-MOUSE (interfejs do myszy amigowej z czterobitowymi licznikami rewersyjnymi - opis w magazynie "ZX Power 1") albo tester układów scalonych. 11. Wszystkie linie we/wy są również wyprowadzone na złącze DB25, o układzie odpowiadającym złączu równoległym (LPT) w PC. Oprócz standardowej drukarki możliwa jest praca w kilku trybach transmisji dwukierunkowej, w tym przy użyciu kabli połączeniowych typu LapLink i EPP. Podłączenie zostało opracowane w oparciu o dostępne schematy łącza drukarkowego dla AY oraz o budowę interfejsu równoległego w PC. (Uwaga! W odróżnieniu od złącza w PC, nie ma tu sprzętowej inwersji sygnałów.) Przydział pinów jest następujący: 1 - /Strobe - IOA0. 2 - Data0 - IOB0. 3 - Data1 - IOB1. 4 - Data2 - IOB2. 5 - Data3 - IOB3. 6 - Data4 - IOB4. 7 - Data5 - IOB5. 8 - Data6 - IOB6. 9 - Data7 - IOB7. 10 - /Ack - IOA6. 11 - Busy - IOA7. 12 - Paper-Out - IOA5. 13 - Select - IOA4. 14 - /Auto-Linefeed - IOA1. 15 - /Error - IOA3. 16 - /Initialize - IOA2. 17 - /Select-Printer - IOA2. 18..25 - Ground IOA7 - 11 - Busy. IOA6 - 10 - /Ack. IOA5 - 12 - Paper-Out. IOA4 - 13 - Select. IOA3 - 15 - /Error. IOA2 - 16 - /Initialize (opcja). IOA2 - 17 - /Select-Printer (opcja domyślna). IOA1 - 14 - /Auto-Linefeed. IOA0 - 1 - /Strobe. IOB7 - 9 - Data7. IOB6 - 8 - Data6. IOB5 - 7 - Data5. IOB4 - 6 - Data4. IOB3 - 5 - Data3. IOB2 - 4 - Data2. IOB1 - 3 - Data1. IOB0 - 2 - Data0. Ponieważ interfejs w PC ma więcej linii niż AY, sygnał IOA2 może być podłączony do pinu 16 (/Initialize) albo pinu 17 (/Select-Printer). Domyślnie IOA2 dołączone jest do pinu 17, a pin 16 poprzez rezystor (pod AY) do +5V (można również podłączyć dodatkowym drutem do sygnału resetowania /RES, po odcięciu ścieżki zasilania). 12. Linie we/wy AY można również wykorzystać jako interfejs IEC 625 (stosowany w automatyce pomiarowej). Porty AY dzięki swojej charakterystyce idealnie się do tego nadają. Wymagana jest zmiana podłączenia złącza DB25 albo zastosowanie przejściówki (z DB25 albo ze złącza wewnętrznego). 13. Opcjonalnie, dwie linie AY można użyć jako magistrali IIC (I2C). Zworkami wybiera się jedną z 2 możliwości pracy - IOA0 i IOA1 (dla trybu ZX, nie koliduje z Keypad i RS232; możliwe jest również używanie z LapLink, jeśli linia IOA1 zostanie odłączona od złącza DB25) albo IOA4 i IOA5 (nie koliduje z joystickami w TC2068). Na płytce przewidziane jest miejsce dla 8 pamięci szeregowych typu 24C64 (8kB, znacznie droższe są 24C512 o pojemności 64kB) oraz zegara czasu rzeczywistego PCF8583 (zegar ten może generować przerwania, ale domyślnie linia nie jest podłączona, ponieważ zegar zaraz po włączeniu generuje sygnał 1Hz na tym wyjściu). Zegar może być zasilany z baterii (JP8, D1, D2). Zwarta zworka JP13 blokuje zapis do pamięci szeregowych. Jedna z pamięci szeregowych (IC2) jest SMD, pozostałe DIL. Adresy pamięci i zegara w IIC (bit 0 określa kierunek transmisji i jest tu podany jako 0): IC2 - #A0 (SMD) IC3 - #A8 IC5 - #A2 IC6 - #AA IC8 - #A4 IC9 - #AC IC13 - #A6 IC14 - #AE IC4 - #A2 (zegar) Na płytce, patrząc od góry i od złącza YAMOD: SMD RTC #A0 #A8 #AC #A4 #A2 #A6 #AE #AA #A2 Pamięci, szczególnie 64kB można używać do przechowywania programów. 14. Na spodniej stronie płytki, przy zworkach i złączach dodane są opisy, które pomogą w identyfikacji. 04-10-07 dodany opis zmian w wersji 004 oraz błędu 151 04-07-25 pierwsza wersja tekstu