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.

Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

phanick 01 Feb 2021 18:13 3795 15
  • Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Dziś na tapecie znajdzie się dzwonek do drzwi o nazwie kodowej MIK64, który nabyłem dawno, dawno temu, nie wiedząc do końca nawet, co to jest. Niedawno osoba, od której go wtedy kupiłem odezwała się do mnie z prośba o zbadanie go z uwagi na całkowity brak informacji w sieci, więc postanowiłem zgłębić temat. Dodatkowo postanowiłem też stworzyć jego wierną kopię (reprodukcje) jako prezent. Miało być łatwo, szybko i przyjemnie, a jak wyszło? Przekonajcie się sami...

    Wstęp
    O polskim komputerku CA80 firmy MIK słyszał chyba każdy, a czy wiecie, że na koncie tej firmy było też kilka innych urządzeń (dzwonek do drzwi, pozytywka, sterownik dzwonka szkolnego, tablice diodowe, próbnik logiczny)? Zapraszam do zapoznania się z moją galerią: https://www.elektroda.pl/rtvforum/topic3205407.html.
    Ten temat będzie o dzwonku do drzwi.

    Z informacji znalezionych w sieci:
    Źródło - magazyn "Elektronik Hobby 06.1993":
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Źródło - aukcja allegro:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    widać, że był on sprzedawany razem z dedykowaną obudową w specjalnie przygotowanym pudełku. Jednak moja wersja to jakaś samoróbka - płytka główna jest co prawda taka jak w oryginale, ale obudowa jest już inna (uniwersalna), głośnik jest inny (większy), dodatkowo jest też gniazdo chinch na drugi głośnik wraz z dodatkowym potencjometrem. Oraz mnóstwo artystycznego nieładu w przewodach:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Odtwarzanie schematu
    Na podstawie zdjęć i z pomocą miernika ciągłości odtworzyłem układ ścieżek i pośrednio schemat.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Teraz przyszedł czas na odszyfrowanie tajemniczych elementów ze startymi oznaczeniami:
    1) U1 = DIP40 - to oczywiście Z80CPU

    2) U2 = DIP24 to bez wątpienia jakiś EPROM (w tej obudowie może to być: 2708 (1kB), 2716 (2kB) lub 2732 (4kB). Wszystkie one mają jednak taki sam pin-out (standard JEDEC), po prostu miejsca wyższych linii adresowych są w mniejszych pamięciach albo nieużywane albo przeznaczone na napięcie programowania. Zasadniczo zwykle wystarczy taką pamięć odczytać w programatorze jako "największy model", a potem tylko usunąć zdublowaną zawartość. Warto wyłączyć detekcję modelu (raz aby programator nie krzyczał błędami gdy model nie będzie się zgadzał, a dwa - żeby pamięci nie uszkodzić, bo detekcja modelu polega na podaniu wysokiego napięcia na jeden z pinów i odczyt przez programator sygnatury)
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    3) U3 = DIP14 - tu miałem małą wątpliwość.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Patrząc na piny zasilania (7=GND, 14=VCC) doszedłem do wniosku, że to musi być jakiś układ 74XX. Patrząc na wzajemne kaskadowe połączenia pinów ze sobą oraz dołączone elementy R/C było jasne, że to jakieś dwuwejściowe bramki odwracające, które generują sygnał zegarowy dla procesora. Dodatkowo kolejność wejść/wyjść zdradziła od razu, ze musi to być 74*02 (4x bramka NOT OR). Dlaczego? Wszystkie podwójne bramki mają skierowane wyjścia w dół, jedynie w 74*02 są w górę:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Późniejsze sprawdzenie w testerze oczywiście potwierdziło to.

    4) U4 = DIP14 - tutaj miałem dużą wątpliwość
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Rozkład pinów zasilania tez sugerował układ 74XX. Podłączenie linii adresowych od procesora oraz tranzystora sterującego głośnikiem sugerowałoby jakiś dekoder (te jednak są w obudowach DIP16) lub zatrzask (przerzutnik). Dobrze mi znany przerzutnik RS (7474) nie pasował wyjściami i wejściami do powyższego połączenia. Przeglądając noty katalogowe innych układów doszedłem do wniosku, że przerzutnik JK jedynkująco-kasujący (74107) by odpowiadał. Jakoś nigdy nie miałem z nim wcześniej do czynienia, a jedyny mój kontakt z tym układem był ok. 9 lat temu na studiach na wstępie do układów logicznych (i to tylko w teorii).
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Niestety programator (TL866) ne ma w opcjach testu możliwośći sprawdzenia tego układu.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Ale jako, że miałem w swojej kolekcji akurat dwa układy 74107 (i oba polskiej produkcji CEMI) to postanowiłem do swojego testera dodać definicję tego układu, potem sprawdzić jej poprawność na posiadanych układach a w końcu zweryfikować, czy układ ze startym oznaczeniem to 74707 (było to bardzo prawdopodobne, że to nawet też scalak spod szyldu CEMI - kształt wgłębienia i obecne napisy od dołu obudowy były podobne)

    Niestety, tester nie chciał potwierdzić działania posiadanych układów mimo, że funkcja testu była zgodna z oczekiwanym zachowaniem układów na podstawie specyfikacji. Próbowałem spowolnić test, ale niczego to nie zmieniło. Po długim czasie szukania możliwych przyczyn i badaniu miernikiem poziomów napięć okazało się, że coś się nie zgadza. Albo oba posiadane układy byłyby uszkodzone (mało prawdopodobne), albo.. problemem były rezystory zabezpieczające (1k) w szeregu na każdej linii testera. Okazuje się, ze te układy od CEMI są tak marne, że swoimi wejściami pobierają gigantyczny prąd:
    Prąd 1.6 mA przy rezystorze 1 k to już 1.6 V spadku z 5 V, jeszcze do zniesienia. Ale 17mA? Dramat..
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Ja rozumiem, że TTLe muszą wejściami pobierać prąd (wszakże to nie CMOSy), no ale taki pierwszy z brzegu 74LS107 od National Instruments to pobiera max 0.4 mA
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Może to i dobrze, że CEMI upadła? Łezka się w oku kręci sentymentalistom, że mieliśmy własną wytwórnie półprzewodników. Ale z technologią to jednak byliśmy za murzynami.
    Wykładowca kiedyś żartował, że piekli te wafle krzemowe w piecu po kiełbaskach i to w nocy, bo raz że w dzień piec był używany do kiełbasek, a dwa że w dzień jeździły tramwaje i od drgań by im nie wychodziły te wafle. Chyba miał rację (kto robi fabrykę półprzewodników w środku miasta??)

    Schemat
    Po tych przemyśleniach dzwonek został rozpracowany. Jest tu:
    * transformator 230V-12V z mostkiem prostowniczym zasilającym całość

    * procesor Z80 ze swoją pamięcią taktowany zegarem 2.9 MHz

    * pojedynczy tranzystor sterujący głośnikiem (na zasadzie włącz/wyłącz - PWM; bez odcinania składowej stałej)

    * transoptor odbierający sygnał z zewnętrznego przycisku, zasilanego z 12V

    * przyciski zwierające reset i dwie linie przerwań procesora

    * przerzutnik JK, podłączony w ten sposób, że cykl zapisu przez procesor pod adres:
    $40 - powoduje włączenie głośnika (podanie na niego zasilania 5V)
    $80 - powoduje wyłączenie głośnika (odłączenie go od zasilania)
    Czyli klasyczny 1 bitowy PCM.

    * dziwny wihajster z przodu (wtyczka mini-jack), która po wsadzeniu zwiera drugą stronę przycisków R/T/D do masy (bez niej przyciski nie są do niczego podłączone) - zabezpieczenie przed zmianą nastawień np przez dzieci?
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Reprodukcja
    Przyszedł krok na zaprojektowanie własnej płytki. Poprawiłem w stosunku do oryginału kilka rzeczy
    * umieszczenie wszystkich elementów (potencjometrów, kostki do przewodów) bezpośrednio na PCB (uniknięcie plątaniny przewodów),
    * zasilanie bezpośrednio z 9V (kto w dzisiejszych czasach stosuje transformatory)
    * dodanie mostka prostowniczego z diod za wejściem zasilania DC (aby zarówno zasilacz z PLUSEM jak i MINUSEM w środku działał)
    * dodanie rezystorów podciągających linii /NMI, /INT, /RESET (może wersja TTL procesora Z80 ich nie wymagała, ale w CMOSowych to obowiązkowe)
    * dodanie kondensatorów eliminujących drgania styków przycisków
    * podłączenie wejść drugiej nieużywanej bramki 74107 do +5V. W oryginale była ona podłączona jak niżej, czyli nic nie robiła. W sumie nie wiem jaki miał być zamysł tego niedokończonego czegoś (jakiś dzielnik?).
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Odpowiednie umiejscowienie elementów sprawiło, że płytka wyszła praktycznie jednostronna (na górze tyle ścieżek, co kot napłakał). Wg mnie bardziej estetyczna niż oryginał, ha:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Uruchamianie
    Jak to w życiu bywa, projekt (prawie) nigdy nie działa od pierwszego uruchomienia. Albo błąd w schemacie, albo błąd w wykonaniu (podtrawienie/zwarcie), albo lutowaniu (zwarcie/odwrotnie wlutowanie). I tu było nie inaczej - układ po włączeniu nie dawał jakichkolwiek oznak życia. Ale jak się okazało po 2 dniach debugowania - mimo poprawnego odtworzenia schematów i poprawnego wykonania, przyczyny problemów były zupełnie nietypowe.

    Sygnał zegarowy
    Pierwszy kłopot to brak sygnału zegarowego na wejściu procesora. Czyżby coś nie tak z generatorem zbudowanym z bramek? Przecież jest identyczny jak w oryginale, sprawdziłem 10 razy, nawet wylutowałem elementy R/C z oryginału, aby poprawnie zmierzyć ich wartość (to C5 to nie wiem co to miało być - na płytce było miejsce na przylutowanie tam jakiegoś elementu SMD - ale czy kondensator, rezystor, dioda, kto wie.. ja tam nic nie dawałem)
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Przeglądając schematy generatorów na bramkach w sieci, spotykałem identyczne jak tu, więc układ jest poprawny (w sieci dominują na bramkach NAND lub negatorach ale to bez różnicy, bo ten NOR jest przecież tak połączony, że działa właśnie jak negator). No ale nie działa. Może ten układ bez oznaczeń to jednak nie 7402? No ale przechodził test.. No ale może to jest jakiś z wejściami Schmitta? Zbudowałem na szybko taki generator na płytce drukowanej, nieobciążony procesorem, aby wykluczyć wpływ innych elementów, tez nie działa. Może mój układ 74LS02 jest uszkodzony? Dałem inny 74LS02, tez nie działa.. Przecież to jest proste jak drut. Nawet sobie rozpisałem mechanizm generacji:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Ale okazuje się, że ten opis działa do układów idealnych (i CMOSów, bo one są bliskie ideałom). TTLe, która w środku zbudowane są jak poniżej mają inne własności i łączenie ich z analogowym światem nie jest takie różowe.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    robiłem sobie nawet prosty eksperyment - wziąłem dwa scalaki: 74HC00 (CMOS) i 74LS00 (TTL) i połączyłem wejście z wyjściem jednej bramki w każdym z nich:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Zgodnie z oczekiwaniem, w przypadku 74HC00 na wyjściu otrzymałem generator o dużej częstotliwości (ograniczonej przez szybkość bramki), a dla 74LS00 otrzymałem na wyjściu jakieś 1.2V napięcia stałego.. Dramat. Ale dlaczego? Problem jest z łączeniem wejścia z wyjściem tej samej bramki. W TTLach to nie będzie generować, bo nawet pojedynczy tranzystor przecież można rozpatrywać jako inwerter (klucz nasycony) Ale przecież łącząc jego wejście z wyjściem nie będzie generował:
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Aby rozwiązać problem, należy zlikwidować sprzężenia wejścia z wyjściem tej samej bramki. W tym celu wykorzystam trochę inny układ. Ma dwie zalety - pierwsza jest taka, że działa z TTLem, a druga - różni się minimalnie w stosunku do pierwszej - dlatego wystarczy wylutować R2 i przelutować go w inne miejsce, obędzie się nawet bez cięcia ścieżek.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Po tej zmianie sygnał zegarowy już się pojawił ale, układ nadal nie działał..

    Dziwna pamięć EPROM
    Okazuje się, że pamięć EPROM, która siedziała w oryginalnym dzwonku nie została przeze mnie prawidłowo sczytana. W programatorze TL866 każdy odczyt dawał różniące się między sobą kilkoma bajtami wyniki. Sugerowałoby to:
    * uszkodzenie pamięci (ulotnienie się danych) - jednak oryginalny dzwonek przecież działał
    * brudne styki (te przeczyściłem, bez efektu).
    Nie mogąc zmusić TL866, wykorzystałem swój drugi, autorski programator (używałem go zanim kupiłem TL866, a obecnie tylko sporadycznie do odczytu pamięci, których TL nie obsługuje)
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Dopiero dodanie ok. 500 us przerwy pomiędzy wystawieniem adresu, a odczytem magistrali danych pozwoliło na osiągnięcie powtarzalnych wyników (wniosek: ta pamięć jest straszliwie wolna). Przy okazji z 4 kB odczytanych danych, druga połowa była identyczna z pierwszą, co oznacza, że to pamięć 2716.

    Przeprogramowałem więc pamięć w mojej kopii dzwonka ("EPROM-KOPIA1") świeżo odczytaną zawartością (mam nadzieje że już teraz poprawną). Tym razem dzwonek ożył, jakoś działał, ale.. Niektóre (większość) melodii miałem wrażenie, że nie jest odgrywana prawidłowo (pojawiały się losowe tony). Może jakiś błąd na płytce? Przełożyłem pamięć z oryginalnego dzwonka ("EPROM-ORYGINAŁ") do mojej kopii no i działa prawidłowo. Czyli płytka jest OK, z pamięcią coś nie tak. Odczytałem EPROM-KOPIA1 - ta jest bit w bit identyczna z "EPROM-ORYGINAŁ".
    To może EPROM-KOPIA1 jest za wolna? (450 ns). Wziąłem drugą (200 ns) i zaprogramowałem. Efekt identyczny. Wziąłem trzecią i zaprogramowałem - też identyczne losowe tony.
    To może w końcu źle odczytałem pierwowzór? Wyciągnąłem z szafy komputerek przenośny 386, do którego kiedyś zrobiłem obudowę z paneli podłogowych, podłączyłem do niego archaiczny programator Piccolo na port szeregowy, odczytałem nim "EPROM-ORYGINAŁ". Wynik identyczny jak za pomocą wcześniejszego programatora. Czary jakieś? Może jakimś cudem Z80 wie, że to kopia a nie oryginał i dlatego odmawia współpracy? (np. odczytując sygnaturę pamięci czy wykorzystując jakieś inne nieznane własciwości)? Raczej niemożliwe :D
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Postanowiłem przyjrzeć się jeszcze raz na schemat połączeń tej pamięci. To, co przykuło moją uwagę to linia Z80-A11 podłączona do pinu 18, który w pamięciach 2716/2732 jest pinem /CE.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)
    Nie znam dokładnie architektury Z80 ale takie połączenie spowodowałoby, że pamięć byłaby jedynie aktywna w sytuacji, gdy Z80-A11 byłoby zerem, czyli gdy CPU odwołuje się jedynie do zakresu $000-$7ff. Byłoby to logiczne, gdyby na płytce były tez inne układy wejścia/wyjścia (np. pamięć RAM), wtedy można byłoby w ten sposób dodać do przestrzeni adresowej kilka układów bez konieczności użycia zewnętrznego dekodera. Np łącząc dodatkowo Z80-A12 z /CE pamięci RAM można byłoby spowodować, że:
    Code:

    A80-A12  | Z80-A11 |
    =RAM/CE  | =ROM/CE |
       0     |    0    |  $0000-$07ff - dostęp zabroniony (wtedy obie pamięci są aktywne)
       0     |    1    |  $0800-$0fff - dostęp do pamięci RAM
       1     |    0    |  $1000-$17ff- dostęp do pamięci ROM

    Tutaj jednak była pojedyncza pamięć, więc takie kombinacje byłyby bezcelowe. Teraz dopiero przypomniałem sobie, że w pamięciach MASK-ROM z kartridży od Atari 2600, podobnie jak tutaj, pin 18 nie pełnił funkcji /CE ale pod nim była jedenasta linia adresowa. Zmodyfikowałem oprogramowanie swojego programatora tak, aby też sterował ta linią jako jedenastą no i bomba - otrzymałem 4 kB danych, z których pierwsza połówka (A11=0) oraz druga połówka (A11=1) są RÓŻNE. To wyjaśniło, dlaczego z moim zaprogramowanym EPROMEM to nie działało: w momencie gdy procesor ustawiał A11=1, pamięć się dezaktywowała podczas gdy powinna wystawiać swoją druga połowę danych. Po ponownym przeprogramowaniu "EPROM-KOPIA" oraz drobnej modyfikacji PCB, moja kopia dzwonka wreszcie zaczęła działać!


    Zgranie melodii
    Na zakończenie chciałem zgrać wszystkie melodie z dzwonka do komputera. Mogłem albo zdekompilować kod, próbować go analizować i wyciągnąć z niego tony, które są grane albo zgrać wyjście głośnika za pomocą wejścia karty dźwiękowej i poddać następnie otrzymany plik analizie, aby wyciągnąć z niego nuty (wysokości tonów + czas trwania).

    Zapoznałem się wreszcie dokładnie z instrukcją dzwonka - musiałem ją czytać z 15 razy aby zrozumieć o co chodzi.

    Code:

    Skrócona instrukcja obsługi:
    Objaśnienia:
    R - klawisz lewy,
    T - klawisz środkowy,
    D - klawisz prawy
    [D] oznacza potwierdzenie klawiszem D
    - kreska oznacza stan po naciśnięciu T i odegraniu długiego sygnału
    Naciśnięcie klawisza:
    R      - w dowolnej chwili, to wybór firmowych parametrów
    T      - w czasie grania to, wybór firmowych parametrów (jak R)
    D      - w czasie gdy pozytywka nie gra to odegranie kolejnej melodii
    T[D]   - wybór zestawu
    T      - blokowanie ostatnio odegranej melodii
    T-T[D] - wybór barwy tonu
    T-T    - melodie długie na krótkie i odwrotnie
    T-D[D] - wybór szybkości grania
    T-D    - wyzwalanie przerywane na ciągłe i odwrotnie
    Wybór zestawu: .1.2.3.4.5.6.7.8.9
    Kropka oznacza krótki sygnał po naciśnięciu klawisza T

    Spis melodii zawartych w poszczególnych zestawach: (C) - oznacza melodię zakodowaną w całości lub obszernym fragmencie.
    Kolędy
    01.   Dzisiaj w Betlejem (C)
    02.   Gdy się Chrystus rodzi (C)
    03.   Gdy śliczna Panna Syna kołysała (C)
    04.   Wśród nocnej ciszy (C)
    05.   Przybieżeli do Betlejem (C)
    06.   Ach ubogi żłobie (C)
    07.   Pójdźmy wszyscy do stajenki (C)
    08.   Jezus malusieńki (C)
    Ludowe i popularne
    09.   Szła dzieweczka (C) Śląsk
    10.   Czerwone jabłuszko (C) Kujawy
    11.   Prząśniczka (C) Łódź
    12.   Kukułeczka (C) Mazowsze
    13.   Jeszcze jeden mazur dzisiaj (C) Tymulski
    14.   Upływa szybko życie (C) F. Leśniak
    15.   Płonie ognisko J. Braun
    16.   Głęboka studzienka Krakowskie
    17.   Poszła Karolinka Śląsk
    18.   Hej, idem w las Podhale
    19.   Hej, bystra woda Podhale
    20.   Nie chcę cię (C) Śląsk
    21.   Płynie Wisła płynie (C) Krakowskie
    22.   Krakowiaczek ci ja (C) Krakowskie
    23.   Zasiali górale (C) Śląsk
    24.   W murowanej piwnicy Podhale
    25.   Umówiłem się z nią na dziewiątą
    26.   A jak będzie słońce i pogoda Kujawy
    27.   Tylko we Lwowie H. Wars
    28.   Płonie ognisko w lesie Harcerska
    29.   Kurdesz (C)
    30.   Sto lat (C)
    Żołnierskie
    31.   Rozkwitają pąki białych róż (C)
    32.   Dziś do ciebie przyjść nie mogę (C)
    33.   Rozszumiały się wierzby płaczące (C)
    34. O mój rozmarynie (C)
    35.   Wojenko wojenko (C)
    36.   Przybyli ułani pod okienko (C)
    37.   Raduje się serce (C)
    38.   Maszerują strzelcy maszerują
    39.   Serce w plecaku
    Rock i inne
    40.   When I'm sixty four (C) The Beatles
    41.   Yellow submarine The Beatles
    42.   Ob-la-di, Ob-la-da The beatles
    43.   Alouette (C)
    44.   My Bonnie (C)
    45.   When the Saints (C)
    46.   Happy birthday to you (C)
    47.   The entertainer
    48.   Ojciec chrzestny
    49.   La Cumparsita
    Klasyka
    50.   Dla Elizy (C) L.V. Beethoven
    51.   Kankan (C) J. Offenbach
    52.   Marsz tryumfalmy G. Verdi
    53.   Marsz torreadora G. Bizet
    54.   Jezioro łabędzie P. Czajkowski
    55.   Bolero M. Ravel
    56.   Fale Dunaju J. Ivanovich
    57.   Marsz weselny F. Mendelssohn
    58.   Kalinka (C)
    Patriotyczne
    59.   Pierwsza brygada (C)
    60.   Jeszcze Polska nie zginęła
    61.   Warszawianka K. Kurpiński
    62.   Rota (C) F. Nowowiejski
    63.   Jak długo w sercu naszym (O)
    64.   Wszystko co nasze


    Jakieś magiczne sekwencje klawiszy; niektóre takie same sekwencje robią inne rzeczy - masakra; autor dzwonka jest zdolnym dydaktykiem, elektronikiem, ale niestety na projektowaniu interfejsu użytkownika się nie zna.
    Próbowałem ustawić wyzwalanie ciągłe (czyli aby trzymanie przycisku dzwonka powodowało odgrywanie wszystkie melodie po kolei + ustawienie zestawu wszystkich melodii).
    Wg instrukcji T-D. Ale ta kombinacja też powoduje możliwość wyboru szybkości grania (zaczynają się odtwarzać melodia z różnych tempach). Kompletnie nieintuicyjne.

    Finalnie się udało. Wszystkie melodie trwają 17 minut. Jest to oczywiście sygnał prostokątny o 2 wartościach (1 bitowy PWM). Początkowo zastanawiałem się, czemu jest tyle częstotliwości na spektrogramie, potem przypomniałem sobie ze studiów, że przecież sygnał prostokątny ma nieskończone widmo :)
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Ostatnie szlify
    Zwieńczeniem całości było zapakowanie całej płytki do obudowy, przykręcenie jej, wycięcie otworów na gniazda oraz przymocowanie głośniczka.
    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64) Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)


    Link

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    phanick
    Level 28  
    Offline 
    phanick wrote 2319 posts with rating 2282, helped 54 times. Live in city Warszawa. Been with us since 2007 year.
  • OxomiOxomi
  • OxomiOxomi
  • #3
    MikeC
    Level 27  
    Jak dla mnie super .. Sam kiedyś budowałem CA80 i do dziś posiadam wszystkie książki "mikroelektronika moje nowe hobby " , kawał czasu i dla produktów firmy "MIK" wielki sentyment .. Według katalogu Mika (dostawało się kiedyś taki po przesłaniu koperty zwrotnej ) powinno być 22min muzyki - ciekawe skąd ta różnica ?

    Dzwonek do drzwi oparty na procesorze Z80 (reprodukcja MIK64)

    Dobra robota Krzysiek . . Pozdrawiam .
  • #4
    SylwekK
    Level 31  
    Nie miałem tego komputerka, choć planowałem zakup (zainteresowałem się innym), ale o jego świetnej dokumentacji legendy krążyły i żałuję trochę, bo taka wiedza wtedy to jak złoto.
  • #5
    puchalak
    Level 12  
    Wspaniały projekt. Najfajniejszy jest w zasadzie jego bezsens i komplikacja. W dobie lepienia z chińskich modułów zasilaczy i wzmacniaczy fajnie, że się komuś jeszcze chce.
    Co do TTL-i CEMI:
    Pamiętam, że na przełomie lat 80. i 90. wyłudziłem od kolegi komputer PSPD90, który ten otrzymał od wujka pracującego w KFAP-ie. To była konstrukcja! 8080 i z dwie setki TTL-i plus płyty dodatkowych pamięci (ok. 64 szt. + kilka adresujących kostek - 8 kB). Mimo że z założenia cały miał być na krajowych częściach, o dziwo większość kości była zagraniczna, choćby czechosłowacka. Miałem parę lat później okazję porozmawiania z konstruktorem - okazało się, że kości CEMI były tak beznadziejne, że nie dało się na nich uruchomić konstrukcji.
  • #6
    szeryf3
    Level 21  
    Szacunek za upartość i odtwarzanie elektroniki lat 80-90.
    Dowiedzialem się od Ciebie, że taka firma istniała.
  • #7
    tomekptk
    Level 15  
    Gratulacje za samozaparcie. Kiedyś konstruowałem zbliżone układy i programowałem Z80 - lata 80-te. Co do jakości CEMI nigdy nie miałem problemów, ale to może kwestia szczęścia. Natomiast budując kiedyś mikrokomputer na NRD-owskim odpowiedniku Z80 i w oparciu o radzieckie części miałem problem z niedziałającą pamięcią, która po otwarciu okazała się pusta - "zapomnieli" włożyć strukturę. A może sabotaż jakiegoś więźnia - przymusowego robotnika w GUŁAG-u? Kto to wie?
  • #8
    marekzs3
    Level 19  
    Kiedyś CA80 znałem BARDZO dokładnie.
    Przerobiłem program "monitora" tak że pisałem kod na PC - kompilowałem i plik HEX przesyłałem do CA80 przez RS232
    Trochę przeszkadzało przerwanie nie-maskowalne i szybkość była chyba 600 bodów ale i tak było to duże udogodnienie.
    Praca z magnetofonem to była masakra.
  • #9
    Piotr160292
    Level 38  
    Projekt ciekawy, chociaż ja nie widzę sensu zadawania sobie tyle zachodu w momencie jak grający dzwonek można za 14 zł. można kupić do złożenia w dużo bardziej kompaktowej postaci...
  • #10
    phanick
    Level 28  
    Przecież tu nie chodzi o to, aby mieć dzwonek, tylko:
    1) Aby odtworzyć kawałek historii i poznać sekrety tej konstrukcji
    2) Zrobić kopię z celu weryfikacji poprawności
    3) Nauczyć się czegoś

    :)
  • #11
    Piotr160292
    Level 38  
    No w tym momencie to zgoda - miałem to podkreślić że ew. w tym celu, ale mi umknęło... Ja sam czasami nawet podejmuję się napraw które serwis odrzuca narażając się na utopienie pieniędzy tylko po to, aby właśnie czegoś więcej się nauczyć i w przyszłości móc po prostu sprawnie do takiego wniosku dojść, że coś nie ma sensu bo padła część niedostępna/zbyt droga...
  • #12
    ^ToM^
    Level 39  
    No dobrze, ale my też chcemy sobie taki zbudować :)
    Poprosimy o wsad pamięci EPROM - bez tego ani rusz.

    Pozdrawiam!
  • #14
    janek_wro
    Level 21  
    phanick wrote:
    Przecież tu nie chodzi o to, aby mieć dzwonek, tylko:
    1) Aby odtworzyć kawałek historii i poznać sekrety tej konstrukcji
    2) Zrobić kopię z celu weryfikacji poprawności
    3) Nauczyć się czegoś

    :)
    Popieram powyższe tezy w zupełności :)
    Piękna rekonstrukcja.
    Sam zaczynałem kiedyś od µC Z80, CA80, i książek MIK*
    Z tamtych czasów pamiętam jak to pięknie uczy cierpliwości i wytrwałości. A to cechy dosyć przydatne obecnemu pokoleniu.