Naprawa płyty PCB

Rekonstrukcja wielowarstwowej płyty CPU sterownika wysokiego składowania, po zalaniu wodą.

Poniżej przedstawiamy Państwu, w kilku krokach, proces naprawy płytki drukowanej zniszczonej poprzez długotrwałe utlenianie się miedzi (pot. śniedź) na skutek korozji wywołanej obecnością wody w obrębie uszkodzonego fragmentu płyty.
Uszkodzenie takie, w brew pozorom jest zjawiskiem bardzo częstym i zachodzi głównie na płytkach PCB niezabezpieczonych antyadhezyjną warstwą ochronną (np. poliurethanem), tak jak to miało miejsce właśnie w tym przypadku .
Czasami również i na zabezpieczonych płytach można zaobserwować korozję na skutek długotrwałego narażenia urządzenia na nieprzyjazne środowisko o krytycznym poziomie wilgotności, w takich przypadkach dotyczy to głównie uszkodzeń powstałych w obrębie złącz, konektorów, czy innych nawet masywnych elementów, których zabezpieczenie jest utrudnione lub w ogóle nie możliwe.

Pokazana na fot.1. płyta została przyjęta do naszego Serwisu w trybie awaryjnym, z objawem braku komunikacji CPU z otoczeniem, co zostało stwierdzone przez serwis fabryczny wezwany z powodu alarmu na panelu operatorskim maszyny i zatrzymania pracy urządzenia.
Szybka diagnoza wizualna pozwoliła ustalić obszar i rodzaj uszkodzenia, co z kolei zaowocowało zaplanowaniem i podjęciem określonych czynności serwisowych zmierzających do usunięcia usterki.

fot.1 Wygląd fragmentu płyty przed przystąpieniem do naprawy.

Jak widać powyżej, uszkodzeniu uległ układ scalony odpowiedzialny za komunikację szeregową, wraz z elementami towarzyszącymi C36-C38 oraz C34. Elementy te zostały wytypowane do wymiany, a dodatkowo wymianie muszą ulec również: kondensator filtrujący zasilanie C35 (są już na nim widoczne początki korozji), rezystor R30 oraz pobliskie 6cio pinowe złącze listwowe (i tak wymaga ono wylutowania ze względu na widoczne podcieknięcia pod jego obudowę).

fot.2 Widok bezpośrednio po usunięciu skorodowanych elementów elektronicznych.

Fot.2 przedstawia stan płyty po usunięciu większości wytypowanych do wymiany elementów oraz zabezpieczeniu sąsiadujących fragmentów płyty (w tym delikatnych i nie odpornych na wysoką temperaturę złącz IDC) taśmą ochronną typu Capton, której zadaniem jest zabezpieczenie sprawnych elementów przed ewentualnymi uszkodzeniami, głównie termicznymi, podczas np. lutowania gorącym powietrzem.
Na fot.3 dodatkowo możemy zauważyć liczne wżery i uszkodzenia skorodowanych padów (punktów lutowniczych elementów SMD), których sprawność i właściwości elektryczne zostaną przywrócone w toku dalszych czynności naprawczych.

fot.3 Układ ścieżek i padów przygotowany do wlutowania nowych części.

Na fot.3 widzimy już zrekonstruowane pady większości podlegających wymianie elementów. Całość powleczona została odpowiednim fluxem żelowym a pady przygotowane do lutowania na nich nowych części.
Zarówno wylutowanie uszkodzonych, jak i wlutowanie nowych elementów elektronicznych SMD odbywało się techniką mieszaną. Wykorzystano do tego celu zarówno lutownicę grzałkową małej mocy wyposażoną w grot szpilkowy (igłowy) o średnicy końcówki mniejszej niż 0,2mm, jak i technikę lutowania gorącym powietrzem (hot-air) z dyszą okrągłą o standardowej średnicy, stacja wyposażona jest w stabilizację temperatury i przepływu.
Wylutowanie 6cio pinowego złącza listwowego zostało zrealizowane przy pomocy lutownicy grzałkowej z grotem typu “wkrętak” (szerokość płetwy 1,2mm) oraz odsysacza automatycznego Weller z końcówką o średnicy 2,5mm. W procesie wylutowywania użyto również preheatera (podgrzewacza na podczerwień) o temperaturze procesu ok. 200st.C. Użycie tego narzędzia było wygodne z uwagi na brak elementów SMD na płycie od jej dolnej strony (bottom), co znacznie przyśpieszyło proces.
Temperatura procesu górnej warstwy płyty (warstwa elementów – top) zarówno przy wylutowywaniu, jak i wlutowywaniu elementów, nie przekraczała 440st.C. i była podyktowana pracą ze spoiwem bezołowiowym, którym była fabrycznie zlutowana naprawiana płyta.
Podczas reworkingu (wymiany uszkodzonych części) użyta została cyna z dodatkiem ołowiu, typu “tinol” i temperaturze pracy 325st.C, co jest zgodne z dyrektywą RoHS, która dopuszcza użycie takiej cyny w procesach naprawczych elektroniki.

fot.4 Widok płyty po naprawie.

Na fotografii powyżej widać płytę po wlutowaniu elementów, wykonaniu wstępnego mycia nadmiaru fluxa oraz sprawdzeniu połączeń elektrycznych. Zostało, jak widać, wlutowane także nowe gniazdo listwowe, a taśma ochraniająca (Capton) została już usunięta.
Po dokładnym ponownym umyciu i osuszeniu płyty, będzie ona gotowa do testów funkcjonalnych przeprowadzonych w warunkach warsztatowych, przed odesłaniem do Klienta w celu uruchomienia na maszynie.

Firma Elektronika Serwis wykonuje naprawy i rekonstrukcje wielowarstwowych płyt PCB wykonanych w technologii SMD, THT oraz mieszanej.

Należy pamiętać jednak, że nie wszystkie rodzaje uszkodzeń takiej płyty są możliwe do naprawy i przy tym opłacalne ekonomicznie. Głównymi przyczynami niezakwalifikowania do serwisu są:
– uszkodzenia elementów uniemożliwiające ich identyfikację, w których mimo analizy układu i na podstawie własnego doświadczenia, nie jesteśmy w stanie określić typu uszkodzonej części.
– uszkodzenia przelotek (vias) na płytach wielowarstwowych, gdzie uszkodzeniu uległo połączenie pomiędzy jedną z warstw niewidocznych (wewnętrznych).
– niektóre uszkodzenia połączeń ścieżek na którejś z warstw wewnętrznych.
– masywne, rozległe uszkodzenia płyty obejmujące wiele warstw ścieżek i uszkodzenia laminatu (kanwy PCB), powstałe np. w skutek pożaru lub bardzo wysokiej temperatury działającej punktowo.


Sterownik oświetlenia LED

Sterowników oświetlenia jest chyba milion, zwłaszcza odkąd pojawiły się diody LED, a z nimi tzw. paski lub taśmy LEDowe. Ten jednak sterownik umożliwia sterowanie z pilota radiowego, będąc przy tym bardzo elastycznym i uniwersalnym. Jest on oparty na module Arduino NANO, dzięki czemu używając środowiska Arduino IDE, można łatwo modyfikować jego oprogramowanie lub szybko napisać zupełnie nowe.

Uniwersalność przedstawionego rozwiązania polega na tym, że w zależności od konfiguracji i obsadzenia elementami płytki drukowanej oraz dzięki wgraniu odpowiedniego oprogramowania do modułu procesora, można uzyskać szereg bardzo różnych funkcjonalności, jak na przykład:

  1. Sterowanie jedno lub dwukanałowe ON/OFF oświetleniem na napięcie 230VAC (np. żarówki LED 230V lub inne odbiorniki mocy zasilane napięcie sieciowym). Elementami sterowania mocy są tutaj przekaźniki elektromechaniczne, które mogą także być zastąpione przekaźnikami elektronicznymi SSR (podraża to jednak koszt części).
  2. Sterowanie jedno lub dwukanałowe ON/OFF oświetleniem na napięcie 12VDC (np. białe taśmy LED). Elementami sterującymi mocy są w tym wariancie tranzystory MOS.
  3. Sterowanie jedno, dwu, lub trzykanałowe oświetleniem na napięcie 12VDC (np. taśmy LED RGB) . Tutaj również elementami mocy są tranzystory MOS.

We wszystkich powyższych wariantach dostępne są takie funkcjonalności jak:

A. Zdalne sterowanie kanałami oświetlenia przy pomocy pilota (pilotów) RF 433MHz (lub innego typu o podobnych sygnałach wyjściowych)

B. Możliwy jest wybór jednego z dwóch lub, w zależności od oprogramowania, również i z trzech pilotów różnych pilotów RF

