Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

yego666 16 Oct 2017 20:11 10998 15
  • Jeśli ktoś myślał, że polski kalkulator programowalny zakończył swoją epicką podróż, to chyba przedwcześnie. Chciałbym przedstawić szanownym Kolegom konstrukcję opartą na układzie MC14009 oraz na prostym mikrokontrolerze.
    Na razie układ został zmontowany na płytce jednostronnej, a program przetestowany i "odrobaczony". Obudowa kalkulatora jest również gotowa, a jedynymi elementami brakującymi do domknięcia projektu są: czerwona szybka filtru na wyświetlacz oraz siedem klawiszy ( w miejsce tych z niewłaściwymi inskrypcjami ), ale to chyba już tylko kosmetyka, stąd uznałem, że mogę swój projekt przedstawić szerszemu gronu - o ile w ogóle znajdzie się jeszcze ktoś, kogo ten temat wciąż interesuje.
    Na początek pokażę kilka zdjęć działającego prototypu, a jeśli zbierze się kilku zainteresowanych, to napiszę coś więcej o cechach kalkulatora i załączę zdjęcia konstrukcji zmontowanej w obudowie.
    Na początek klawiatura od znanego wszystkim kalkulatora BRDA 12U. Taką właśnie użyłem w swojej konstrukcji. Powód jest taki, że ten kalkulator jest wciąż łatwo dostępny na rynku i byłby doskonałym dawcą "organów". U siebie użyłem klawiaturę oraz obudowę, ale wyświetlacz również byłby wystarczający, gdyby dwunastopozycyjny wyświetlacz nie był dostępny ( tryb Short Display jest również wbudowany w programie i przetestowany, co jest pokazane na zdjęciach z tagiem "short" w tytule ).
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych
    Wszystko zaczęło się od układu testowego, który pozwolił mi zbadać wszystkie potrzebne charakterystyki i funkcje układu MC14009, których nie było w danych technicznych producenta.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych
    Poprzez złącze RS232 i trochę programu ( oraz oczywiście terminalu szeregowego ) można się komunikować z układem testowym. Tak właśnie powstał "engine" całej konstrukcji.

    Kalkulator ( jeszcze nie ma swojej nazwy ), jak wspomniałem wcześniej, może działać zarówno w trybie z pełnym ( 12 pozycji ) jak i krótkim ( 9 pozycji ) wyświetlaczem LED, co widać na poniższych zdjęciach.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Oczywiście oprócz trybu kalkulatora, który liczy to co mu zadamy bezpośrednio poprzez wciskanie klawiszy, mamy tez tryb wykonywania wprowadzonego programu jednym ciągiem, lub krok po kroku.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Tryb "Learn" jest kombinacją funkcji znanych z układu MC14011 w trybach "Clear" i "Learn", i w zasadzie powinien się nazywać "Edit". I znów, poniższe zdjęcia trybu Edit w wersji Short i Full.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    No, chyba wystarczy tych zdjęć jak na początek. Następnym razem pokażę całość zmontowanej i działającej konstrukcji.
    Dodam jeszcze, że cały układ jest zasilany z pojedynczego ogniwa Li-Ion o pojemności 4 Ah, co pozwala na nieprzerwaną pracę układu przez około 60 godzin bez ładowania.

    Mam nadzieję, że swoją konstrukcją nie naruszam niczyich praw autorskich, konstruktorskich czy jakichkolwiek innych.

    Przepraszam wszystkich za to iż niektóre zdjęcia są przekręcone, ale nie wiem jak to uładzić. U mnie w przeglądarce są poprawnie zorientowane :( .

    I jeszcze na koniec zdjęcie strony elementów :
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    yego666
    Level 32  
    Offline 
    Has specialization in: embedded programmable logic design
    yego666 wrote 1888 posts with rating 222, helped 202 times. Been with us since 2004 year.
  • #3
    Mikroprocesorowiec
    Level 12  
    Też ciekawi mnie co robi mikrokontoler, jak jest połączony z układem kalkulatora. Z opisu wynika, że jak na razie tylko odczytuje dane z wyświetlacza, może także symulowac klawiaturę.
    Z tematem podłączenia mikrokontrolera z układem kalkulatora juz się spotkałem. Nie pamiętam czy był to projekt, czy pomysł na projekt. Raczej tylko pomysł, bo kalkulator miałbyc swego rodziaju FPU. A jak wiadomo, takie kalkulatory szybkościa nie grzeszą.
  • #4
    yego666
    Level 32  
    Najpierw obiecane fotki zmontowanej całości.
    Na razie jeszcze nie montuję ogniwa w środku, gdyż czeka mnie jeszcze praca z wymianą klawiszy w górnych trzech rzędach ( oczywiście jeśli znajdę kogoś, kto "wydrukuje" mi te klawisze na drukarce 3D ), i instalacja czerwonego filtru na wyświetlacz.
    Wtedy będzie już wszystko gotowe.
    Widać na jednym zdjęciu napis "BRDA 12U" na obudowie.
    Jak wspomniałem wcześniej, jeden nieszczęsny egzemplarz musiał na ochotnika zgłosić swoje części do przeszczepu.
    Od spodu obudowy odciąłem wnękę na baterie, by zyskać miejsce na nową płytkę, która jest dużo większa niż oryginalne flaki Brdy 12U.
    Wyświetlacz pochodzi z innego kalkulatora TI-59, który cierpiał na nieuleczalną chorobę jednostki centralnej i również postanowił zostać honorowym dawcą wyświetlacza.

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Wydaje mi się, że ten egzemplarz pochodzi od Gembary, bo ten od Ciebie chyba mam w układzie testowym, ale może być i przeciwnie :) .

    " Co mikrokontroler robi ? " Dobre pytanie, ale chyba należałoby zapytać czego nie robi ...
    Nie wykonuje obliczeń, które robi MC14009.
    Poza tym robi wszystko, czyli :
    - czyta i interpretuje klawiaturę,
    - czyta stan wyświetlacza kalkulatora i dokonuje jego konwersji oraz interpretacji w zależności od trybu pracy (RUN/EDIT), trybu obsługi wyświetlacza ( 9/12 pozycji ), trybu oszczędzania energii i od ustawienia jasności wyświetlacza,
    - wykonuje wszystkie funkcje układów MC14010 i MC14011,
    - zachowuje i odtwarza dane i program w pamięci nieulotnej,
    - synchronizuje wszystkie swoje działania z przebiegami układu kalkulatora.
    - pilnuje porządku w całym swoim królestwie.

    Z grubsza to tyle. Jest tego oczywiście dużo więcej, ale to już detale, które na razie pozostaną tajemnicą autora :) .
    Co do schematu, to jest on blokowo bardzo podobny do tego co namalowałem z dziesięć lat temu. Różnice są nieistotne na tym poziomie opisu.

    Początkowo miałem zamiar zrobić coś strasznie wypasionego, ale po namyśle doszedłem do wniosku, że będzie zabawniej gdy to co robię będzie naśladowało pierwowzór, i tak też się stało. Zachowałem nawet oryginalne przyporządkowanie kodów operacji wewnętrznych, tak jak to opisano w instrukcji kalkulatora Elwro 190 - o ile się nie mylę.
    Co do wydajności, to nie jest to demon szybkości obliczeń, ale nie o to w tym projekcie chodziło :)
  • #6
    yego666
    Level 32  
    Procesor zasilam napięciem 5 V a liczydło napięciem 7.5 V.
    W ten sposób każdy ma to co lubi i się nie gryzą.

    Może warto spojrzeć jak na klawiaturze zostały rozlokowane funkcje trybu RUN. Widać to na rysunku poniżej. Osobną sprawą są funkcje w trybie EDIT. Niestety nie narysowałem ich ułożenia. Może za kilka dni ...

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Jakość jest raczej robocza, ale nie umniejsza to wartości informacyjnej obrazka.
  • #7
    fotomh-s
    Level 22  
    Wybaczcie mały offtop ale masz może datasheet tego wyświetlacza? Walają mi się chyba 2 sztuki takich i dobrze by było mieć na nie jakieś "papierki".

    A swoją drogą to może zrobisz jakiś film pokazujący sprzęt w działaniu. Sam interesuję się kalkulatorami programowalnymi i też myślałem o budowie jednego. Aktualnie skończyło się na napisaniu aplikacji na PC oraz sofcie dla nie tak dawno kupionego Epsona HX-20 :-) Może uda się dostać klawiaturę POS która się nadaje jako baza do budowy takiego biurkowego kalkulatora programowalnego, potem tylko procek + jakiś wyświetlacz i można kombinować.
  • #8
    yego666
    Level 32  
    W załączniku znajdziesz Service Manual kalkulatora TI-59.
    Gdzieś blisko początku ( okolo 5 czy 10 strony ) znajdziesz pinout i schemat tego wyświetlacza. Jego charakterystyki badałem eksperymentalnie, za pomocą ohmomierza.

    Co do filmiku, to chyba mało interesujące z technicznego punktu widzenia, jednak może gdyby było więcej zainteresowanych posiadaniem lub samodzielnym skonstruowaniem / złożeniem takiego kalkulatora, mógłbym założyć jakąś kampanię crowdfundingową i wtedy taki filmik byłby całkiem na miejscu.
    Niestety, sądząc po zainteresowaniu tematem na tym Forum, raczej nie wróżę wielkiego powodzenia takiej kampanii, ale temat jest otwarty i wszystko się może zdarzyć. Niemniej, dzięki za pomysł :).
  • #9
    pawlik118
    Level 28  
    yego666 wrote:
    Procesor zasilam napięciem 5 V a liczydło napięciem 7.5 V.
    W ten sposób każdy ma to co lubi i się nie gryzą.

    Może warto spojrzeć jak na klawiaturze zostały rozlokowane funkcje trybu RUN. Widać to na rysunku poniżej. Osobną sprawą są funkcje w trybie EDIT. Niestety nie narysowałem ich ułożenia. Może za kilka dni ...

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Jakość jest raczej robocza, ale nie umniejsza to wartości informacyjnej obrazka.


    Hej, czy standardowy kalkulator BRDA 12U ma też te dodakowe funckje "RUN"? Tzn chodzi mi o sin, pi , logx itp. ?
  • #10
    yego666
    Level 32  
    Standardowa Brda 12U ich nie ma, ale już Brda 14S jest trochę bogatsza, choć wciąż nie jest programowalna. Porównaj na zdjęciu poniżej.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Znalazłem też pełny schemat ułożenia funkcji na klawiaturze mojego kalkulatora. Niektóre klawisze posiadają nawet po 4 różne funkcje. Na przykład weźmy taki klawisz BST. W trybie RUN dziala on tak, że wyszukuje w programie komendy R/S przed bieżącą wartością Licznika Programu i przestawia go na adres tuż przed tą komendą ( o ile znajdzie taką ). Po wciśnięciu klawisza F ten sam klawisz ściemnia wyświetlacz LED o jeden stopień jasności. W trybie EDIT ten sam klawisz zachowuje sie jak każdy inny klawisz BackStep, a z klawiszem F wstawia w bieżącej pozycji instrukcję NOP i cofa Licznik Programu przed ten NOP.
    Inne klawisze sa podobnie obłożone funkcjami, gdyż klawiszy jest niewiele, a funkcji całkiem sporo. Na zdjęciu poniżej jest pokazany pełen układ funkcji na klawiaturze we wszystkich możliwych konfiguracjach.

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Jako że sam definiowałem wszystkie klawisze, mogłem sobie pozwolić na taki układ jaki uznałem za najlepszy. I tak procesor zamienia to na różne inne układy zależnie od sytuacji.
    Gwiazdki przy niektórych funkcjach oznaczają, że dana funkcja jest funkcją systemu operacyjnego i nie może być użyta jako funkcja programu użytkownika ze zrozumiałych względów.

    Pewnie niektórych Kolegów zainteresuje jak wszystkie podzespoły są połączone w kalkulatorze. Poniższy obrazek pokazuje schemat blokowy urządzenia.

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Sądzę, że obrazek jest samodokumentujący, więc na razie nie będę go szerzej komentował. Jeśli coś jednak nie jest jasne, proszę pytać.

    Po namyśle uznałem, że mały filmik - tak jak kolega fotomh-s sugerował wcześniej - nie zaszkodzi. Nie wiem jak się on będzie prezentował, ale spróbować nie zaszkodzi. Najpierw kalkulator oblicza silnię z liczby 12, następnie przeglądamy kolejne kroki programu, który oblicza silnię, a na końcu ten sam program oblicza silnię z liczby 5. Nic nadzwyczajnego, ale widać tutaj jak kalkulator pokazuje kolejne kroki wykonywanego programu.



    Z czerwonym filtrem na wyświetlaczu całość prezentuje się nieco lepiej, a i wyświetlana treść jest lepiej widoczna.
    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Trudno jest znaleźć kogokolwiek kto zechciałby wykonać kilka klawiszy do kalkulatora na drukarce 3D.
    Zwykle mówią O.K., ale cena będzie jak za 100 sztuk i jest to piekielnie dużo jak na taki drobiazg, no ale rozumiem... "Business is Business".
    Postanowiłem zamknąć wreszcie ten rozdział mojej radosnej twórczości w ten lub inny sposób, a że strzelać z tego nie będę, pozwoliłem sobie na zrobienie nakładek na klawisze.
    Nie wyglądają kozacko, ale widać jakie funkcje są przypisane do klawiszy i co najważniejsze nie zlizują się ( za bardzo ) ;) . Nie liczę na zachwyty, ale dla porządku uzupełniam post o zdjęcie kalkulatora z pełnym opisem głównych funkcji.

    Kalkulator programowalny z MC14009, z ciągłą pamięcią programu i danychKalkulator programowalny z MC14009, z ciągłą pamięcią programu i danych

    Właśnie dostałem "brata" polskiej Brdy 14S. Jest funkcjonalnie identyczny, ale ma wyświetlacz VFD. Zainteresowanych odsyłam do opisu: http://www.calcuseum.com/SCRAPBOOK/BONUS/08755/1.htm
    Może kiedyś pokuszę się o przełożenie swojego kalkulatora programowalnego w tę obudowę.
  • #11
    yego666
    Level 32  
    Szanowni Koledzy i Koleżanki,

    jako że pandemia nie odpuszcza i trzeba się wciąż kryć przed Bliźnimi, może komuś zechce się coś ciekawego zrobić by się nie nudzić.
    Z tego powodu zdecydowałem się dołożyć schemat i plik .hex do kalkulatora opisanego powyżej.
    Płytki nie zamieszczam, bo każdy zapewne sam sobie zrobi jak chce.

    W temacie Link są dostępne kostki kalkulatora MC14009, więc chętni mogą tanio skonstruować własny kalkulator programowany, który nie gubi ani wpisanego programu ani danych z rejestrów pamięci.

    Zyczę wszystkim zdrowia i dobrej zabawy :)
  • #12
    yego666
    Level 32  
    Jeśli ktoś chciałby zrobić kalkulator w takiej formie jak go przedstawiłem, chętnie udostępnię artwork swojego egzemplarza, jednak sądzę że takie układy jak BA614 czy MAX606 oraz wyświetlacz od TI59 będą raczej trudno osiągalne i trzeba będzie je zastąpić innymi układami, a to z kolei wymagać będzie innego artworku, stąd nie publikuję projektu swojej płytki.
  • #13
    yego666
    Level 32  
    W swoim kalkulatorze użyłem baterii LiIon i zewnętrznej ładowarki, stąd w układzie nie ma nigdzie regulatora ładowania.
    Dla wygody może warto by taki regulator dołożyć wewnątrz i ładować baterię kalkulatora z typowego gniazda USB lub ładowarki USB?
  • #14
    yego666
    Level 32  
    yego666 wrote:
    Jeśli ktoś chciałby zrobić kalkulator w takiej formie jak go przedstawiłem, chętnie udostępnię artwork swojego egzemplarza, jednak sądzę że takie układy jak BA614 czy MAX606 oraz wyświetlacz od TI59 będą raczej trudno osiągalne i trzeba będzie je zastąpić innymi układami, a to z kolei wymagać będzie innego artworku, stąd nie publikuję projektu swojej płytki.

    Dodać należy, że zamiast układu MAX606 można zastosować na przykład układ MC34063 w konfiguracji boost.
    Istotne jest, by układ startował przy napięciu wejściowym (napięciu baterii zasilającej) ok. 3V.
    Możliwe jest również zastosowanie zasilania o zupełnie innej niż zaproponowana wartości, jednak należy wtedy użyć odpowiedniego układu konwertera DC/DC, tak by podawał odpowiednie napięcia dla zasilanych układów.

    Zamiast układów BA614 można użyć dowolnych układów produkcji krajowej (CEMI) przeznaczonych do sterowania wyświetlaczy LED ze wspólną katodą, lub układów serii ULN2004 lub ULN2024.
    Pamiętać jednak należy o podłączeniu wyprowadzenia wspólnej katody diod zabezpieczających do dodatniego bieguna zasilania układu MC14009.

    Zamiast wyświetlacza od kalkulatora TI-59 można użyć dowolnego wyświetlacza 9-cio lub 12-to pozycyjnego, n.p. od kalkulatora BRDA14S (12 pozycji) lub od kalkulatora BOLEK, BRDA10U, BRDA11U, BRDA12U lub LOLEK (9 pozycji).
    Ważne jest, by był to wyświetlacz ze wspólną katodą.
  • #15
    yego666
    Level 32  
    Zrobiłem nową wersję programu, gdzie odszedłem od "tradycyjnego" przyporządkowania numerów funkcji, które kiedyś producent kostki 14011 sobie arbitralnie wymyślił.
    To przyporządkowanie nie miało żadnego logicznego wytłumaczenia i było trudne do nauczenia się na pamięć.
    W nowej wersji funkcje mają takie kody jakie położenie na klawiaturze mają odpowiadające im klawisze, a więc nawet nie znając numerów tych funkcji, łatwo znaleźć je na klawiaturze.

    Przy okazji usprawniłem program w tym, że wejście w tryb EDIT i edycja programu nie narusza zawartości rejestru X oraz innych rejestrów przejściowych kalkulatora, tak że po wyjściu z tego trybu możemy kontynuować porzucone obliczenia z już wprowadzonymi danymi.

    Zainteresowanych tą wersją softu proszę o kontakt na PW.
  • #16
    pismar
    Level 14  
    jesli sam narysujesz te przyciski najlepiej plik "stl" to wydrukuje je za free