Indeks English versionEnglish version

Elektronika MK-85 - opis sprzętu

Starsza wersja mikrokomputera MK-85 była zbudowana z następujących układów scalonych:

W nowszej, bardziej rozpowszechnionej wersji, mikroprocesor i sterownik wejścia/wyjścia znalazły się na jednym chipie a dwie pamięci ROM o pojemności 8kB zostały zastąpione jedną o pojemności 16kB. Lista układów scalonych:

Przedstawione tu informacje dotyczą tej nowszej wersji.

Informacja, gdzie można znaleźć schemat jest podana na stronie odnośników.


Rejestry wejścia/wyjścia

Adres Rozmiar danej Funkcja
$80-$FFbajt Port szeregowy sterownika wyświetlacza ciekłokrystalicznego
$100słowo Rejestr danych równoległego portu wejsciowego KB, bity 8-2 używane jako wejścia kolumn matrycy klawiatury
$102słowo Rejestr danych równoległego portu dwukierunkowego PP, bity 3-1 używane jako wyjścia wierszy matrycy klawiatury
$104słowo Rejestr sterujący/stanu

Sterownik wyświetlacza

Sterownik wyświetlacza stosowany w starszej wersji mikrokomputera Elektronika MK-85 nie ma własnej pamięci i korzysta z systemowej pamięci RAM. W procedurę wyświetlania jest również zaangażowany sterownik wejścia/wyjścia. Co 0.4 ms przerywa on wykonywanie programu przez procesor i za pomocą DMA przesyła wybrany fragment pamięci RAM do sterownika wyświetlacza.

Nowsza wersja sterownika wyświetlacza ma wbudowaną pamięć RAM i w związku z tym wymaga obsługi tylko wtedy, gdy nastąpiła zmiana wyświetlanej informacji. Nie ma już potrzeby bezpośredniego dostępu do pamięci (DMA).

Łączność ze sterownikiem wyświetlacza odbywa się przez szeregową magistralę. Wysyłanie danych następuje przez zapis pod adres z przedziału $0080-$00FF. Ważne jest tylko 5 mniej znaczących bitów danej.

Opis sygnałów magistrali sterownika wyświetlacza

Końcówka Nazwa Funkcja
2SYNC Poziom wysoki przy przesyłaniu adresu, niski przy przesyłaniu danych.
62SHIFT Impulsy zegarowe dla rejestru przesuwającego.
1AD Przesyłane dane, najpierw bit najmniej znaczący, jako zero logiczne przyjęty został wysoki poziom, jako jedynka logiczna niski poziom.

Na poniższym wykresie przesyłana jest przykładowa dana $12 pod adres $00A8.

przebiegi na magistrali sterownika LCD

Na wykresie z analizatora logicznego widać dodatkowy krótki impuls SHIFT o szerokości ok. 0.1 µs.

przebiegi na magistrali sterownika LCD

Późniejsze wersje mikroprocesora Т36ВМ1-2 wysyłają 8 bitów danych zamiast 5. Zmiana nastąpiła gdzieś pomiędzy datami produkcji 9105 do 9109.

przebiegi na magistrali sterownika LCD

Z przeprowadzonych testów wynika, że sterownik wyświetlacza bierze pod uwagę tylko pierwszych 5 odebranych bitów danych. Wszystkie następne są ignorowane.

Funkcje rejestrów sterownika wyświetlacza

Adres Funkcja
$80-$DFTen przedział adresów wybiera wewnętrzną pamięć RAM sterownika LCD.
$E0Ten rejestr określa pozycję i kształt sprzętowo generowanego kursora.
bity 3-0 definiują pozycję kursora (wartość $0C gdy kursor nie ma być wyświetlany)
bit 4 definiuje kształt kursora, wypełniony prostokąt gdy bit skasowany, podkreślenie gdy bit ustawiony
$E8Funkcja niewiadoma, wartość inicjowana na 0

Układ wyświetlacza

układ wyświetlacza

Rysunek przedstawia przyporządkowanie pikseli wyświetlacza ciekłokrystalicznego do adresów w pamięci RAM.
Liczby w kolorze czerwonym reprezentują ofsety adresów licząc od początku pamięci wyświetlacza.
Liczby w kolorze zielonym reprezentują numer bitu w bajcie.


Klawiatura

Interfejs klawiatury składa się z dwóch 16-bitowych portów:

Matryca klawiatury jest skanowana przez wpisywanie logicznych jedynek do kolejnych bitów portu wybierającego wiersze, a następnie odczyt portu kolumn. Wciśnięcie klawisza powoduje połączenie wiersza z dwoma kolumnami za pomocą podwójnych styków.

Interfejs klawiatury ma możliwość obudzenia procesora ze stanu bezczynności, gdy któryś bit portu kolumn zmieni stan z 0 na 1.


Przerwania, reset, załączanie zasilania