C. Każdy z pilotów może wysyłać do sześciu różnych kodów odzwierciedlających jego przyciski. Każdemu z przycisków można przypisać dowolny kanał lub sterowanie grupowe (włącz lub wyłącz wszystkie kanały

Dla wariantu 2. i 3. sterownik realizuje funkcję DIMMING (ściemniacz), co pozwala regulować natężeniem sterowanego oświetlenia.
Natomiast wariant 3. ma również oprogramowany system zmiany barw, specjalnie w przypadku gdy kanały wyjściowe są przyłączone do taśmy LEDowej typu RGB.

To wszystko jest możliwe do realizacji na jednej płytce PCB o roboczej nazwie RF Sniffer v3.1.

Poniżej znajduje się schemat obejmujący wszystkie warianty zrealizowane na płytce v3.1

Kliknij aby pobrać aktualną wersję PDF.

Oprogramowanie w postaci szkicu dla Arduino IDE można pobrać poniżej

  • Wersja v1.1 (dla PCB v3.0) obsługująca dwa kanały z przekaźnikami lub tranzystorami MOS, umożliwia opcje ON/OFF dla obydwóch kanałów.
    RF Sniffer v1.1
  • Wersja v3.4 (dla PCB v3.0) obsługująca dwa kanały z tranzystorami MOS, umożliwia opcję Fading (dimming) dla obydwóch kanałów. Program napisany z użyciem przerwań wewnętrznych od timera.
    RF Sniffer v3.4

Zmontowany sterownik na starszym modelu płytki w wersji v2.0 z zasilaniem zewnętrznym 12VDC i tranzystorami MOS.

Pilot radiowy RF zastosowany w projekcie (można użyć dowolnego pilota z nadajnikiem 433MHz)

Płytki w wersji V3.0 oraz poprzednich są dostępne do zakupu w naszej firmie, także w wersji zmontowanej i uruchomionej.

Uwaga: Zmiana danych !

Z dniem 01.09.2020 nastąpiła zmiana danych adresowych firmy.

Prawidłowe dane adresowe to:

ELEKTRONIKA SERWIS
Sławomir Jurkiewicz
ul. Grunwaldzka 13/2
41-500 Chorzów

Powyższy adres jest nowym adresem firmy, adresem naszego Serwisu oraz adresem do korespondencji i wysyłki sprzętu.

Niezbędne informacje są zawarte na stronie KONTAKT

Z tym samym dniem obowiązuje również nowe logo firmy, które będzie umieszczane na wszystkich oficjalnych dokumentach.
Nasze nowe logo prezentujemy poniżej:

Demo

Przepraszamy Szanownych Klientów za wszelkie ewentualne utrudnienia związane z zaistniałym zmianami.

Szybkie sprawdzenie falownika

Twój falownik pokazuje błąd, wybija zabezpieczenia, nie rusza silnika ? Masz ochotę odesłać go do serwisu ? Zanim to zrobisz, warto wykonać kilka pomiarów aby uzyskać wstępną diagnozę.

falownik Goodrive
falownik Goodrive

Poniżej przedstawię bardzo prostą i szybką metodę pomiarów diagnostycznych falownika w celu ustalenia jego niedomagań. Zanim jednak przystąpisz do pracy, przeczytaj cały artykuł i zastanów się, czy jesteś w stanie wykonać wszystko co tu opisałem, zachowując przy tym warunki bezpieczeństwa ludzi i sprzętu.

Artykuł dotyczy większości falowników / inwerterów / przemienników częstotliwości / serwoinwerterów / serwowzmacniaczy / serwodriwerów o konstrukcji zawierającej układ zasilania jedno- lub trójfazowy oraz układ wyjściowy mocy oparty na tranzystorach lub modułach IGBT w standardowej konfiguracji. Może się jednak zdarzyć, że będziesz miał do czynienia z nietypowymi rozwiązaniami układowymi wykluczającymi wykonanie opisanych przeze mnie pomiarów.

Narzędzia

Przed przystąpieniem do prac przygotuj podstawowe narzędzia, jak na przykład wkrętak (rozmiarem przystosowany do śrub na zaciskach mierzonego falownika). Najważniejszym jednak jest przyrząd pomiarowy. Do naszych celów wystarczy zwykły cyfrowy lub analogowy miernik uniwersalny z opcją pomiaru złącz półprzewodnikowych (zwykle jest to zakres pomiarowy oznaczony symbolem diody). Miernik powinien być wyposażony w sondy pomiarowe i co ważne, w źródło zasilania (baterię) o dobrej kondycji.

Przygotowania


Przed przystąpieniem do prac odłącz zasilanie falownika wyłącznikiem sieciowym (głównym) maszyny oraz upewnij się, używając posiadanego miernika lub specjalnego testera, czy na przyłączach falownika nie występuje prąd elektryczny.


Odczekaj koniecznie czas potrzebny na rozładowanie się kondensatorów wysokonapięciowych ! Czas ten jest zwykle określony przez producenta i oznaczony na obudowie falownika lub zamieszczony w jego dokumentacji. Niektóre urządzenia posiadają też odpowiednio oznaczoną, zazwyczaj czerwoną, kontrolkę informującą o obecności napięcia na kondensatorach falownika.

Jeśli nie wiesz ile czasu powinieneś odczekać przed przystąpieniem do dalszych prac, załóż bezpieczny czas np. 30 minut. Dla falowników dużej mocy, czas powinien być odpowiednio dłuższy.
Możesz również zmierzyć napięcie pomiędzy zaciskami falownika oznaczanymi zwykle P+ i P- (jeśli Twój falownik takie posiada), jest to napięcie występujące na baterii kondensatorów wysokonapięciowych. Jeśli napięcie to jest większe niż kilka voltów, odczekaj do momentu jego bezpiecznego samoczynnego obniżenia (rozładowania się kondensatorów).
Uwaga: Całkowity brak mierzonego napięcia może być również efektem niesprawności falownika, w takim przypadku zaleca się specjalną ostrożność.


Pamiętaj: Dalsze prace możesz prowadzić jedynie przy stanie beznapięciowym na wszystkich zaciskach falownika !


Teraz odłącz wszystkie przewody elektryczne od strony zasilania oraz od strony przyłączy silnika (również te podłączone do rezystora hamującego, jeśli został zaimplementowany). Przewody PE oraz te, podłączone do zacisków niskonapięciowych sterowania mogą pozostać podłączone.
Sprawdź czy na pewno dobrze wykonałeś powyższe zadanie, w przeciwnym wypadku wyniki pomiarów mogą być błędne a Twój przyrząd pomiarowy będzie narażony na uszkodzenie.

Dla pewności braku napięcia na obwodach mocy falownika i ochrony Twojego przyrządu pomiarowego, na zaciski P+ i P- falownika możesz założyć tymczasowo zworkę z odcinka przewodu lub rezystora rozładowczego o rezystancji kilka kiloomów i mocy kilku watów.
Zworkę tę należy usunąć bezpośrednio przed wykonywaniem pomiarów.

Konstrukcja falownika

W naszych pomiarach traktujemy falownik jako “czarną skrzynkę”, jednak dobrze jest zapoznać się z jego ogólną konstrukcją, aby lepiej zinterpretować otrzymane wyniki.

Schemat blokowy falownika
Schemat blokowy falownika (wariant uproszczony)

W znakomitej większości falowników, zwłaszcza małych i średnich mocy, możemy wyróżnić 2 główne bloki, które opiszemy w dalszej treści:

  1. Blok wejściowy – zasilania
  2. Blok wyjściowy – mocy

ad.1. BLOK ZASILANIA

Blok zasilania składa się zazwyczaj z filtra przeciwzakłóceniowego (czasami filtr taki stanowi oddzielony mechanicznie i elektrycznie moduł, zamontowany często pod radiatorem falownika lub obok niego), oraz obwodu prostownika 1 lub 3 fazowego i baterii kondensatorów.
Prostownik w falownikach małej i średniej mocy zrealizowany jest (szczególnie w tańszych i prostszych modelach) w oparciu o standardowy diodowy, pasywny mostek Graetz’a, czasami zaś jest to mostek sterowany (prostownik aktywny) zrealizowany w oparciu o diody sterowane (tyrystory).
Niezależnie od przyjętego rozwiązania, zadaniem prostownika jest zamiana przemiennego napięcia sieci dostarczonego do falownika, na napięcie stałe służące do zasilenia jego obwodów mocy.

Powstałe za prostownikiem tętnienia prądu są wygładzane za pomocą baterii kondensatorów, która to składa się z jednego lub wielu wysokonapięciowych kondensatorów elektrolitycznych. Pełni ona również bardzo ważną rolę w magazynowaniu i oddawaniu energii w trakcie normalnej pracy falownika.

W przypadku zasilania falownika z jednofazowego napięcia sieci elektroenergetycznej 230VAC, na zaciskach baterii kondensatorów filtrujących pojawia się napięcie ok. 325VDC. W przypadku zaś, kiedy urządzenie zasilane jest trójfazowo z sieci o napięciu międzyfazowym 400VAC, napięcie na kondensatorach wynosi ok. 565VDC.
W praktyce, ze względu na wahania napięcia sieci, jej brak symetrii oraz jakość samych kondensatorów, powyższe napięcia mogą się różnić od wyżej podanych.
Czasami falownik przystosowany jest do zasilania innymi napięciami, lecz nie ma to większego znaczenia dla naszych pomiarów.

Napięcie na baterii kondensatorów jest wyprowadzane zazwyczaj na zaciski falownika oznaczane zwykle jako P+ i P-. Niestety nie wszystkie falowniki mają je dostępne, zwłaszcza urządzenia małej mocy posiadają wyprowadzony jedynie zacisk P+. W takim przypadku nie wykonamy pełnych pomiarów chyba, że zapewnimy sobie dostęp do brakującego zacisku wewnątrz urządzenia.

W skład układu zasilania wchodzi także rezystor startowy. Szerzej o tym rezystorze można przeczytać tutaj.

Rezystor startowy jest umieszczany zwykle szeregowo pomiędzy wyjściem prostownika a baterią kondensatorów filtrujących. Ma on za zadanie ograniczenie prądu ładowania kondensatorów w fazie po włączeniu zasilania. Dzieje się tak, gdyż jego rezystancja wraz z pojemnością kondensatorów tworzą pewną stałą czasową opóźniającą ich ładowanie zmniejszonym prądem.
Procesor falownika sterujący fazą rozruchu urządzenia, po określonym czasie, zwiera (zazwyczaj za pomocą stycznika) zaciski rezystora startowego eliminując tym samym jego wpływ na obwód zasilania falownika w dalszej fazie pracy.
Należy pamiętać, że w konstrukcjach opartych o aktywne zespoły prostownicze (mostki tyrystorowe) rezystor startowy nie jest zwykle stosowany, gdyż sterownik prostownika odpowiednio reguluje prąd ładowania baterii kondensatorów.

Uwaga
W trakcie wykonywania naszych pomiarów, warto uwzględnić obecność rezystora startowego, który podczas pomiarów obwodów zasilania stanowi rezystancję szeregową.

ad.2. BLOK WYJŚCIOWY

Blok wyjściowy falowników jest zwykle zrealizowany w oparciu o moduł lub moduły zwierające tranzystory IGBT. W mniejszych falownikach spotkać można pojedyncze tranzystory IGBT, lecz jest to już coraz rzadszy przypadek. Niezależnie od konstrukcji, z punktu widzenia jego działania, blok wyjściowy ma za zadanie zamienić prąd stały dostarczony z bloku zasilania a konkretnie z jego baterii kondensatorów, na przebieg zmienny (przemienny trójfazowy).
Istnieją również falowniki posiadające wyjścia jednofazowe, jednak nimi nie będziemy się tutaj zajmować, gdyż stanowią mniejszość i obejmują jedynie falowniki małych mocy. Ich pomiar jest identyczny, jak dla falowników o wyjściach trójfazowych z wyłączeniem zacisku brakującej fazy.
Należy również dodać, że niektóre konstrukcje wyposażone są od strony zacisków wyjściowych we wbudowane obciążenia o niewielkiej rezystancji, w takich konstrukcjach wykonanie poprawnych pomiarów jest bardzo utrudnione i wymaga użycia zaawansowanych przyrządów pomiarowych (np. mostka do pomiaru małych rezystancji).

Goodrive
Goodrive

Pomiary

Przed przystąpieniem do pomiarów i po upewnieniu się o braku napięcia na zaciskach falownika, zapewnij sobie swobodny dostęp do punktów pomiarowych, które stanowią zespoły zacisków:

  • Zasilania (przyłącze sieci) – R, S, T (opisywane również jako L1, L2, L3) lub L1, L2 (albo N) w falownikach z zasilaniem jednofazowym
  • Wyjściowe (przyłącze silnika) – U, V, W (opisywane również jako M1, M2, M3 albo T1, T2, T3)
  • Napięcia stałego (na baterii kondensatorów) oznaczane zwykle jako
    P+, P- (opisy ich jednak mogą być różnorakie, należy sprawdzić to w dokumentacji fabrycznej urządzenia)
Zaciski falownika (przykład)

Uwaga
Pomiary należy wykonywać przyrządem ustawionym na zakres pomiaru elementów półprzewodnikowych (zazwyczaj zakres ten jest oznaczony symbolem diody).

Poniżej zamieszczam tabelkę, która obrazuje poszczególne pomiary wraz z ich prawidłowym wynikiem. Niektóre wyniki liczbowe (wartości spadków napięć na złączach półprzewodnikowych) mogą się różnić od wartości przedstawionych w tabeli.

Tabela pomiarów falowników

Tabela do pobrania w formie pliku pdf jest dostępna Tutaj.

Uwaga
Pamiętaj, że wykonane pomiary, o których mówi niniejszy artykuł, mają jedynie charakter orientacyjny i mogą być tylko jednym z wielu czynników pozwalających postawić trafną diagnozę uszkodzeń falownika.

Przykład 1. Jeśli podczas jednego z pomiarów bloku zasilania wykryjesz całkowite zwarcie a dodatkowo falownik przyłączony do zasilania uszkadza, “wybija” zabezpieczenia, możesz być prawie pewny, że falownik ten jest definitywnie uszkodzony.

Przykład 2. Jeśli podczas pomiaru bloku wyjściowego jeden z pomiarów wykazuje odchylenie od podanej wartości a pomiary odłączonego silnika nie wykazują anomalii, nie możesz zdiagnozować w 100% uszkodzenia falownika.


Nie próbuj wykonywać samodzielnie napraw, jeśli nie jesteś pewien tego co robisz. W celu zaoszczędzenia czasu i obniżenia mogących powstać w ten sposób dodatkowych kosztów, skorzystaj z wiedzy i doświadczenia wykwalifikowanego serwisu naprawczego.


ZAPRASZAMY

Firma Elektronika Serwis ani autor tego artykułu nie ponoszą w żadnym wypadku jakiejkolwiek odpowiedzialności za powstałe w wyniku działań inspirowanych niniejszym artykułem straty materialne i/lub uszczerbek na zdrowiu.

Interfejs klawiatury PS/2 dla CA80

Projekt interfejsu komunikacyjnego umożliwiającego współpracę klawiatury PC posiadającej interfejs PS/2 z mikrokomputerem retro CA80.

Autor: Sławomir Jurkiewicz

Mikrokomputer CA80 z interfejsem i klawiaturą PS/2

Korzystając z zimnej i deszczowej w tym roku majówki, chciałbym zaprezentować projekt interfejsu mojego autorstwa. Od niedawna stałem się bowiem szczęśliwym posiadaczem i użytkownikiem mikrokomputera retro o nazwie “CA80”, zaprojektowanego przez polskiego inżyniera Stanisława Gardynika i wylansowanego w latach 80tych ubiegłego wieku przez jego firmę MIK.

Więcej o moich perypetiach z CA80 można przeczytać TUTAJ.

Założenia projektu

  1. Interfejs ma na celu zastąpienie oryginalnej klawiatury matrycowej standardową klawiaturą dla komputerów PC posiadającą interfejs PS/2 i złącze mini-DIN.
  2. Zarówno klawiatura PC, jak i mikrokomputer CA80 pozostają oryginalne, brak w nich w zasadzie jakichkolwiek modyfikacji (z wyjątkiem wyprowadzenia zasilania oraz sygnału resetu na złącze klawiatury [ZK] mikrokomputera CA80 – patrz schemat ideowy interfejsu).
  3. Interfejs wykonany jest na bazie ARDUINO w wersji NANO w formie dosyć kompaktowej płytki i zawiera ogólnodostępne części elektroniczne.
  4. Wszystkie sygnały interfejsu są pobierane ze złącza klawiatury (ZK) mikrokomputera CA80.
  5. Oprogramowanie ARDUINO jest uproszczone w maksymalnym stopniu a ilość zajętych obsługą interfejsu linii danych ARDUINO ograniczona do niezbędnego minimum.

Schemat ideowy i opis działania

Interfejs PS/2 CA80 - schemat
Interfejs – schemat ideowy

LINK do schematu w formacie PDF.

Idea działania interfejsu może być opisana w następujących krokach prostego algorytmu:

  1. Oczekiwanie mikrokontrolera Arduino na przyciśnięcie klawisza na klawiaturze PC.
  2. Pobranie danych (kodu naciśniętego klawisza) z interfejsu PS/2 klawiatury.
  3. Zdekodowanie kodu klawiatury PC.
  4. Odczekanie aż na wyjściu przeczesywania matrycy przycisków CA80 pojawi się właściwy sygnał. Wyjścia KA, KB, KC, KD złącza klawiatury CA80 (ZK) są, poprzez koder sprzętowy IC2, sprawdzane w pętli programu Arduino i na bieżąco porównywane z odczytanym i zdekodowanym kodem uprzednio pobranym z klawiatury PC.
  5. Pojawienie się poprawnego sygnału j.w. powoduje wygenerowanie przez interfejs odpowiedzi logicznej, która po zdekodowaniu sprzętowym (IC1) przekazywana jest do CA80 symulując zwarcie styków przycisku symulowanej klawiatury matrycowej.

Analizując schemat, możemy wyróżnić na nim 3 współpracujące ze sobą bloki funkcjonalne: koder (IC2), dekoder (IC1), sterownik (Arduino Nano).

  • Podstawowym zadaniem kodera opartego o układ cyfrowy 74147 jest zamiana sygnałów przeczesywania matrycy CA80 z postaci 1z4 na postać liczby z przedziału 0x03 do 0x07 (patrz tablica prawdy kodera 74147). Takie rozwiązanie prócz zaoszczędzenia jednego wejścia Arduino, daje również możliwość elektrycznego buforowania sygnałów z interfejsu klawiatury CA80 zmniejszając jego obciążenie.
Tablica prawdy kodera 74147

Zgodnie z tablicą prawdy układu kodera 74147 zarówno sygnały na wejściu jak wyjściu tego układu są zanegowane, czyli stanem aktywnym jest poziom niski “L”.

Jest możliwe pominięcie układu kodera 74147, w takim przypadku sygnały wyjściowe przeczesywania klawiatury (KA do KD) należy podłączyć bezpośrednio na wejścia modułu kontrolera Arduino.
W takim przypadku konieczna jest m.in. zmiana tablicy kodowania zawartej w programie interfejsu (funkcja getKeyString() ).

  • Dekoder IC1 oparty na układzie 74137 zamienia sygnały sterujące z modułu Arduino na postać 1z6. Rozwiązanie takie upraszcza sterowanie i redukuje ilość zajętych wyjść Arduino z 6 do 3.
Tablica prawdy dekodera 74137

Tablica prawdy kodera 74137 pokazuje, że jego sygnały wejściowe nie są zanegowane (aktywny jest tutaj stan wysoki “H”), w przeciwieństwie do sygnałów wyjściowych, gdzie aktywny jest niski stan sygnału – “L”.

Program dla Arduino

Sketch dla Arduino w spakowanym pliku *.INO jest do pobrania TUTAJ.

//------------------------------------------------------------------------------------------------------------------------
//      CA80 PS2 Keyboard Transcoder v2.3P (wersja produkcyjna z polskimi komentami
//       PCB v1.0 (Arduino NANO)
//------------------------------------------------------------------------------------------------------------------------
//  Autor: Sławomir Jurkiewicz (elserw@elserw.com)
//  Na podstawie: "Podłączamy stara klawiaturę do Arduino" by Kamil (https://starter-kit.nettigo.pl/author/kamil/feed/)
//    oraz "Zdalne sterowanie klawiaturą" by Natasza Biecek (http://bienata.waw.pl/ca808.php)
//------------------------------------------------------------------------------------------------------------------------

//Definicja funkcji pinów Arduino
#define CLK 2 //inp
#define DAT 8 //inp

#define QA 10 //inp
#define QB 11 //inp
#define QC 12 //inp

#define LED 13 //out
#define KA 5  //out
#define KB 6  //out
#define KC 7  //out

//Deklaracja i zerowanie bufora obsługi danych z klawiatury PC PS/2
const int BUF_SIZE = 11;
bool buffer[BUF_SIZE] = {0};
//Pozostałe zmienne dla procedur PS/2
int pos = 0;
bool ignoreNext = false;
unsigned long lastRead = 0;

int caCode = 0; //Bieżący kod naciśniętego klawisza wysyłany do CA80

void setup() {
  //Komunikacja monitora portu szeregowego Arduino do celów debugowania programu
  //Wszystkie linijki kodu zaczynające się od "Serial." można usunąć w gotowym programie 
  Serial.begin(9600);
  Serial.println("CA80 PS2 Keyboard Transcoder v2.3P");
  Serial.println("Ready...");

  //Ustawienie funkcji zdefiniowanych pinów w Arduino
  //Wejścia
  pinMode(CLK, INPUT);
  pinMode(DAT, INPUT);
  pinMode(QA, INPUT);
  pinMode(QB, INPUT);
  pinMode(QC, INPUT);
  //Wyjścia
  pinMode(LED, OUTPUT);
  pinMode(KA, OUTPUT);
  pinMode(KB, OUTPUT);
  pinMode(KC, OUTPUT);

  digitalWrite(LED, LOW); //Wygaszenie LEDa na płytce Arduino.
  PORTD = 0xE0;  //Ustawienie "1" na pinach D5,D6,D7 (KA, KB, KC). Dekoder IC1 ma wszystkie wyjścia Y0 do Y7 ustawione na "1"

  delay(1000); //Oczekiwanie na zadziałanie klawiatury PS/2 po włączeniu zasilania
  attachInterrupt(digitalPinToInterrupt(CLK), readData, FALLING); //Ustawienie przerwania od wyjścia zegarowego CLK klawiatury PS/2 (reakcja na zbocze dodatnie sygnału CLK) 
}

//Główna pętla programu - wczytanie, dekodowanie klawisza z PS/2 oraz zakodowanie go i wysłanie do CA80 (poprzez ustawienie w odpowiednim momencie wyjść dekodera IC1)
void loop() {
  if(pos != 0 && millis() - lastRead > 1000) {  //oczekiwanie na zapełnienie bufora klawiatury, którego zawartość jest kompletowana w przerwaniu (procedura "readData").
    pos = 0;
  }
  if(pos == 11) { //bufor PS/2 kompletny, wczytano kod klawisza z klawiatury PS/2
    pos = 0;
    int keyCode = getKeyCode(buffer); //Obróbka danych z bufora. W zmiennej "keyCode" jest kod klawisza z PS/2
    if(ignoreNext) {
      ignoreNext = false;
      return;
    }
    if(keyCode == 0xF0) { //Ignoruj kody puszczenia klawisza na PS/2
      ignoreNext = true;
      return;
    }
    //Wysłanie na port szeregowy terminala Arduino informacji o kodzie i nazwie wciśniętego przycisku
    Serial.print("PS/2=0x");
    Serial.print (String(keyCode, HEX));
    Serial.print (" ");
    String keyString=getKeyString(keyCode); //Zdekodowanie kodu klawisza PS/2 na jego nazwę (przy okazji w zmiennej "caCode" znajduje się kod klawisza dla CA80)
    Serial.print(keyString);
    
    if(caCode>0) {
      //Wysłanie na terminal Arduino informacji o kodzie dla CA80 wciśniętego klawisza na klawiaturze PS/2
      Serial.print (" CA80=0x");
      Serial.print (String(caCode, HEX));
      noInterrupts(); //zatrzymanie przwań
      sendKey(caCode); //wysłanie do CA80 kodu naciśniętego klawisza 
      interrupts(); //wznowienie obsługi przerwań
      digitalWrite(LED, !digitalRead(LED)); //zmiana świecenia LED - sygnalizuje wczytanie z klawiatury i wysłanie do CA jednego kodu
      Serial.print (" "); 
      pos = 0; //po włączeniu przerwań bufor klawiatury PS/2 będzie czytany od nowa   
    }
    Serial.println ("");
  }
}

void sendKey(int caCode) {
  //wysłanie kodu naciśniętego klawisza do CA80 (kod  znajduje się w zmiennej "caCode")
  //https://www.arduino.cc/en/Reference/PortManipulation

  int caCodeT = (caCode & 0xF0) >> 4; //modyfikacja zdekodowanego kodu klawisza
  
  for (int i = 0; i <= 20; i++) { //powtórz 20 razy wysłanie klawisza do CA80, aby przechytrzyć debouncing
    while (caCodeT!=(PINB & 0x1C) >> 2) { //czytaj porty 10,11,12 (QA, QB, QC) aby ustalić moment kiedy należy ustawić sygnały KA,KB,KC 
      //pętla oczekiwania na właściwy moment, czyli wystawienie przez CA80 odpowiednich sygnałów KA, KB, KC, KD 
    }  
    PORTD = (caCode & 0x07)<<5; //ustaw porty D5,D6,D7 (KA, KB, KC) w celu wysłania kodu do CA80
    delayMicroseconds(12); //podtrzymaj ustawienia do czasu kiedy CA80 skończy dekodowanie wysłanych mu danych - czas 12us jest krytyczny dla całego procesu
    PORTD = 0xE0;  //zapisz "111" do portów D5,D6,D7 w celu wyzerowania (KA, KB, KC)
  }
}


void readData() {
  //Sczytanie danych z klawiatury PS/2
  lastRead = millis();
  buffer[pos++ % 11] = digitalRead(DAT);
}

int getKeyCode(bool * buf) {
  //Na podstawie danych z bufora funkcja zwraca kod naciśniętego klawisza.
  bool parity = 1;
  int result = 0;
  if(buf[0] != 0) return -1;
  if(buf[10] != 1) return -2;
  for(int x = 0; x < 8; x++) {
    result |= buf[1+x] << x;
    if(buf[1+x]) parity = !parity;
  }
  if(buf[9] != parity) return -3;
  return result;
}

String getKeyString(int keyCode) {
  //Dekodowanie naciśniętego klawisza na podstawie jego kodu
  //  przy okazji w zmiennej "caCode" jest ustawiany kod dla CA80
  caCode=0; 
  switch(keyCode) {
    case 0x1C: caCode=0x52; return "A";
    case 0x32: caCode=0x51; return "B";
    case 0x21: caCode=0x64; return "C";
    case 0x23: caCode=0x63; return "D";
    case 0x24: caCode=0x62; return "E";
    case 0x2B: caCode=0x61; return "F";
    case 0x34: caCode=0x50; return "G";
    //case 0x33: return "H";
    //case 0x43: return "I";
    //case 0x3B: return "J";
    //case 0x42: return "K";
    //case 0x4B: return "L";
    case 0x3A: caCode=0x60; return "M";  //
    //case 0x31: return "N";
    //case 0x44: return "O";
    //case 0x4D: return "P";
    //case 0x15: return "Q";
    //case 0x2D: return "R";
    //case 0x1B: return "S";
    //case 0x2C: return "T";
    //case 0x3C: return "U";
    //case 0x2A: return "V";
    //case 0x1D: return "W";
    //case 0x22: return "X";
    //case 0x35: return "Y";
    //case 0x1A: return "Z";
    case 0x45: caCode=0x34; return "0";
    case 0x16: caCode=0x33; return "1";
    case 0x1E: caCode=0x32; return "2";
    case 0x26: caCode=0x31; return "3";
    case 0x25: caCode=0x44; return "4";
    case 0x2E: caCode=0x43; return "5";
    case 0x36: caCode=0x42; return "6";
    case 0x3D: caCode=0x41; return "7";
    case 0x3E: caCode=0x54; return "8";
    case 0x46: caCode=0x53; return "9";
    case 0x5A: caCode=0x30; return "ENT"; //"=" <ENTER>
    case 0x55: caCode=0x30; return "="; //"=" <ENTER>
    case 0x29: caCode=0x40; return "SPC"; //"." <SPACE>
    case 0x49: caCode=0x40; return "."; //"."
    case 0x05: caCode=0x65; return "F1";  //
    case 0x06: caCode=0x55; return "F2";  //
    case 0x04: caCode=0x45; return "F3";  //
    case 0x0c: caCode=0x35; return "F4";  //
    case 0x76: caCode=0x60; return "ESC";  //"M" <ESC>       
  }
  return "";
}

Płytka drukowana

Strona elementów (TOP)
Strona połączeń (BOTTOM)

Interfejs w trakcie uruchamiania.

Interfejs w trakcie uruchamiania (strona wierzchnia).
Interfejs w trakcie uruchamiania (strona spodnia).

W czasie tworzenia projektu wykorzystano następujące źródła:

  1. “Podłączamy starą klawiaturę do Arduino” by Kamil
  2. “Zdalne sterowanie klawiaturą” by Natasza Biecek
  3. “The PS/2 Mouse/Keyboard Protocol” (Link)

CA80 MIK

mikrokomputer CA80

… lub powrót do dalekiej przeszłości
CA80 or return to a deep past

Mikrokomputer CA80 (bo na swoje czasy na 100% był “mikro”), to pełnowartościowy system procesorowy pracujący pierwotnie pod kontrolą 8-mio bitowego procesora U880 (klon Z80A firmy Zilog), którego głównym przeznaczeniem była nauka programowania mikrokomputerów, ale także elektroniki cyfrowej w ogóle. Został on wymyślony na początku lat 90-tych przez polskiego inżyniera Stanisława Gardynika. Sprzedawany w zestawach do samodzielnego montażu i wspomagany obszerną literaturą autorstwa jego twórcy, która zgromadzona była w kilkunastu dosyć obszernych zeszytach o nazwie “MIK”. Zeszyty te opisywały zarówno podstawy elektroniki, jak i sposób montażu komputerka, jego uruchomienie oraz oprogramowanie. W miarę rozwoju przedsięwzięcia fani doczekali się kilku, może nawet kilkunastu programów użytkowych wraz z adekwatną adaptacją hardware’u.

Krótki opis wersji

Architektura systemu zawiera prócz mikroprocesora również pamięci RAM i ROM (przewidziano możliwość zastosowania wielu rodzajów pamięci równoległych skupionych w 4 bankach). Są tam także dwa układy portów równoległych 8255 (przeznaczone m.in. do obsługi podstawowych peryferiów, jak klawiatura i wyświetlacz) oraz timer programowalny Z80CTC. Mikrokomputer obsługuje również pamięć masową w postaci magnetofonu kasetowego (obecnie raczej jest to ciekawostka, choć zapis i odczyt można zrealizować w formacie MP3).
Historycznie powstały dwie oryginalne wersje mikrokomputera i co za tym idzie i dwie wersje kompatybilnych płytek PCB. Druga z nich to wersja profesjonalna, posiada płytkę o druku dwustronnym oznaczoną jako MIK290 (rys.1.). Wersja ta przystosowana jest do pracy w zamkniętej obudowie pochodzącej od produkowanych wówczas kalkulatorów biurowych Elwro, co wraz z zewnętrznym zasilaczem stanowiło to dosyć zwartą i estetyczną konstrukcję.

PCB MIK290 strona elementów
rys. 1 Płytka PCB w wersji MK290 (widok od strony elementów)

Jeśli chodzi o tzw. interfejs komunikacji z użytkownikiem, w pierwszej wersji przewidziano klawiaturę o układzie kilkunastu klawiszy, były to cyfry w kodzie szesnastkowym od “0” do “F” oraz kilka podstawowych przycisków funkcyjnych. W drugiej natomiast wersji dołożono kolejne przyciski funkcyjne (“F1” do “F4”), tak aby layout zgadzał się z używanym we wspomnianych już kalkulatorach Elwro.
Mikrokomputer w wersji defaultowej posiada wyświetlacz lampowy o 8-miu polach 7-mio segmentowych (tzw. ósemki) z segmentem punktu dziesiętnego (DP).
Ponieważ coraz bardziej atrakcyjne w tamtym czasie zaczęły być wyświetlacze LEDowe, począwszy od wersji drugiej PCB (MIK290) można było podłączyć do systemu LEDowe zamienniki lamp aż dwóch wersjach: ze wspólną anodą oraz wspólną katodą. Niestety one również mogły mieć jedynie 8 pól, każde po 7 segmentów, tak samo jak ich lampowi protoplaści.
Ten ficzer wymagał jeszcze dołożenia jednej z płytek MIK295 lub MIK296, w zależności od wersji posiadanego wyświetlacza: ze wspólną katodą lub wspólną anodą.

rys.2. Fragment płyty mikrokomputera CA80 obsadzonej oryginalnymi układami scalonymi

Przystępujemy do działania.

Na znanym portalu aukcyjnym można bez przeszkód w chwili obecnej nabyć zestaw układów scalonych oraz płytkę PCB w wersji MIK290. Wśród układów znajduje się zaprogramowana już pamięć EPROM z rozszerzoną wersją oprogramowania dla komputerka oraz “wypasiona” pamięć statyczna RAM 32kB i naturalnie wszystkie pozostałe układy scalone.
Opisy zawarte w książeczkach MIK ściągamy przy wydatnej pomocy wujka Google np. z Elektrody lub jednej z kilku dedykowanych dla CA80 stron www. Tam też znajduje się jeszcze wiele ciekawych materiałów, mogących być przydatnymi podczas prac montażowo-rozruchowych.

Zeszyty MIK.

W czasie kiedy trwa dostawa zamówionej płytki oraz części mikrokomputera i po wykonaniu dogłębnego researchingu w temacie oraz ściągnięciu rozlicznych materiałów, jest czas na “przestudiowanie” oryginalnej dokumentacji w postaci legendarnych już zeszytów MIK.
Tutaj byłoby wszystko oczywiste, gdyby nie fakt, że mając już jakieś podstawy (a nawet “trochę” więcej niż podstawy) w zakresie wiedzy z dziedziny elektroniki cyfrowej i ogólnej wiedzy o funkcjonowaniu systemów mikroprocesorowych, także opartych na procesorach sprzed 30 z hakiem lat, nie ma najmniejszego sensu zagłębiać się w 8 początkowych zeszytów, gdyż po prostu niewiele jest tam ciekawostek i jakiejś nowej wiedzy. Na uwagę jednak zasługuje zeszyt MIK-09, który jest “core of the cores” wiedzy niezbędnej do poskładania komputerowego ustrojstwa na bazie płyty MIK290.

Niestety trzeba przyznać panu autorowi, że większego chaosu w podawaniu informacji technicznych chyba nie ma nigdzie. Wiedza bardzo podstawowa miesza się w Zeszytach z opisami korzystania z oprogramowania (a my nie mamy jeszcze nawet wstępnie poskładanej płytki), do tego wiele odnośników do wcześniejszych Zeszytów oraz garść powtrącanych przypadkowo zupełnie nieistotnych, z punktu widzenia montażu systemu, informacji.
Jeśli przebrniemy już przez te wszystkie meandry i dotrwamy do właściwego opisu montażu PCB, dodatkowym utrudnieniem jest zawarcie wszelkich rysunków i tabel a przede wszystkim schematów ideowych na końcu zeszytu przy czym opis, do których się one odnoszą jest porozrzucany dosyć dowolnie po całym tomie. Utrudnienie to jest tym większe, jeśli korzysta się z wersji Zeszytu w formacie PDF a nie tradycyjnego wydruku papierowego.

Ważna rada:
Wydrukować przeto należy co ważniejsze schematy i jeszcze ważniejsze tabele i pasujące do nich opisy, to znacznie ułatwia pracę i minimalizuje powstanie kardynalnych błędów, których i ja się nie ustrzegłem.

Rusza “od strzału” ?

W MIK-09, jak i w rozlicznych materiałach reklamowych z epoki, czytamy dosyć wyeksponowane stwierdzenie: “W większości przypadków, po zmontowaniu układów na płytce, urządzenie zgłasza się poprawnie komunikatem ‘CA80’ “. Jest to znamienne twierdzenie i cokolwiek wątpliwa jest jego prawdziwość, szczególnie w zestawieniu z pomocami naukowymi jakie serwuje nam dokumentacja.
Tak czy siak należy się wielki szacunek tym, zapewne niezbyt licznym zapaleńcom, którym udało się od “pierwszej kopy” odpalić to ustrojstwo.
Trzeba również mimo wszystko oddać hołd autorowi inżynierowi Gardynikowi, gdyż w tamtych zamierzchłych czasach był on pionierem w dziedzinie kitów do samodzielnego montażu i generalnie, w dziedzinie edukacji cyfrowej młodych polskich chłonnych wiedzy głów. Do tego, pewnie cykl wydawniczy zeszytów MIK wymuszał podówczas ich zawartość a trzeba wiedzieć, że powstawały one na przestrzeni kilku lat i “rozwijały” się niejako razem z doświadczeniami ich autora i wraz z tworzeniem kolejnych wersji hardware’u i softu.

Przed przystąpieniem do montażu skompletowanych starannie elementów należy zdecydować, która wersja i jakie ficzery będzie miał nasz systemik. Ja tego niestety nie zrobiłem, wypuszczając się na szeroko pojęty żywioł (wszak zielony przecież całkiem nie jestem a zaprawionym w bojach i owszem), co jednak skończyło się, tak jak się skończyło, czyli śpiesznym wylutowywaniem niepotrzebnie zamontowanych elementów oraz podmianą układów na inne (na szczęście były w podstawkach).

Montaż

Składany przeze mnie system miał zaistnieć pierwotnie w wersji podstawowej, tzn. posiadać miał zakupioną pamięć EPROM i RAM, klawiaturę, wyświetlacz LED oraz zasilanie zewnętrzne (tylko +5V).
Ochoczo zabrałem się więc do lutowania podstawek, a później całej masy drobnych elementów biernych i czynnych na płycie.
Zdziwieniem moim był prawie brak kondensatorów elektrolitycznych odsprzęgających zasilanie i dosyć duża dowolność w rozmieszczaniu kondensatorów blokujących 100nF. Zaskakująca, jak na dzisiejsze czasy, jest również ilość elementów biernych w ogóle, ale w sumie da się przeżyć, zwłaszcza mając dostęp do obszernego magazynu tychże.
Płytka w fazie początkowej montażu jest pokazana poniżej (rys.3).

rys.3. PCB w trakcie montażu.

Wyświetlacz LED

Jak już wspomniałem wyżej, mój system CA80 posiada wyświetlacz LED (ze wspólną katodą). Zeszyt MIK09 zaleca w przypadku takiego wyświetlacza zaopatrzenie się w osobną płytkę MIK295, która obecnie nie jest w zasadzie do zdobycia. Nic to, wyświetlacz został zmontowany na płytce uniwersalnej i skrosowany do listwy ZW płyty głównej (MIK290). Plusem w tym przypadku była możliwość użycia czteropolowych wyświetlaczy LED, co zaoszczędziło trochę żmudnego krosowania. W moim wykonaniu użyłem dwóch wyświetlaczy o wspólnej katodzie, typu TDCG1060M produkcji znanej firmy VISHAY.

rys.4. 4-ro polowy wyświetlacz 7 segmentowy TDCG1060M (wspólna katoda)

Należy zauważyć, że współczesne wyświetlacze LED podczas normalnej pracy pobierają raczej mniejszy prąd niż ten, który konsumowałyby oryginały sprzed 30 lat. Dlatego przy doborze wartości rezystorów Rc i Rb należy zastosować raczej górne z sugerowanych wartości. U mnie były to Rc=120 Ohm, Rb=4,7kOhm.

Ważne:
Modyfikacje płytki MIK290 związane z implementacją wyświetlania LED należy wykonać tak, jak to sugeruje MIK09 z tym, że w podstawki układów U23, U24, a także i U25, należy włożyć układy buforów prostych (bez negacji) typu SN74LS07 (lub 74LS17 albo 7407 lub 7417). Taki myk odciąży prądowo i zabezpieczy przed ewentualną pomyłką i zwarciem port równoległy 8255.
W podstawkę U20 wkładamy 74145, w miejsce R39 można zastosować dowolną diodę prostowniczą najlepiej na 2A. Na MIK290 nie lutujemy też rezystorów R40 do R47 oraz R50 do R57, o czym to przeczytałem dopiero kiedy płytka MIK290 była już przeze mnie w nie wyposażona.

Po zmontowaniu należy wyświetlacz sprawdzić pobudzając jego segmenty poprzez podanie odpowiednich kombinacji logicznych na wyjścia portu U7 (Uwaga: na ten czas układ U7 8255 należy usunąć z podstawki).
Jeśli w poprawnie działającym systemie na wyświetlaczu zamiast napisu powitalnego “CA80” widzimy na większości jego pól pełne “ósemki”, warto sprawdzić czy podstawki U20, U23, U24 oraz U25 obsadzone są prawidłowymi dla danego typu wyświetlacza układami.
Zmontowany i działający poprawnie wyświetlacz pokazano na rys.5.

rys.5. Zmontowany i uruchomiony moduł wyświetlacza.

Pamięci

Z pamięciami jest niestety ogrom zamieszania. Jest tak z powodu możliwości zastosowania mnogości ich rodzajów o zróżnicowanej wielkości. W zależności od wielkości zastosowanej pamięci należy odpowiednio skrosować punkty oznaczone jako A,B,C,D,E,F oraz czasami G,H,I, ważna jest również zworka J4. Prawidłowe krosy oraz ustawienie J4 opisuje wyczerpująco, acz niezwykle pokrętnie MIK09 w tabeli na str.53 i na schemacie str.56.
Przed przystąpieniem do uruchamiania systemu należy rozpisać sobie jakie pamięci i w które podstawki zostaną zainstalowane i jakich wymaga to modyfikacji na płycie. Ułatwia to wydatnie ogarnięcie pamięciowego chaosu i ustrzeżenia się przed kardynalnymi błędami.

Uwaga:
Jeśli z dokumentacji w MIK09 wynika, że należy wykonać jakiś kros, na przykład A-D i B-E (jak to ma miejsce podczas obsadzenia podstawki U12 pamięcią 32kB RAM) należy zawsze pamiętać, czy nie koliduje to z krosem defaultowym wykonanym już na PCB. W podanym przypadku należy przeciąć ścieżki tworzące połączenie defaultowe, w tym przypadku pomiędzy punktami A-F oraz B-C. W przeciwnym wypadku dojdzie do zwarcia na szynie adresowej, a to w niesprzyjających okolicznościach może zakończyć się nawet uszkodzeniem cennego procesora.

Z dokumentacji MIK09 nie wynika też wprost, że gdy np. obsadzamy podstawkę U9 pamięcią EPROM 27256 należy jej nogę 27 odizolować od napięcia zasilania +5V i podłączyć do masy. Nie przewidziano najprawdopodobniej zastosowania pamięci o takiej wielkości, jako pamięć ROM.

Ważne:
Kluczem do sukcesu jest aby w podstawce U9 znajdowała się zawsze pamięć ROM z procedurą startową systemu, ponieważ procesor zaczyna wykonywanie programu zawsze od adresu 0x0000, zaś w podstawce oznaczonej jako U12 musi znajdować się pamięć RAM.

Klawiatura

Oryginalna klawiatura od kalkulatora Elwro jest obecnie coraz mniej dostępna. Postanowiłem więc wykonać własną klawiaturę z popularnych przycisków monostabilnych lutowanych wprost do uniwersalnej płytki drukowanej, która następnie została skrosowana na wzór oryginalnej klawiatury według schematu ze str.57 zeszytu MIK09. Układ klawiatury pokazany jest dla utrudnienia na str.19 tegoż zeszytu.
Rysunek 6 (poniżej) przedstawia layout klawiatury w fazie tworzenia.

rys.6. Klawiatura w fazie montażu.

W praktyce tak wykonana klawiatura będzie, jak mniemam, raczej niewygodna w użytkowaniu dlatego na dłuższą metę zostanie zastąpiona interfejsem klawiatury komputerowej PS/2. Interfejs taki zostanie przeze mnie wykonany jako pierwsze rozszerzenie hardwre’u mikrokomputera. Przynajmniej takie są plany :).

Zasilanie

Jako, że budowa dedykowanego zasilacza z tzw. “prawdziwego zdarzenia” nie zawsze ma sens, mój system CA80 korzysta z zasilacza zewnętrznego +5V 2A. Mogłem tak zrobić, ponieważ nie potrzebuję napięcia +30V dla wyświetlacza lampowego a napięcie -5V potrzebne w interfejsie magnetofonowym, przewiduję wytworzyć za pomocą miniaturowej przetwornicy izolowanej 5VDC/5VDC 1W np. firmy Aimtec, która to przetwornica spokojnie mieści się na dodatkowym polu montażowym płytki MIK290.

Warto wspomnieć, że nie wykorzystując zasilacza dedykowanego dla CA80, warto wejście zasilania na złączu ZA zabezpieczyć diodą mocy (zabezpieczenie przed odwróceniem zasilania) oraz diodą zenera lub transilem (zabezpieczenie przed podaniem zbyt wysokiego napięcia zasilania). Zamiast transila można też pokusić się o zbudowanie prostego układu z tyrystorem i diodą zenera na jego bramce, którego zadaniem będzie zwarcie do masy zasilania +5V w przypadku przekroczenia granicznej wartości 5,2V.

Uwagi końcowe

Moim zdaniem warto jeszcze wyprowadzić z płytki MIK290 wygodny sygnał RESET, tj. kabelek zakończony przyciskiem monostabilnym. Warto podłączyć go pomiędzy rezystor R9 a masę (zadziwiające, że autor tak mało uwagi poświęca temu sygnałowi, ba nie jest on nawet doprowadzany np. do układów 8255).

