Reaktywacja Elwro - polski kalkulator programowalny

|



Krótko przed stanem wojennym, CEMI wyprodukowało układy do kalkulatora programowalnego. Niestety projekt został porzucony, a polski kalkulator programowalny nigdy nie trafił do produkcji seryjnej. Teraz, po 28 latach, czas odkurzyć zapomniane układy.



Trochę historii


Niegdyś w Polsce istniała firma CEMI, która między innymi produkowała układy scalone do kalkulatorów Elwro i Unitra Brda. Wyprodukowane zostały:
  • MC14005 - kalkulator pięciodziałaniowy
  • MC14007 - kalkulator ośmiodziałaniowy
  • MC14008 - kalkulator inżynierski (Unitra Brda 14S, dzisiaj wyjątkowy unikat)
  • MC14013 - kalkulator z wyświetlaczem LCD (Elwro Jacek, również unikat)
Rozwinięciem inżynierskiego miał być kalkulator programowalny zbudowany z trzech układów
  • MC14009 - liczydełko
  • MC14010 - pamięć (10 liczb i 5 nawiasów)
  • MC14011 - programator (zapamiętuje 72 kroki)
Układy do kalkulatora programowalnego zostały wyprodukowane, ale projekt został porzucony. Przypuszczam, że spory wpływ na to miał stan wojenny i późniejsza zapaść gospodarcza. Ale coż, układy już były gotowe. Coś trzeba było z nimi zrobić, więc trafiły do sklepów dla elektroników.

Zabawa w archeologa


Muszę Was jednak rozczarować - zdobycie tych układów jest BARDZO trudne. Mimo trzech miesięcy poszukiwań nie udało mi się dostać MC14011. Kalkulator jest zatem niekompletny, ale działa większość funkcji. Również nieosiągalny jest wyświetlacz LED 12-cyfrowy. Mój wywiad donosi, że miał być stosowany amerykański wyświetlacz NSA7120. Jego koszt na e-bayu to kilka dolarów plus przesyłka zagraniczna, wobec czego zmuszony byłem wykorzystać dwa wyświetlacze 9-cyfrowe, naszej polskiej produkcji CQYP-95. Na szczęście dokumentacja MC14009/10/11 jest dostępna na elenocie, ale -uwaga- są w niej błędy! M.in. przełącznik deg/rad powinien być podłączony do plusa a nie minusa; MC14009 powinien być połączony do zasilania przez rezystor 68, itp. Kolejny raz przekonałem się, jak ważne jest robienie prototypów. Jedyną rzeczą z którą nie było problemów to sterowniki wyświetlaczy UCY74547, które nabyłem w pierwszym lepszym sklepie.

Jak to działa


Matryca klawiatury składa się z 4 kolumn i 12 rzędów, ale klawiszy jest tylko 40. Zwróćcie uwagę, że z MC14009 wychodzą trzy wejścia kolumn Y1 Y2 Y3, przechodzą przez programator MC14011 i to dopiero on jest podłączony do klawiatury. W razie braku programatora odpowiednie piny w podstawce trzeba połączyć drutami. Z programatora też wychodzi czwarta kolumna Y4, która ma 5 klawiszy odpowiedzialnych za pracę programatora. Widać wyraźnie, że programowanie polega po prostu za zapisaniu kolejności wciskanych klawiszy, a programator "symuluje" wciśnięcie klawisza.



Pamięć MC14010 to jednokierunkowy szeregowy rejestr przesuwający o pojemności 672 bitów. Oprócz zasilania układ ma trzy wyprowadzenia - zegar, wejście i wyjście. Analogicznie liczydło MC14009 też ma takie trzy wyprowadzenia. Z każdym taktem zegara jest przesyłany 1 bit z pamięci do liczydła i z liczydła do pamięci. Aby odczytać konkretną informację, konieczne jest "przewinięcie taśmy" bitów na konkretną pozycję. Oczywiście wszystko dzieje się automatycznie. Użytkownik tylko wciska STO (zapis) lub RCL (odczyt) i wybiera numer pamięci (0-9). Układ sprawiał dziwny problem. Mianowicie, kiedy bateria była naładowana do pełna, tzn Vcc=9,5V to układ zaczynał wariować. Kiedy napięcie spadało, działał poprawnie. Na chybił-trafił tesowałem różne konfiguracje rezystorów, i okazało się, że najlepszy efekt daje włączenie rezystora 68 przed wejście zasilania MC14009. Nie mam pojęcia dlaczego, ale wtedy wszystko chodzi jak złoto.

Sterowniki wyświetlaczy UCY74547 to bufory-inwertery, których zadaniem jest zwiększenie mocy sygnału. Sam układ nie byłby w stanie zasilić wyświetlacza LED. Pamiętajmy, że jest on prądożerny. Wyświetlacz CQYP-95 ma wspólną katodę. Dopuszczalny prąd segmentu to 3mA, bardzo łatwo jest go uszkodzić. Aby łatwo było wyciągnąć wyświetlacze z kalkulatora, wpadłem na pomysł by przylutować do nich goldpiny.

Elementy elektroniczne, zestawy prototypowe, Arduino

MC14009 jest jednostką centralną całego ukłądu. Może pracować samodzielnie, ale wtedy prawie niczym nie różni się od MC14008. Układ wykonuje następujące funkcje:
+ - * / 1/x SQRT(x) x^2 x^y e^x log ln 10^x +/- sin cos tan arcsin arccos arctan M+ M- M* M/
Obsługuje naukowy format liczb x*10^y, nawiasy i pamięć STO RCL, możliwość liczenia w stopniach i radianach. Układ działa na liczbach 10-cyfrowych, a wyświetla 8 cyfr. W duecie z pamięcią, kalkulator ma 10 komórek na liczby i 5 nawiasów do dyspozycji.

Prototyp:


Gotowy kalkulator:







Najlepsze zdjęcie wyświetlacza:


Film z przykładowymi obliczeniami:


Co do czasu wykonania - pomysł zrodził się jakoś na początku maja. Zacząłem przeszukiwać internet i bibliotekę Politechniki Poznańskiej. Wysłałem wiele maili do różnych sklepów w sprawie MC14011, ale zawsze dostawałem odpowiedź negatywną. Postanowiłem więc zrobić wreszcie ten kalkulator z elementów jakie mam, a ten brakujący układ najwyżej potem włoży się w podstawkę. Projektowanie płytki zajęło 2 dni (350 pól lutowniczych). Montaż 1,5 godziny, szukanie zwarcie kolejną godzinę :)

Kosztorys:
MC14009 - 8zł
MC14010 - 8zł
CQYP-95 - 12zł x2
UCY74547 - 1zł x2
przełączniki - 2zł x3
klawisze - 0,20 x40
laminat - 2zł x2 (bo jeden skopałem)
elementy dyskretne - 2zł
3x koszt przesyłki plus koszty dojazdów do sklepów w Poznaniu

Obudowy robić nie będę, bo chodzi o to, żeby było widać scalaki. Dlatego też klawiatura jest przezroczysta :) Ten kalkulator to sztuka ;) To nie miało być liczydełko; on ma na celu zachwycać ludzi, skłaniać do refleksji nad polską myślą techniczną i przede wszystkim - udowodnić, że w Polsce dało się i ciągle da się wyprodukować zaawansowaną elektronikę, o czym niestety wielu zapomniało. Taki był cel.

Programator MC14011


Szanowni Państwo, po 30 latach zapomnienia i 4 miesiącach poszukiwań, dzięki forumowemu koledze Satanistik kalkulator wreszcie został ukończony!



Wystarczyło włożyć brakujący układ w puste miejsce i od razu wszystko działało! Jedyne co trzeba było poprawić to nakleję na przełączniku trybów pracy - napisy umieściłem w odwrotnej kolejności :)

Obsługa programatora


Układ działa w trzech trybach:
- RUN - uruchomienie całego programu przyciskiem P/S lub wykonywanie instrukcji krok po kroku przyciskiem SST. Można skoczyć do dowolnej instrukcji przyciskiem GOTO i wpisać jej numer. W tym trybie można także wykonywać zwykłe obliczenia, bez wykorzystania programatora
- CLR - kasowanie całości lub części
- LOAD - wpisywanie programu i poprawianie. Na ekranie widoczne są dwie liczby. Ta z prawej to kolejny numer polecenia, a te na środku to polecenie. Każdej funkcji przypisany jest jakiś numer, który bardzo przydaje się przy poprawianiu programu.

Programator umożliwia wykonanie sekwencji klawiszy, ale jest on bardziej zaawansowany niż mi się wcześniej wydawało. Obsługuje 10 zmiennych które można wykorzystać jako dane wejściowe, wynikowe lub jako zmienne robocze. Są też instrukcje skoku GOTO a nawet instrukcje warunkowe! Wprawdzie instrukcja warunkowa jest trochę prymitywna - jeżeli liczba na ekranie jest ujemna, to pomiń następną instrukcję i przejdź do kolejnej. Jednak to wystarczy by napisać ciekawy program, np do obliczania liczby e.



Jak to działa


Żeby było wiadomo o czym piszę, jeszcze raz zamieszczę schemat.


Jak się spodziewałem, programator "pośredniczy" przy wstukiwaniu klawiszy. Zwróćcie uwagę, że z liczydełka wychodzą linie YI1-YI3, przechodzą one przez programator i wychodzą z niego Y1-Y4. Czwarta linia steruje wyłącznie programatorem. Linie Y1-Y3 przechodzą przez programator, a ten dzięki temu zapamiętuje kolejność wciskanych klawiszy. W trybie wykonania programu, programator sam symuluje wciskanie klawiszy.

Interfejs komunikacji między programatorem a liczydłem jest maksymalnie prosty. W trybie programowanie pojawia się to co widać na drugim zdjęciu. Tak naprawdę programator symuluje wciśnięcie klawiszy 9, 9, EXP, 0, 0. Dzieje się to szybko, ale na tyle wolno by to zauważyć Smile Wszystkie dane wyświetlane przez programator powstają w ten sposób. Liczydełko nie wie, czy wpisuje je człowiek czy automat.
Moduł prototypowy X3-DIL64

Teraz wyjaśnienie, po co linia segmentu G przechodzi przez programator. Otóż jest to potrzebne dla instrukcji warunkowej - jeżeli liczba jest ujemna, pomiń następną i przejdź do kolejnej. Minus liczby ujemnej zawsze jest na pierwszej pozycji wyświetlacza i stąd programator wie, czy liczba na ekranie jest ujemna czy nie. Dodatkowym zastosowaniem tego rozwiązania jest możliwość wyświetlania poziomej linii przez cały ekran. Gdy bateria jest słaba i układy się zdesynchronizują, programator wyświetla poziomą krechę.

Prototyp z Instytutu Technologii Elektronowej


Skontaktował się ze mną kolega Uhyt. Jest on byłym pracownikiem Instytutu Technologii Elektronowej w Warszawie i wysłał mi takie coś:



Jest to wersja przedprototypowa polskiego kalkulatora programowalnego. Myślę, że Uhyt się nie obrazi, jeżeli zamieszczę fragment maila.
To była seria przed prototypowa, bardziej demonstracyjna. Tak to się kiedyś robiło z pomocą papieru milimetrowego i ołówka, potem tuszem na kalce kreślarskiej i do foto. A jak tylko jedna sztuka to grafion jakiś lakier i do boju ;) Tak jak pisałem miało wleźć do obudowy brdy chyba 12u (s?) i to był warunek podstawowy przy projektowaniu tej płytki. Dlatego wyjścia na klawiaturę są z boku, klawiatura miała być montowana nad tą płytką. Skoro powstała klisza to nie było problemu wytrawić parę płytek więcej. Nie pamiętam jaki miał być montowany wyświetlacz, chyba ten sam co w 14008
W produkcji masowej robiono laminaty dwustronny żeby się nie bawić w montowanie przelotek. W jednostkowych projektach żeby nie bawić się w pasowanie warstw lepiej było chwilę pokombinować i zrobić jednostronną, nawet z kilkunastoma przelotkami.

W ITE nie pracuję coś ze 20 lat. Swego czasu praktycznie wszystkie polskie technologie przyrządów półprzewodnikowych - termistory, ledy i cała opto, potem czujniki ciśnienia, asic'i itp oraz cyfrowe scalaki zwłaszcza (N,P,C)MOS były tam projektowane i po części wykonywane. Pracowałem na pomiarach układów cyfrowych i miałem styczność praktycznie z całą najnowocześniejszą dostępną w PRL cyfrówką. Nie muszę mówić co to znaczyło dla chłopaka bezpośrednio po technikum :) Na dokładkę super ludzie i atmosfera instytutu badawczego, jeśli miało się otwartą głowę i chęci do nauki można było znaleźć ludzi którzy wyjaśnili całość procesu produkcji i projektowania.

Jeszcze raz dziękuję wszystkim, którzy szukali brakującego układu, a w szczególności dwóm kolegom wymienionym wyżej!!! Jestem Wam bardzo wdzięczny!

Konkurs na elektroda.pl


Kalkulator zdobył pierwsze miejsce w konkursie na najlepszą konstrukcję, edycja wakacyjna 2009! Zobacz listę wyników!


Jednak istniał programowalny Elwro 190!


Pewnego dnia na Allegro został wystawiony... polski kalkulator programowalny Elwro 190! Ten, który rzekomo nigdy nie powstał! Moje zdziwienie jest tym bardziej uzasadnione, że nawet kolega z Instytutu Technologii Elektronowej nie wiedział, że ten projekt doczekał się realizacji. Na urządzeniu widocznym poniżej jest wybity rok produkcji 1991 - czyli odwilż po PRL. Numer seryjny bardzo mały, więc wyszła tylko jakaś krótka seria. Na tyle niewielka, że przez półtorej roku obserwowania Allegro został wystawiony tylko jeden taki okaz i nigdzie w internecie nie było o Elwro 190 nic wiadomo.

Kalkulator Elwro 190 został sprzedany za 282zł. Dzięki uprzejmości sprzedawcy zamieszczam jego zdjęcia oraz instrukcję (Elwro 190). Są w niej szczegółowe objaśnienia dotyczące programowania oraz wiele przykładowych programów.







Pliki do pobrania:
Materiały na temat: