Rozwiązania retro

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Rozwiązania retro

Postautor: gaweł » poniedziałek 10 cze 2019, 21:45

W 2005 roku, co chyba nie jest żadną tajemnicą, rozpocząłem pracę
nad swoją pierwszą książką. Nie ukrywam, było to spore wyzwanie. Koncepcja
zmieniała się kilka razy. Praktycznie w ostatniej chwili zaszły zmiany: tekst
poświęcony prockowi AT90S8515 został dopasowany do ATMEGA8515. Ileś pracy
poszło w kubeł, ale nie ma tego złego, co by nie wyszło na dobre. Dało to jakiś
bagaż doświadczeń by nie popełniać ponownie tych samych błędów. Nie warto
skupiać się nad przeszłością a właśnie ten procek (AT90S8515) ustępował miejsca
nowemu. Dzisiaj po kilkunastu latach mam kolejne wyzwanie: nowa książka
Nie będzie ona poświęcona nowoczesnym prockom (czyli czytaj: STM32... lub
coś podobnego). Obecnie na księgarskich pułkach stoi wiele takich pozycji,
kolejna nie służy niczemu.
Moim celem bardziej staje się „historia i filozofia”. Odkurzam swoje stare CD'ki,
stare przemyślenia, stare konstrukcje. Jak patrzę na te stosiki, jest z czego
wybierać. Wymaga to rewitalizacji i trochę uwspółcześnienia.

CANNON [DOLORES]https://www.youtube.com/watch?v=wam-oMub8EU


Aktualnie kompletuję materiał. Zawsze można w tym znaleźć coś ciekawego. Przykładowo, konstrukcja datowana na 2005. Nie da się zaprzeczyć, że inspiracją do tej konstrukcji były rozmowy z Nataszą. Tak, ta, którą wszyscy znamy. O ile pamiętam jej słowa: będziesz miał coś do podlewania ogródka w jakimś cyklu czasowym. Daleko to nie odbiegło od tej sugestii. Dzisiaj ten divajs jest przeznaczony do załączania obciążeń między taryfą dzienną a nocną (mam licznik energii dwutaryfowy, więc w nocy i w weekendy mam tańszy prąd).
O ile sama konstrukcja wokół procka nie w sobie nic nadzwyczajnego, to warto jednak zwrócić uwagę na elementy, które typowo są wręcz pomijane milczeniem – zasilacz.
No ale po kolei.
Vfd01_ilu01.png
Jednostka centralna: żadne himalaje osiągnięć inżynierskich.
Vfd01_ilu02.png
Układ RTC również.
Vfd01_ilu03.png
Obsługa wyświetlacza VFD jest realizowana w dwóch wariantach:
Vfd01_ilu04.png
Samą lampę można obsługiwać na kilka sposobów. Możliwym rozwiązaniem jest zastosowanie gotowca (jak przykładowo MAX6931, dostałem go jako próbki, w sumie 2 sztuki, od MAXIM ze Stanów, poprosiłem → przyszło). To takie proste.
Vfd01_ilu05.png
Jakkolwiek jest to fajne rozwiązanie, ma jedną wadę. Gdybym założył się o piwo, na czym polega ta wada, to są duże szanse, że nie straciłbym piwa. Zastosowanie gotowca nie daje wiedzy, co do szczegółów. Daje końcowy efekt, bo działa ale, co się dzieje „w środku” – nie wiadomo. Inne rozwiązanie:
Vfd01_ilu06.png
i wszystko widać jak na dłoni.
Vfd01_ilu07.png
Interfejs szeregowy do procka. No tu jest trochę nietypowe rozwiązanie.
Vfd01_ilu08.png
Niejako zrównoleglone RS232 i RS485 na jednym kanale szeregowym? Pomimo, że pewnych rzeczy nie widać na pierwszy rzut oka, niektóre działania mają jakiś sens. W tym przypadku, to urządzenie jest wpięte w magistralę RS485 i normalnie sobie gawędzi z zresztą świata. Czasami zachodzi potrzeba (ot choćby korekty ustawienia czasu) podejść z lapkiem (RS232) i coś tam zmienić. Chwilowy brak komunikacji na RS485 nie wnosi dużych perturbacji. Cały protokół jest tak skonstruowany, że to ustoi, najwyżej przez jakąś chwilę będzie coś niedostępne. Kombinacja klawiszowa na frontpanelu i procek przełącza się na RS232 i jest gotowy do dalszej współpracy.
Zasilacz:
Vfd01_ilu09.png
z jednego napięcia na wyjściu trafa 10VAC daje +12VDC na cewki przekaźników, +5VDC na procka, około 3,5VDC na żarzenie lampy oraz 28VDC napięcia anodowego na lampę. Konstrukcja jego jest skrzyżowaniem klasycznego rozwiązania z powielaczem napięcia. Jego autor, nie jest to moja bajka, zezwolił mi na publikację.
Skoro jest urządzenie, to rzecz jasna jest projekt PCB. Całość składa się z odpowiedniego zespołu:
Vfd01_ilu10.png
Vfd01_ilu11.png
Vfd01_ilu12.png
Vfd01_ilu13.png
Vfd01_ilu14.png
Vfd01_ilu15.png
W realnym świecie to jest tak:
Vfd01_ilu17.jpg
Vfd01_ilu18.jpg
Vfd01_ilu19.jpg
Vfd01_ilu20.jpg
Vfd01_ilu21.jpg
Vfd01_ilu22.jpg
Vfd01_ilu23.jpg
Vfd01_ilu24.jpg
Vfd01_ilu25.jpg


Kawałek softu:
vfd.zip
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
wojtek
Geek
Geek
Posty: 1972
Rejestracja: piątek 04 wrz 2015, 09:03
Lokalizacja: JO90JK

Re: Rozwiązania retro

Postautor: wojtek » poniedziałek 10 cze 2019, 23:09

No to zaczynam kibicować :)
73 Wojtek

Awatar użytkownika
j23
User
User
Posty: 404
Rejestracja: czwartek 08 paź 2015, 18:40

Re: Rozwiązania retro

Postautor: j23 » poniedziałek 10 cze 2019, 23:16

Już teraz kibicuję Tobie w pisaniu tej książki. Bardzo dobry pomysł! -podelektować się nieco tym co tak naprawdę w procku Maxim piszczy (lub powinno piszczeć). :) A co do piszczenia to ten młody wirtuoz całkiem nieźle "czesze gitarę". Przy takiej muzie można pisać! :)
:like:
Bo ona jest piękniejsza niż słońce
i wszelki gwiazdozbiór.
Porównana ze światłością-uzyska pierwszeństwo
(...)Mądrości zło nie przemoże
Mdr 7,29

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » wtorek 11 cze 2019, 01:22

wojtek pisze:No to zaczynam kibicować :)
Wdzięczny jestem za kibicowanie. Do finału to jeszcze długa i ciernista droga, ale wiem jedno: jakoś dotrwam do końca.

j23 pisze:Już teraz kibicuję Tobie w pisaniu tej książki. Bardzo dobry pomysł! -podelektować się nieco tym co tak naprawdę w procku Maxim piszczy (lub powinno piszczeć). :) A co do piszczenia to ten młody wirtuoz całkiem nieźle "czesze gitarę". Przy takiej muzie można pisać! :)
:like:
Klasyka wiecznie młoda, utwór w oryginale pochodzi z Baroku (XVII wiek :o ). Jakkolwiek zostanie przerobiony, w jakiekolwiek ubierzesz nowe szatki, nadal jest to coś, co pamięta i oddycha duchem minionych czasów. Tego nie da się wymazać. Natomiast fajne i godne podziwu jest to, że wraca stare i wartościowe.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
tasza
Expert
Expert
Posty: 935
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: Rozwiązania retro

Postautor: tasza » wtorek 11 cze 2019, 18:17

No to już wiem, poczemu mnie tak uszy piekły...
gaweł pisze:(...) Wymaga to rewitalizacji i trochę uwspółcześnienia.(...)