Następną kwestią bardzo przydatną w toku uruchamiania systemu jest montaż kołków zasilania +5V i masy, dla łatwego podłączenia miernika, sondy logicznej, czy oscyloskopu lub analizatora stanów logicznych, jeśli ktoś posiada. Najlepiej wykonać to udogodnienie w pobliżu złącza ZA.
Ja dodatkowo podlutowałem również czerwoną diodę świecącą, która ma sygnalizować wizualnie obecność napięcia zasilania +5V.

Do kondensatorów blokujących znajdujących się na płycie MIK290 (zwłaszcza tych w pobliżu złącz ZA i ZW) dobrze jest równolegle dołożyć kondensatory elektrolityczne o pojemności przynajmniej kilkudziesięciu mikrofaradów i napięciu pracy minimum 6V. Obserwacje oscyloskopem szyny zasilania pokazują bowiem dosyć wysoki poziom zakłóceń wnoszonych przez poszczególne komponenty systemu.

W mojej konstrukcji zastosowałem kwarc 16MHz, co w konsekwencji dało zegar procesora CLK=4MHz a przerwanie NMI wzbudzane jest z częstotliwością 500Hz. Jest to defaultowe rozwiązanie opisane na samej górze str.54 zeszytu MIK09. Rozwiązanie to wymaga zastosowania w miejsce U5 i U6 układów typu 4518 (w moim przypadku układy te nie wchodziły w skład zakupionego zestawu części dla CA80 i zostały zakupione osobno). Musze przyznać, że jak dotąd nie wykonałem strojenia układu zegarowego, zostawiam to w sumie na potem.