Jednoczesne pojawienie się niskiego poziomu na wejściach KB9 i KB10 (końcówki 10 i 11) lub na wejściach KB0 i KB10 (końcówki 1 i 11) wyzwala przerwanie HALT.
W mikrokomuterze Elektronika MK-85 wejścia KB9/KB10 odczytują stan klawisza STOP wybieranego wyjściem PP1. Wciśnięcie tego klawisza powoduje zgłoszenie przerwania HALT, którego wektor procedury obsługi znajduje się pod adresem $0078.

Gdy bit priorytetu przerwania I (bit 7) w rejestrze PSW jest skasowany, to pojawienie się niskiego poziomu na porcie PP1 (końcówka 15), niezależnie od tego czy jest skonfigurowany jako wejście lub wyjście, powoduje zgłoszenie przerwania EVNT. Wektor procedury obsługi tego przerwania znajduje się pod adresem $0040 (nie używane w MK-85).

Jednoczesne pojawienie się niskiego poziomu na wejściach KB0 i KB1 (końcówki 1 i 2) wprowadza procesor w stan wyłączonego zasilania. Stan ten jest zachowywany przy podaniu niskich poziomów na wejścia KB9 i KB10 (końcówki 10 i 11) lub wejścia KB0 i KB10 (końcówki 1 i 11). Zmiana poziomu chociaż jednego z tych wejść na wysoki powoduje reset mikroprocesora. Powtórna zmiana poziomu wejść KB0/KB10 lub KB9/KB10 na niski wyzwala przerwanie HALT.
System może być zatem wyłączany za pomocą pary styków wymuszających niski poziom na wejściach KB0/KB1, oraz włączany za pomocą pary styków wymuszających niski poziom na wejściach KB0/KB10 lub KB9/KB10. Wybór zależy od rozmiaru zastosowanej pamięci ROM (8kB lub 32kB).


Rejestr sterujący/stanu procesora pod adresem $104

Bit (dzies.) Funkcja
0 Ten bit wybiera kierunek grupy końcówek PP3-PP1 portu dwukierunkowego (wejścia gdy bit ustawiony). W mikrokomputerze Elektronika MK-85 sterują one wierszami matrycy klawiatury, są zatem skonfigurowane jako wyjścia.
1 Ten bit wybiera kierunek grupy końcówek PP7-PP4 portu dwukierunkowego (wejścia gdy bit ustawiony).
2 Ten bit wybiera kierunek grupy końcówek PP11-PP8 portu dwukierunkowego (wejścia gdy bit ustawiony).
3 Ten bit wybiera kierunek grupy końcówek PP15-PP12 portu dwukierunkowego (wejścia gdy bit ustawiony). W mikrokomputerze Elektronika MK-85 przełączają one stałą czasową obwodu RC generatora częstotliwości zegarowej. Ustawienie tego bitu przyspiesza pracę procesora.
4 Ten bit jest ustawiany, gdy na końcówce PP1 zostanie wykryty niski poziom trwający conajmniej 20ns. Może być skasowany tylko przez zapis do rejestru.
5-9 Te bity wybierają konfigurację zewnętrznej pamięci (wielkość pamięci ROM i RAM).
10 Skasowanie tego bitu zatrzymuje zegar procesora.
11 Skasowanie tego bitu dzieli częstotliwość zegara procesora przez 8. Program w pamięci ROM mikrokomputera Elektronika MK-85 obsługuje w tym trybie klawiaturę i generację opóźnień.
12 Ustawienie tego bitu wyłącza zasilanie procesora.

Tryby pracy procesora

Mikroprocesor może pracować w jednym z dwóch trybów:

Przejście do trybu HALT jest możliwe w następujące sposoby:

Przy przejściu w tryb HALT procesor zapisuje poprzednie wartości PC i PSW w specjalnych wewnętrznych rejestrach procesora CPC i CPS (dostępnych w trybie HALT za pomocą instrukcji RCPC/RCPS i WCPC/WCPS), a następnie następuje przekazanie sterowania do procedury obsługi przerwania HALT poprzez wektor pod adresem utworzonym z bardziej znaczącego bajtu rejestru SEL oraz stałej wartości $78 w mniej znaczącym bajcie.

Dodatkowy zestaw instrukcji dostępnych w trybie HALT

Instrukcja Opcode Funkcja Opis
GO$000A PC <- CPC
PSW <- CPS
powrót do USER mode
STEP$000E PC <- CPC
PSW <- CPS
tak jak GO, z wyjątkiem zablokowania przerwań HALT na czas wykonywania następnej instrukcji, używana do pracy krokowej programu
RSEL$0010 R0 <- SELodczyt rejestru SEL, w przypadku MK-85 zwraca $0000
MFUS$0011 R0 <- (R5)+odczyt z obszaru adresowego USER
RCPC$0012 R0 <- CPCodczyt rejestru CPC
RCPS$0014 R0 <- CPSodczyt rejestru CPS
MTUS$0019 -(R5) <- R0zapis do obszaru adresowego USER
WCPC$001A CPC <- R0zapis rejestru CPC
WCPS$001C CPS <- R0zapis rejestru CPS

Przy zbieraniu powyższych informacji bardzo mi pomógł Vladimir Poletaev, dziękuję!