No, odnośnie do tejże kwestii mam nieco odmienne zdanie. Bo powstaje pytanie - co ma na celu ewentualne opracowanie? Czy przeniesienie starych pomysłów we współczesne realia? Czy raczej ich zachowanie w pierwotnej postaci zgodnie z warunkami i możliwościami jakie był kiedyś, choćby lat temu naście, w elektronice czy informatyce to przepaść przecież. Moim zdaniem opisy starych układów w połączeniu z metodologią rozwiązywania problemów przy pomocy _wtedy_ dostępnych środków (choćby autorskich, domowych narzędzi-samoróbek - vide Cyfrowy Motyl) są mega cenne. Wycieczka w przeszłość to raz, poznanie istoty zagadnienia, podstaw z których wywodzą się współczesne rozwiązania po drugie. Trudno mi to nieco ubrać w słowa, ale jeżeli sięgniemy po książki z lat 60-70 panów Masewicza, Klimczewskiego czy państwa Lewińskich i skonfrontujemy ze współczesną literatura o lampach (p.A.Zawada) - w starych opracowaniach i konstrukcjach jest `to coś`, teraz dopiero dostrzegalna magiczna aura, swoisty niepowtarzalny klimat, to nie są tylko książki.
Jeżeli miałabym cokolwiek zasugerować, to skupienie się na zapewnieniu kompletność tego co już jest i opisanie, choćby były to projekty niedokończone czy palcem na wodzie, przecież nie chodzi o gotowce do polutowania, tylko o źródło pomysłów i inspiracji dla innych. A publikacja to już inna kwestia, można nowocześnie, choćby e-book....
___________________________________________ ____ ___ __ _ _ _ _
J​eżeli dadzą ci papier w linie, pisz w poprzek. Juan Ramón Jiménez

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » wtorek 11 cze 2019, 19:49

tasza pisze:No to już wiem, poczemu mnie tak uszy piekły...

Widocznie masz ponadprzeciętne czucie. To, że jesteś wiedźmą, to już wiemy z historii z Motorolą. Pytanie: kim jeszcze jesteś ? :)

tasza pisze:No, odnośnie do tejże kwestii mam nieco odmienne zdanie.

Wolno ci mieć własne zdanie, to jest podstawowe, nienaruszalne prawo ;) . Z drugiej strony, to muszę powiedzieć, że "mądrość przez ciebie przemówiła". Dokładnie tak samo to postrzegam. Czasem nieporozumienia wynikają z doboru słów, odmiennej interpretacji. Mówiąc o rewitalizacji miałem na myśli usunięcie bagów w sofcie, bo te istnieją i są mi znane, takie remake softu. Konstrukcja ze sprzętowego punktu widzenia pozostaje niezmieniona. Proszę, poparz na kawałek schematu z przekaźnikami, tam nie ma diód (bo są w scalaku ULN) ale droga od cewki do diody daleka a i dioda z gatunku anemicznych. Mógłbym zedytować schemat i nikt by się nie kapnął. Może z wyjątkiem ciebie, bo widziałaś oryginał, ale po pierwsze, to straciłaś całą pocztę z tamtych czasów i nie masz jak to porównać (to są twoje słowa) a po drugie nie sądzę byś pamiętała szczegóły.
Widzisz mogłem, ale nie zrobiłem. Etyka mi nie pozwala na takie manipulacje.
A może... zapraszam do współpracy.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
piotrek
Newb
Newb
Posty: 92
Rejestracja: niedziela 05 lis 2017, 02:46

Re: Rozwiązania retro

Postautor: piotrek » środa 12 cze 2019, 17:00

Może trochę odbiegnę od wątku. Zastanawia mnie rola tranzystora Q101. Podejrzewam, że pelni rolę wzmacniacza sygnału dla głośnika SP101, ale dlaczego rezystor R106 w kolektorze ma tak dużą rezystancję 1k? Nie prościej było podłączyć SP101 bezpośrednio do portów PD4 i PD5 poprzez szeregowy 1k? (Przy załozeniu, że PD5 jest zanegowany względem PD4)

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » środa 12 cze 2019, 19:34

Może i prościej... może oporniczek ma za dużą wartość i po raz kolejny wychodzi prawdziwość tego, że jak sam nie sprawdzisz, to nie wiesz. Widzisz jest pewien problem. Jest to dyskusja o zdarzeniach, które zaszły dawno temu i coraz trudniej jest dotrzeć do prawdy. Głośniczek miał beepać na przyciskanie klawiszy, funkcja w sofcie do tej pory nie zaistniała, więc nie miała okazji wypłynąć na wierz. Twoja uwaga jest cenna. Ile jest jeszcze takich ukrytych bagów?

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » czwartek 13 cze 2019, 00:25

Z grupy tematów „klimatycznych”... by uratować od zapomnienia jak najwięcej...