rys.7. CA80 w trakcie uruchamiania.

Wszystkim śmiałkom, którzy zdecydują się na budowę tego “zabytkowego” mikrokomputerka życzę sukcesu i wiele satysfakcji.

Gdyby ktoś chciał się podzielić ze mną swoimi uwagami, zadać pytanie dotyczące uruchamiania tego systemu lub po prostu pochwalić się swoimi sukcesami na tym polu, bardzo proszę o kontakt:
elserw@elserw.com lub FB: Elektronika Serwis

COVID-19 Pracujemy NORMALNIE

COVID-19 Informacje

COVID-19

Wobec zagrożenia, jakie niesie ze sobą epidemia koronawirusa, ELEKTRONIKA SERWIS dokłada starań, aby zapewnić swoim Klientom stałą jakość usług. Serwis nasz działa w normalnym trybie i zwykłych godzinach pracy. Mimo tego wprowadziliśmy szczególne procedury w trosce o zapewnienie bezpieczeństwa oraz zdrowia, stosowane podczas kontaktu z Klientami oraz podczas serwisu dostarczanych przez nich urządzeń.

Wszystkie naprawy oraz inne przedsięwzięcia podjęte dotychczas są realizowane normalnym tokiem. Pomimo posiadania własnego magazynu części (w chwili obecnej jest to ok. 7,5 tyś. pozycji) jesteśmy w pewnym stopniu uzależnieni od naszych partnerów handlowych oraz dostawców z całego świata. Dlatego też w dostawach niektórych części zamiennych mogą wystąpić incydentalne opóźnienia związane z problemami logistycznymi na świecie.

coronavirus
  • Staramy się stale monitorować rozwój sytuacji epidemiologicznej zarówno lokalnie, jak i w skali globalnej dostosowując swoje działania w miarę rozwoju pandemii COVID-19.
  • Jesteśmy stale w kontakcie z naszymi dostawcami w celu zapewnienia nieprzerwanego łańcucha dostaw części zamiennych i urządzeń, niezbędnych do terminowej obsługi naszych Klientów.
prewencja

Uruchamianie napędu z falownikiem

… czyli praktyczna wiedza na temat podłączania falownika.*

Co należy zrobić i o czym pamiętać zanim podłączysz falownik ?

Przed podłączeniem falownika należy:

  • Sprawdzić czy dane techniczne falownika są zgodne z danymi na tabliczce znamionowej silnika oraz czy zasilanie falownika jest odpowiednie do tego, które zostanie do niego przyłączone w maszynie. Napięcie zasilania zawsze sprawdzamy zanim przyłączymy falownik do układu.
  • Na pewno warto sprawdzić sposób i rodzaj sterowania, ze szczególnym uwzględnieniem zadawania częstotliwości (prędkości). Pomocne tu będą: dokumentacja maszyny (schematy elektryczne) i dokumentacja dostarczona przez producenta / importera montowanego falownika.
  • Sprawdzić czy falownik jest odpowiednio zaprogramowany a jeśli nie, należy zrobić to zgodnie z jego instrukcją programowania.
Obrazek posiada pusty atrybut alt; plik o nazwie Depositphotos_13332104_original.jpg
  • Koniecznie sprawdź, czy silnik jest właściwie skonfigurowany (falowniki o zasilaniu jednofazowym – silniki zwykle konfigurowane są „w trójkąt” a o zasilaniu 3-fazowym “w gwiazdę”).

  • Sprawdzić symetryczność uzwojeń silnika (zwłaszcza jeśli nie podłączamy fabrycznie nowego silnika) – za pomocą omomierza, wykonując na najniższym zakresie pomiarowym 3 pomiary rezystancji uzwojeń silnika od strony zacisków falownika (falownik odłączony oczywiście od układu elektrycznego). Mierzymy rezystancję pomiędzy zaciskami U-V, U-W, V-W, wyniki pomiarów muszą być identyczne, w przeciwnym wypadku sprawdzamy silnik oraz okablowanie.
  • Przy pomocy miernika izolacji (induktora) należy sprawdzić czy nie ma doziemienia na żadnej z 3 faz od strony zacisków falownika (podczas pomiarów falownik musi być koniecznie odłączony od układu !).
  • Sprawdzić „ręcznie” (z zachowaniem szczególnej ostrożności !), czy wirnik silnika swobodnie się obraca. Jeśli nie, lub jeśli sprawdzenie takie nie jest możliwe, silnik należy odłączyć mechanicznie od maszyny (np. zdjąć pasek klinowy) i lub wybudować go na zewnątrz.
  • W razie jakichkolwiek wątpliwości dotyczących silnika, należy oddać go do sprawdzenia i ew. naprawy w specjalistycznej firmie. Próba współpracy falownika z wadliwym silnikiem w większości przypadków kończy się poważnymi konsekwencjami (najczęściej ucierpi na tym falownik).
  • Przed przyłączeniem falownika można wykonać rzeczywisty test silnika podłączając go bezpośrednio do sieci zasilającej 3-fazowej. Dotyczy to większości silników 3-fazowych, lecz nie wszystkich.
    (Uwaga: w takim przypadku silnik musi być skonfigurowany zgodnie z jego tabliczką znamionową, zwykle „w gwiazdę”, a jego wirnik musi mieć możliwość swobodnego obrotu – najlepiej odłączyć w tym celu układ mechaniczny).

Przed podaniem napięcia zasilania na falownik (po jego podłączeniu i montażu w maszynie) należy:

  • Sprawdzić poprawność mechanicznego montażu falownika w maszynie lub rozdzielnicy / szafie sterowniczej. Zwrócić uwagę na minimalne odstępy obudowy falownika od innych urządzeń w szafie (odstępy te oraz inne warunki montażu mechanicznego falownika są opisane w dokumentacji producenta urządzenia i powinny być rygorystycznie przestrzegane, gdyż nie stosowanie się do nich skraca bezawaryjny czas pracy lub w ogóle uniemożliwia falownikowi poprawną pracę).
Obrazek posiada pusty atrybut alt; plik o nazwie Depositphotos_9382384_original.jpg
  • Sprawdzić poprawność elektrycznego podłączenia falownika, ze szczególnym uwzględnieniem przekrojów i poprawności podłączenia uziemień zarówno od strony zasilania falownika, jak i od strony jego obciążenia (silnika).

  • Sprawdzić poprawność logiczną i elektryczną podłączenia sygnałów sterujących do zacisków sterowania falownika.
  • Sprawdzić czy wszystkie parametry zaprogramowanego falownika są poprawne i zgodne z warunkami jego pracy (parametry dot. silnika, sterowania, sposobu normalnej pracy oraz trybów awaryjnych, itd.). Odpowiednie informacje znajdują się zawsze w dokumentacji fabrycznej falownika.
  • UWAGA: W układzie elektrycznym, pomiędzy zaciskami wyjściowymi falownika a silnikiem nie może być żadnej aparatury rozłączającej, jak styczniki, wyłączniki nadprądowe, itp. (chyba, że producent falownika je dopuszcza, ale sytuacja taka ma miejsce niezwykle rzadko i jest szczegółowo opisana w dokumentacji falownika).

Podczas pracy falownika, tj. gdy falownik jest w trybie „RUN” (“Trip”) :

  • ZABRANIA SIĘ kategorycznie odłączania obciążenia falownika (silnika), ani też przyłączania go (nawet jeśli falownik pracuje testowo i bez obciążenia).

  • Należy zadbać o bezprzerwowe zasilanie falownika do momentu zatrzymania silnika i przejścia falownika w stan „STOP”. Trzeba pamiętać, że sterowanie zasilaniem falownika musi być odpowiednio skorelowane ze sterowaniem ruchem silnika, tak aby stycznik zasilania (jeśli jest) nie powodował rozłączania zasilania przed zgłoszeniem zatrzymania się falownika (informację o zatrzymaniu można np. pobrać z jednego z wyjść cyfrowych falownika pod warunkiem jednakże, że falownik ten posiada taką możliwość i jest odpowiednio zaprogramowany).
  • NIE NALEŻY wyłączać zasilania maszyny, a tym samym falownika, kiedy falownik nie jest w trybie „STOP” a silnik nie jest całkowicie zatrzymany. Skraca to wydatnie żywotność falownika, a w pewnych sytuacjach może dojść do niebezpiecznych stanów awaryjnych napędu, z uszkodzeniem urządzeń włącznie.
Obrazek posiada pusty atrybut alt; plik o nazwie Depositphotos_13332104_original.jpg
  • Należy pamiętać, że po wyłączeniu napięcia zasilania falownika, ponowne jego włączenie jest możliwe po co najmniej 60 sekundach (o ile dokumentacja tego urządzenia nie nakazuje inaczej). Należy rygorystycznie przestrzegać minimum 60 sekundowego cyklu włączania i wyłączania zasilania falownika.

  • Dozwolona jest dowolna zmiana częstotliwości (prędkości) falownika, jednakże należy pamiętać, że zbyt szybka zmiana nastaw (głównie w przypadku zadawania częstotliwości “ręcznie”, np. za pomocą potencjometru) może doprowadzić do przeciążenia układu napędowego i wystąpienia błędu lub uszkodzenia falownika.
  • Przy pierwszym uruchomieniu napędu należy zadbać, aby ustawiona częstotliwość wyjściowa falownika była taka sama, jak nominalna częstotliwość pracy silnika (zwykle jest to 50Hz). W szczególnych jednak przypadkach dopuszcza się odstąpienie od tej zasady, jednak zawsze należy mieć na uwadze wystąpienie przeciążenia falownika podczas rozbiegu i związane z tym możliwe konsekwencje dla napędu i samego falownika.
  • Podczas uruchamiania napędu należy zwrócić uwagę na to, czy silnik rozpędza się i pracuje równomiernie, bez zacięć i ze stabilną prędkością (równomiernym przyśpieszaniem). W razie jakichkolwiek anomalii należy przerwać uruchomienie i wznowić je następnie po odłączeniu wirnika silnika od układu mechanicznego, jeśli ten jest prawdopodobną przyczyną zauważonych nieprawidłowości.
Obrazek posiada pusty atrybut alt; plik o nazwie Depositphotos_13332104_original.jpg
  • W przypadku wystąpienia błędu sygnalizowanego stanem alarmowym falownika i zatrzymaniem napędu, przed skasowaniem błędu i ponownym rozruchem napędu, należy odczekać określony czas wskazany w dokumentacji fabrycznej falownika (zwykle jest to nie mniej niż 60 sekund).

  • Należy pamiętać, że desymetryzacja faz lub skokowa zmiana rezystancji obciążenia elektrycznego falownika (np. odłączenie silnika), w większości przypadków skutkuje USZKODZENIEM falownika.
Obrazek posiada pusty atrybut alt; plik o nazwie Depositphotos_9382384_original.jpg
  • Uruchomienie napędu należy przeprowadzać zawsze przy spełnieniu warunków bezpieczeństwa wynikających ze stosowania odpowiednich instrukcji w tym zakresie. Szczegółowe warunki uruchamiania napędów z falownikami są opisane w dokumentacjach falowników i maszyn przemysłowych, w których pracują.

Jeśli po przeczytaniu powyższego artykułu nie rozumiesz zawartych tutaj informacji lub z różnych przyczyn, nie jesteś w stanie zastosować się do powyższych porad, instalację falownika zleć wykwalifikowanemu specjaliście. Na pewno ograniczy to sumaryczne koszty uruchomienia i spowoduje jego szybki przebieg minimalizując potencjalne sytuacje niebezpieczne dla zdrowia i życia ludzi oraz kondycji maszyn.

Instalację i podłączanie serwo-napędów omówimy w innym artykule

*) Niniejszy artykuł dotyczy podłączania i uruchamiania standardowych falowników skalarnych i wektorowych małych i średnich mocy. Obejmuje on przypadki implementacji tych urządzeń w standardowych aplikacjach napędowych i pracujących w typowym dla nich otoczeniu. Zawarte tu porady mają charakter ogólny i nie rozpatrują przypadków szczególnych zatem pamiętaj, że wszystko co robisz, robisz tylko na własną odpowiedzialność. Firma ELEKTRONIKA SERWIS, a w szczególności autor tego artykułu, nie ponoszą jakiejkolwiek odpowiedzialności za ewentualne skutki Twoich działań.