CANNON [DOLORES]https://www.youtube.com/watch?v=ODknhLSaaKo

Nie trzeba specjalnie nikogo przekonywać, że transmisja sygnałów cyfrowych przez środowiska agresywne nie jest tematem prostym. Potrzeba wiele wysiłku by ochronić „kruche istoty jakimi są bity” w ich podróży z jednego miejsca do drugiego. Po drodze czyha wiele niebezpieczeństw, które przerobią piękne zbocza cyfrowe wykrzywiając je jak w krzywym zwierciadle. Jednak, jak często to bywa, zawsze na każdy problem da się znaleźć jakieś rozwiązanie. Ludzkość dopracowała się lepszych lub gorszych rozwiązań. Daleko nie szukając, takim przykładem jest Recomended Standard numer 232, czyli popularny RS232. Transmisja RS232 pomimo pewnego stopnia odporności nie jest sobie w stanie poradzić w niektórych (agresywnych) środowiskach, a takich na ziemi mamy co niemiara. Ileż to jest w pobliży urządzeń energetycznych, które emitują szkodliwe pola, a te nie są bez wpływy na transmisję danych. Historycznie patrząc na zjawisko jest coraz gorzej, popularne przejściówki USB na RS232 są jeszcze bardziej podatne na ingerencję z zewnątrz a oznaczenie RS232 przechodzi raczej do symbolicznego „chciejstwa”. W normalnym RS232 występują poziomy napięcia +6 .. 12V oraz -12V .. -6V. W przejściówkach USB'owych typowo napięcia ujemne zastąpiło 0V znacząco redukując margines tolerancji na zakłócenia. Jednak pomimo słusznej idei przyświecającej podniesieniu bezpieczeństwa transmisji, jest ona nadal podatna na zakłócenia. Wynika to z filozofii rozwiązania → transmisja jest nadal napięciowa. A gdyby tak…
Marzenia o stworzeniu bezpiecznego medium komunikacyjnego mogą się spełnić. Konieczna jest zmiana punktu widzenia, warto popatrzeć na zagadnienie z innej strony, uświadomić sobie mechanizm działania. Wtedy odpowiedź nasunie się sama.
Można zastąpić sygnał napięciowy sygnałem prądowym. Wygenerowanie w obwodzie impulsu napięciowego nie jest żadnym problemem. Ot wystarczy obok zwiniętego przewodu użyć choćby zapalniczki piezoelektrycznej. A teraz rozpatrzmy zamknięty obwód elektryczny mający przykładowo łącznie kilkaset Ω. By było trudniej dodajmy do tego diodę LED (z jakimś całkiem sporym spadkiem napięcia na złączu). Jak duży musi być impuls zakłócający, by w takim obwodzie popłynął prąd, który jest w stanie zaświecić diodą LED. Koncepcja niby prosta, gorzej z realizacją. Poniższy projekt jest kooperacją (brali w nim udział inni), nie wszystkie fragmenty są moim projektem jednak jest to przykład, że można wykorzystać wiedzę innych.
No więc, projekt urządzenia, które jako dodatkowa cecha, jest w stanie połączyć elementy o znacząco różnym potencjale zera (jak ktoś próbował działać w źle zaprojektowanej lub zrealizowanej instalacji elektrycznej to może wiedzieć o czym mówię, w skrajnych przypadkach można spróbować dotknąć jedną ręką kompa a drugą ręką złapać się za kaloryfer lub zwykły kran, choć w dobie plastykowych rur może nie zadziałać, ale jak zadziała, to... boli, miałem okazję odczuć).
No więc device komunikacyjne jest takie (datowane na 1995 rok, tj. ten wariant jest tak datowany, choć pierwsze eksperymenty i geneza są znacząco wcześniejsze):
trans_il01.png
Część cyfrowa nie jest czymś nadzwyczajnym, klasyczny interfejs RS232 przerabia sygnał z kompa na sygnał logiczny. Przechodzi on przez zespół ekskluzywnych bramek, które są dodatkowo sterowane zworką JP101. W sumie tworzą programowalny negator sygnału (sygnał w torze może przejść wprost lub zostać zanegowany, to prosty chwyt). Po co? Wszytko zostanie wyjaśnione później.
trans_il02.png
Elementy na transoptorem U301 to już efekt kooperacji. Dla mnie wtedy chwyt z trzema diodami szeregowo był „poza percepcją”.
trans_il03.png
Schemat z normalnym (białym) tłem to elementy lokalne, tutejsze. Z kolorowym tłem, to elementy choć pracujące tutaj lokalnie, to są z innego świata, są obce (z punktu widzenia energetyki), wymagające izolowanego zasilania (w końcu to coś miało łączyć różne potencjały zera, różne światy).
Nie da się ukryć, implikuje do podwójny zasilacz, a ten z kolei musi mieć taką własność, że ma rozdzielone galwanicznie uzwojenia (nie mogą mieć wspólnego odczepu jak to jest często spotykane; specjalne wymagania spełniają jedynie specjalne elementy).
trans_il04.png
PCB to rozwiązanie praktycznie jednostronne, jest jedynie jedna niewielka zworka, co w sumie jest akceptowalne.
trans_il05.png
trans_il06.png
Kwestia wspomnianej zworki. To daje nieoczekiwanie jeszcze dodatkowe cechy użytkowe, które niewątpliwie czasami mogą być pomocne. Jak nietrudno zauważyć, zworka jest w stanie zmienić niejako tryb pracy, czyli stworzyć skojarzenie: stan logicznej jedynki (za MAX232) odpowiada świeceniu diody u „przeciwnika” (płynie prąd przez diodę LED) i w sumie uzyskać identyczny stan logiczny (przed MAX232) w innym środowisku. Można się umówić, że stan logicznej jedynki to brak prądu płynącego przez rzeczoną diodę LED. Konieczna jest jedynie zgodność, taki konsensus na obu końcach. Jeżeli umowa jest taka, że stan pasywny to taki, gdzie płynie prąd, to utrata połączenia (przykładowo złośliwe stworki przegryzły kabelek) to o braku łączności wiedzą natychmiast obie strony. UART odbierze sygnał break.
Patrząc z perspektywy czasu, to niektóre rozwiązania są... jakby to powiedzieć, dalekie od obecnie stosowanych. Można to i owo uprościć, ale cóż, … tak było.
Urządzenie wymagało „pewnego rodzaju strojenia”. W zależności od producenta transoptorów CNY17 i grupy selekcyjnej zachodziła korekta wartości (a czasem topologii) elementów. Konieczne były elementy z grupy -3 (CNY17-3), słabsze nie dają rady.
A dzisiaj... zamiast kombinować jak koń pod górę, bierze się przykładowo 6N137 (fabrycznie powtarzalny, z gwarancją 1megabita, z cyfrowym wyjściem). A kiedyś dało po wielu bojach z generatorem sygnału wzorcowego i z oscyloskopem wyciągnąć 115kilo, to był duży sukces. Czy tych dziesiąt lat temu były takie fajne komponenty? Z pewnością, jednak jak o czymś się nie wie, to tak jakby to nie istniało. Dzisiaj można zadać dla google odpowiednio sformułowane pytanie i przychodzi odpowiedź (natychmiast). Można wręcz przebierać z szerokiej gamy.
A kiedyś, w roku 1992... no niech pomyślę... nie miałem internetu, ale miałem książki, chęci no i oczywiście ogromne wsparcie u innych.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » sobota 15 cze 2019, 22:32

Żyrandol na mikroprocesorach

lpsw_il00.jpg


Powrót pamięcią do dawnych czasów przywołuje różne
skojarzenia. Pamiętam, jak zaczynałem zabawę z tranzystorami,
w radiu często leciała poniższa muza. Wobec tego
równie ważne jak tranzystory są nuty.

far, far away,https://www.youtube.com/watch?v=gGyPrmbgan0


W pewnym sensie kontynuacją rozważań z poprzedniej części jest realizacja „żyrandola na mikroprocesorach”. Związek ten polega na kompatybilności połączenia kolejnej części oldschool'owego rozwiązania z wcześniej opisanym. Jak wspomniałem, idea dotyczy ochrony transmisji na dużych odległościach, przechodzących przez „zabójcze” środowiska.
Konstrukcja w pewnym sensie jest „wielowątkowa”. Z jednej strony nadaje się do umieszczenia w bieżącym temacie, jest „klimatyczna”. Z drugiej strony również jest przykładem, w którym był silnie wykorzystany emulator EPROM opisany w innym temacie (gdyby ktoś pytał). Bez niego to poprawna pracy jest praktycznie niemożliwa.
Zaczynając od schematu, to urządzenie bazuje na procku C51.
lpsw_il01.png
Jednostka centralna jest zbudowana w oparciu o procek C51 (ten standardowy, gdzie jego naturalne możliwości można zwielokrotnić dodając zewnętrzny EPROM na program oraz zewnętrzną pamięć RAM, jego naturalne możliwości [128 bajtów] są niczym w stosunku do tego, co daje nowe środowisko [2kB]). Bramkowy układ generacji sygnały wyboru wytwarza dwa: jeden do pamięci zewnętrznej RAM, drugi jest rejestrem w przestrzeni zewnętrznej sterującym zastosowane transoptory.
Cały port P1 jest przeznaczony na lokalną klawiaturę, wybrane piny portu P3 są zastosowane do różnych celów: transmisji szeregowej, sterowania rejestrem przesuwającym (co pozwala na poznanie „własnego imienia” – identyfikatora, który ma znaczenie w komunikacji, w końcu istotne jest do kogo się mówi).
lpsw_il02.png
Peryferale sterownika, to właściwie jeden rejestr (ten z zewnętrznej przestrzeni, a który wymaga drobnego „kopniaka” by zadziałał w postaci chip select'u). Z każdym kanałem jest skojarzony jego wskaźnik aktywności: kanał włączony → dioda świeci. Istnieje możliwość „centralnego” wyłączenia świecenia LED'ów przez bistabilny wyłącznik.
lpsw_il03.png
Wyjścia symbolizowane jako P201 .. P204 pełnią rolę przyłącza „komutatora” do obciążenia 220VAC, stanowią symboliczny wyłącznik dla żarówek w żyrandolu.
Poniższy układ to implementacja interfejsu, który pozwana na komunikację. Jest on kompatybilny z poprzednio opisanym.
lpsw_il04.png
lpsw_il05.png
Kilka ujęć sterownika:
  • procek
    lpsw_il06.jpg
  • transoptory mocy
    lpsw_il07.jpg
  • interfejs szeregowy
    lpsw_il08.jpg
Wejście klawiaturowe (te na porcie P1), jest przyłączone do włączników w ścianie. Rozłożenie ich może być dowolne, jak również nie ma znaczenia odległość. By przeciwdziałać zakłóceniom na liniach klawiaturowych, są one przyłączone za pośrednictwem małego wsparcia, jakim jest specjalizowany mały moduł zawierający generalnie transoptory (plus małą lokalną klawiaturkę do celów techniczno-diagnostycznych).
lpsw_il09.jpg
lpsw_il10.jpg
Włączniki w ścianie (przykładowo):
lpsw_il11.jpg
lpsw_il12.jpg
lpsw_il13.jpg
Trochę starożytna technologia nie przewidywała zapisywania danych konfiguracyjnych. Każdy egzemplarz miał własną „świadomość”, którą uzyskiwał na etapie narodzin. By sprawę uprościć, to z softu został wydzielony moduł (HCTABLE.S03), który wnosił indywidualność. Przykładowo:

Kod: Zaznacz cały

KeybTab         DB      11111110B , 80H + PowerOnChan_0
                DB      11111101B , 80H + PowerOffChan_0
                DB      11111100B , 80H + PowerLAutoOffChan_0
                DB      11110011B , ExtraUserCmm_0 ; PowerSAutoOffChan_1
                DB      11111011B , 80H + PowerInvChan_2
                DB      11110111B , 80H + PowerInvChan_3
                DB      11101111B , 07FH
                DB      11011111B , 07FH
                DB      10111111B , 07FH
                DB      01111111B , 07FH
                DB      00111111B , 80H + TotalOn
                DB      01011111B , 80H + TotalOff
                DB      01101111B , 80H + TotalInv
                DB      0FFH      , 0FFH
;-----------------------------------------------------------------------------
UserDecodeKey   :                               ;PROCEDURE UserDecodeKey ( A : BYTE ) : BYTE ;
;****************                                BEGIN (* UserDecodeKey *)
                MOV     B , A                   ; B := A ;
                MOV     DPTR , # KeybTab        ;
                MOV     R5 , # 0                ; R5 := 0 ;
 UKeDe_5        :                               ; LOOP
                MOV     A , R5                  ;  IF KeybTab [ R5 ] = 0FFH THEN
                MOVC    A , @ A + DPTR          ;
                CJNE    A , # 0FFH , UKeDe_7    ;
                MOV     A , # 0FFH              ;   A := 0FFH ;
                LJMP    UKeDe_6                 ;   EXIT ;
 UKeDe_7        :                               ;  END (* IF *) ;
                CJNE    A , B , UKeDe_8         ;  IF B = KeybTab [ R5 ] THEN
                MOV     A , R5                  ;   A := KeybTab [ R5 + 1 ] ;
                INC     A                       ;
                MOVC    A , @ A + DPTR          ;
                LJMP    UKeDe_6                 ;   EXIT ;
 UKeDe_8        :                               ;  END (* IF *) ;
                INC     R5                      ;  R5 := R5 + 2 ;
                INC     R5                      ;
                LJMP    UKeDe_5                 ;
 UKeDe_6        :                               ; END (* LOOP *) ;
                RET                             ; RETURN A ;
                                                ;END UserDecodeKey ;
;-----------------------------------------------------------------------------
ExtraUser_0_Srv :                               ;PROCEDURE ExtraUser_0_Srv ;
;****************                                BEGIN (* ExtraUser_0_Srv *)
                LCALL   PwrOnCh_1_Srv           ; PwrOnCh_1_Srv ;
                LCALL   BeepOnServ_1            ; BeepOnServ_1 ;
                LCALL   StartShortTime1         ; StartShortTime1 ;
                MOV     A , # BeepOffChan_1     ; AddToQueue1 ( BeepOffChan_1 ) ;
                LCALL   AddToQueue1             ;
                MOV     A , # PowerOffChan_1    ; AddToQueue1 ( PowerOffChan_1 ) ;
                LCALL   AddToQueue1             ;
                RET                             ;END ExtraUser_0_Srv ;
;-----------------------------------------------------------------------------
ExtraUser_1_Srv :                               ;PROCEDURE ExtraUser_1_Srv ;
;****************                                BEGIN (* ExtraUser_1_Srv *)
                RET                             ;END ExtraUser_1_Srv ;
;-----------------------------------------------------------------------------
ExtraUser_2_Srv :                               ;PROCEDURE ExtraUser_2_Srv ;
;****************                                BEGIN (* ExtraUser_2_Srv *)
                RET                             ;END ExtraUser_2_Srv ;
;-----------------------------------------------------------------------------
Każde naciśnięcie klawisza w ścianie jest wykrywane jako '0'. Tablica KeybTab zawiera rozpoznawalne w danym miejscu kombinacje klawiszowe. Pozwala ona uzyskać każdą możliwą funkcjonalność, nawet bardziej złożone. Przykładowo (trzy ostatnie pozycje) naciskając różną, ale ściśle określoną kombinację dwóch przycisków można cały żyrandol (dwubiegowy – dwa obwody żarówek plus dodatkowy kinkiet w ścianie) włączyć, wyłączyć lub odwrócić (włączone zgasić, wyłączone zapalić). Nie jest ściśle zdeterminowana funkcjonalność, każda kombinacja jest możliwa do uzyskania. Dodatkowe wsparcie ze strony komputera, którego sygnał przeszedł pół świata wykorzystując wszystkie możliwe drogi dojścia, pozwala pozbyć się jakichkolwiek ograniczeń.
Teraz rozwiązanie jest już na emeryturze, było w służbie ponad 20 lat, zastąpiły je młode wilki.

Dla tropicieli śladów:
LPSW.ZIP
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse

Awatar użytkownika
gaweł
Expert
Expert
Posty: 751
Rejestracja: wtorek 24 sty 2017, 22:05
Lokalizacja: Białystok

Re: Rozwiązania retro

Postautor: gaweł » niedziela 16 cze 2019, 22:46

Swego czasu trochę się obijałem w firmie, więc w ramach badawczo-eksperymentalnych zaczęło powstawać coś takiego. Jest to bardzo wczesna wersja programu, innej nie znalazłem na swoich CD'ach.
orcad.zip
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Prawdziwe słowa nie są przyjemne. Przyjemne słowa nie są prawdziwe.
Lao Tse


Wróć do „Retro”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości