[V628] Woltomierz panelowy Meratronik V628 - interface do komputera | cz.3

Kącik dla elektroniki retro - układy, urządzenia, podzespoły, literatura itp.
Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

[V628] Woltomierz panelowy Meratronik V628 - interface do komputera | cz.3

Postautor: tasza » wtorek 20 lut 2018, 20:14

#slowanawiatr

♬ ☘ Moja muzyka do majstrowania ♬ ♬ ♬ ☘
♫ ♩ ♪ Distant Dream ⚡ ☘ ⚡ It All Starts From Pieces ♪ ♩ ♫
https://youtu.be/953o5iD688Q



Nie ma tego złego co by na dobre i tak dalej. Kolejny komunał ktoś pomyśli, ale jednak potwierdzający pewne ciekawe zjawisko, że przy odrobinie samozaparcia można praktycznie każdą sytuację obrócić w korzystną dla siebie stronę. Wysłanie bazgrołów o V543 do `Elektronika dla Wszystkich` zablokowało mi nieco analogiczny temat na forum, albo kiosk albo sieć, ale za to przydarzył się inny Meratronik, V628 także z zewnętrznym konektorem, no wow. Przedstawiam zatem inne ujęcie zagadnienia pt. jak ożenić miernik Meratronik z PC przy pomocy tanich i ogólnie dostępnych środków. Nie jest to opracowanie wyczerpujące temat, raczej wskazówki umożliwiające odtworzenie zabawki u siebie na biurku i dalsze, twórcze poszukiwania, być może także w kierunku innych urządzeń np. ZOPAN PFL-22. Granicą jest fantazja i cierpliwość, a dowodem że da się - grafomania poniżej, zapraszam.

Inspirujący zadeczek

Odwłok mojego nowego nabytku niezwykle ciekawy się wydaje, głównie za sprawą złącza krawędziowego, które to obfotografowałam przy okazji wstępnych oględzin i czyszczenia urządzonka. Złącze, będące de facto fragmentem górnej dolnej, cyfrowej płytki drukowanej przedstawia zdjęcie poniżej:

Obrazek

Widząc raster i wymiary, pierwszym skojarzeniem była taśma do zapinania stacji 5.25" w starych komputerach PC, taka z szerokim i grubym szczelinowym złączem. No i proszę, fragment kabla od FDD idealnie pasuje do Meratronika, należy tylko usunąć tapeciakiem wewnętrzną przegródkę zapobiegającą odwrotnemu nasadzeniu złączki. Zdjęcia z przymiarek poniżej:

Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek

I paradoksalnie, tu temat porzuciłam, zdjęcia pokazuje, a nuż komuś się pomysł spodoba. Ja z galopady pomysłów złapałam innego kuca za grzywę - a może jednak interfejsik-moduł, mocowany na tyle przyrządu? I tak oto rozpoczęło się rozmyślanie nad materializacją ulotnej wizji.

Wszelkie podobieństwo - zupełnie przypadkowe

Tradycyjnie, dla ustalenia uwagi - dokumentacja V628: :arrow: http://bee.mif.pg.gda.pl/ciasteczkowypo ... i/v628.pdf

No właśnie, sztuczka cała w tym, aby zaprezentować model interfejsu do V628 nie powielając treści już wcześniej przygotowanych, ale udało się. Meratronik V628 udostępnia swoje dane analogicznie jak V543 - w postaci zawartości zatrzasków wyświetlaczy (trzy i pół nibbla) oraz kilku bitów kontrolnych. Jest również możliwość zdalnego wystartowania pomiaru. Natchnienie odnośnie jakie sygnały są dostępne pochodzi z dokumentacji:

Obrazek

Do realizacji sprzęgu wykorzystałam rejestry przesuwne z ładowaniem równoległym typu CD4021, mi wystarczą dwie sztuki, przy założeniu że polaryzację rozpoznamy jednym bitem (miernik wystawia dwa - komplementarne).

Schemat zabawki wygląda tak:

Obrazek

Taki układ umożliwia podpięcie Meratronik V628 do praktycznie dowolnego mikrokontrolera, Arduino, ośmiobitowca, czy nawet bezpośrednio do portu LPT komputera PC. Ja ponownie eksperymenty swe radosne oparłam o Arduino i nie jest to pisanie pod publiczkę, bo akurat pełno teraz Ardu w EdW, nie. To jest po prostu zajewygodne i efekty działania (czy czasem niedziałania) mam praktycznie od razu. No i jeszcze jednak kwestia, rzadko poruszana - cena modułku. Jak mi się takie chińskie Ardu usmaży, to za paręnaście złotych mam nowe i niezłej jakości, a straszenie dziwnymi układami przy USB typu CH340 proszę włożyć między bajki, Linux te kostki ogarnia kompleksowo i nie ma żadnych problemów ze stabilnością komunikacji. Można wykorzystać Uno, można Nano, co tam kto ma. Ważne, aby systemik dawał choć jedną linię przerwań zewnętrznych, bo na tym opieram wyzwalanie odczytu danych. Jak nie ma - trzeba będzie deczko przerobić program.

Praca własna z brzeszczotem i lutownicą

Nie wykluczam, że ktoś kto akurat kolekcjonuje płyty główne AT dostanie zaraz palpitacji. No to trudno. Proszę, oto dawca złączek czyli płyta x86 z całą furą gniazd ISA. Niestety, widać, że po taniości robiona była - w starych dobrych cześć 8-bitowa gniazda i 16-bitowe, krótkie rozszerzenie były osobnymi elementami, z ebonitopodobnego tworzywa, z grubymi pinami. Można było bezpiecznie wydłubać dłuższe lub krótsze, a tu demolka po całości.

Dawca.
Obrazek
Obrazek
Obrazek

Piła 9.
Obrazek

Fragment gniazda do dalszej obróbki, przede wszystkim do wylutowania z resztek laminatu.

Obrazek

Przy okazji widać, jak jest skonstruowana drabinka rezystorowa z ceramicznym rdzeniem.

Obrazek
Obrazek
Obrazek

No i tu się zaczęły schody, styki niektóre z natury delikatności swej uszkodzeniu uległy.

Obrazek

Jak łatwo zauważyć złącze Meratronika ma niepełną obsadę i szeroką szczerbę oddzielająca cześć przecinkową od numeryczno-sterującej, zatem tam gdzie nie ma styku - blaszkę można przełożyć w miejsce gdzie styk ma być, ale akurat jest uszkodzony. Taka rzeźba.

Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek

Efekt dłubaniny jest zadowalający, choć w sumie to zajęło dość dużo czasu.

Obrazek
Obrazek
Obrazek

Proszę zwrócić uwagę na konieczność podpiłowania boczku złącza. Obudowa Meratronika ma wewnątrz otworu na złącze takie jakby słupki, do dokręcania śrub wtyczki. Nie chciałam tego podcinać, aby nie ruszać oryginalnej obudowy, stąd pilniczkiem po wtyczce.

Obrazek
Obrazek

Dygresia sieciowa

Ano właśnie, szczerzące się zaciski z 230AC jednak poprosiły o litość i kabelek z Castoramy dostał seksowne złączki pod śrubki, nie wygląda to już tak ordynarnie, choć dalej trzeba bardzo uważać, gdzie się pcha łapy.

Obrazek
Obrazek
Obrazek

Lutować każdy może - wieczór

Po serii przymiarek na sucho udało się wypracować sensowne według mnie rozłożenie elementów na płytce uniwersalnej.

Obrazek
Obrazek
Obrazek

Jak łatwo zgadnąć przymiarki uwzględniały też trwałe osadzenie w interfejsie jakiegoś MCU, tu układanki pod stary AT902313 z zewnętrznym kwarcem, ale to plany póki co, możliwe, że zmienię zdanie.

Obrazek
Obrazek

No i fotka co czas jakiś - lutowanki przy progmetalowej muzyce, wtedy było fajnie.

Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek

Ponownie przymiarka na zadek, czy aby nie uwiera i ładnie leży.

Obrazek
Obrazek

Oczywiście sprawdzenie omomierzem czy jest ciągłość sygnałów i czy coś się nie przywarło - ponieważ nic niepokojącego się nie wydarzyło to komisyjnie włożone kostek CD4021:

Obrazek
Obrazek

Miernik włączony z założonym modułem zaczął szybko mrugać +4000, sporo szybciej niż przy normalnym OVER, a mnie zrobiło się tak jakoś mdło.

Olśnienie przyszło po dłuższej chwili i w sumie przypadkiem: przed nosem miałam kartkę ze swoją roboczą rozpiską, a na ekranie akurat firmowy schemat z małym rysunkiem złącza.

Obrazek
Obrazek

Góra i dół były zamienione miejscami, A z B.

Obrazek

Płytka śliczna specjalnie kupiona dwustronna z metalizacją, złącze podczas odzysku z płyty głównej i tak dostało do wiwatu, drugiej takiej akcji już nie przeżyje, podstawki kielichowe, kabelki ładnie poukładane, każdy doginany z osobna i tyle czasu, noż...[regulamin]

I przyszła Tośkowa blond-makówa powiedzieć dobranoc przez spaniem, tak patrzy to na mnie, to na tę rozwałkę na biurku i słyszę pokrzepiające:
Co Natek? Źle pospawałaś druciki?
No to RIP.


Lutować każdy może - poranek

Dla porządku, rozpisanie sygnałów na tyle V628 - wersja ostateczna i jedynie słuszna.

Obrazek

Nowy dzień, nowe siły i w sumie prosta myśl - chce mieć interfejsik to trzeba albo zacząć od nowa, albo odratować to co już jest zrobione. Nie ma innej opcji, po prostu. Drugie podejście z estetyką już nie ma tyle wspólnego, ale też czołowe lutowanie do padów ocynowanych przewodów wykluczało kładzenie ich na płask. Stąd te wszelkie łuczki i garby. Taka - cena mienia.

Obrazek
Obrazek

Pierwsze (drugie?) próby uruchomienia - póki co nic złego się nie dzieje.

Obrazek
Obrazek
Obrazek
Obrazek

Aby miernik pokazywał coś sensownego, zapięłam mu LM35 w metalowej puszce - był sobie odczyt temperatury w pokoju.

Obrazek
Obrazek

Podłączenie Arduino, przesiadkowa płytka stykowa i garść zdjęć robiony w czasie, gdy powstawało oprogramowanie.
Obrazek
Obrazek
Obrazek
Obrazek

No i gdy słonko wyszło, nieco za ciepło się zrobiło na biurku - mały wentylatorek ze śmietnika, ustawiony na 8..9V aby nie hałasował. Zastanawiam się, jak to w lato będzie, V628 w wykonaniu które mam nie ma zbyt dobrej wentylacji jednak, temat rozwojowy zatem.

Obrazek
Obrazek
Obrazek
Obrazek
Obrazek
Obrazek

700 nanosekund

Mając ogarniętą elektronikę mogłam z pieśnią bojową w piersiach zasiąść do dłubania programiku zbierającego dane z interfejsu. Nie było to jakieś arcyskomplikowane, po prostu przerobiłam to, co przyszło na świat z okazji interfejsu do V543. Przede wszystkim, przydaś - tabelka pokazująca przypisanie bitów rejestrów i sygnałów z miernika V628:

Obrazek

Odczyt danych z miernika odbywa się, gdy tylko owy odmelduje zakończenie pomiaru, a robi to króciutkim impulsem na linii a7 - koniec pomiaru (w V543 nazywa się to M i ma inna charaktersytykę czasową).

Obrazek
Obrazek

Czysto programowe łapanie takiej szpileczki jest bez sensu, tu trzeba wykorzystać system przerwań. Tak więc w handlerze przerwania OnMeterDataReady() odbywa się wywołanie funkcji readV628rawData() odczytującej dane i przepisanie jej wyniku to zmiennej globalnej. Ta zmienna jest odczytywane w pętli głównej (przy chwilowo zablokowanych przerwaniach) i wysyłana na terminal. Aplikacja jest porażająco wręcz prosta, cały kod w pigułce:

v628link.ino pisze:

Kod: Zaznacz cały

#define LINE_READY  2
#define LINE_DATA   3
#define LINE_LOAD   4
#define LINE_CLK    5
#define LINE_START  6

volatile unsigned short ushLastMeterState = 0;

void setup() { 
  Serial.begin( 9600 );
  pinMode( LINE_DATA, INPUT );     
  pinMode( LINE_READY, INPUT );
  // H - parallel-transparent, L-lock data, serial   
  pinMode( LINE_LOAD, OUTPUT );  digitalWrite( LINE_LOAD, HIGH ); 
  pinMode( LINE_CLK, OUTPUT );   digitalWrite( LINE_CLK, LOW );   // L by default
  pinMode( LINE_START, OUTPUT ); digitalWrite( LINE_START, HIGH ); // unused
  attachInterrupt( digitalPinToInterrupt( LINE_READY ), OnMeterDataReady, RISING );
}

void OnMeterDataReady (void) {
  ushLastMeterState = readV628rawData();
}

unsigned short readV628rawData( void ) {
  unsigned short rawFrame = 0;
  int n; 
  digitalWrite( LINE_LOAD, LOW ); // down L and shift serial data
  for ( n = 15; n >= 0; n-- )  {
    if ( digitalRead( LINE_DATA ) ) {
       rawFrame |= ( (unsigned short)1 << n );
    }     
    digitalWrite( LINE_CLK, HIGH);       
    digitalWrite( LINE_CLK, LOW);
  } // for       
  digitalWrite( LINE_LOAD, HIGH ); // release register to transparent
  return rawFrame;
}

void loop() {   
  unsigned short t;
  char s[ 20 ];
  while (1) {   
      _delay_ms (200);
      noInterrupts(); 
      t = ushLastMeterState;
      interrupts(); 
      if ( t & (1 << 14) ) {
        Serial.println( "over!" );   
      }
      else {
        sprintf ( s, "%c%04x", t & (1 << 15) ? '-' : '+', t & 0x2FFF );       
        Serial.println( s );           
      } //else
    } //while
}


Zrzutki ekranu z nowej atrakcji - oznaki życia na terminalu:

Obrazek

Reakcja na przytrzymanie w palcach obudowy LM35:

Obrazek

Na koniec kilka filmików prezentujących zbieranie danych do komputera, póki co przy pomocy tego co ma Arduino IDE. Zadajnikiem wartości do pomiarów był generator z Analog Discovery 2. Widać obsługę polaryzacji wyniku pomiaru oraz wykrywanie przekroczenia zakresu pomiarowego.

https://youtu.be/LF7-tAeqU3w

https://youtu.be/qztWk2LhcoU

https://youtu.be/SYm7GqFvZSQ

Perspektywy

No, to na tym etapie mam całkiem sympatyczny cyfrowo-neonowy miliwoltomierz z możliwością komunikacji z nadrzędnym systemem, niekoniecznie PC. Do zrobienia pozostało zarządzanie pozycją kropki dziesiętnej, czyli zapalanie neonówek P1..P3, to też na szeregowo idzie zrobić utrzymując spójny interfejs. Zastanawiam się mocno, czy aplikując AVR 902313 nie posterować w kierunku małego systemu pomiarowego na bazie RS485, w końcu mam już dwa gadające po ludzku urządzonka. Pożyjemy, zobaczymy.


--- edytka autorska ---
2018.02.21 - zmiana treści: pomyłka w opisie, dodana tabela-złącze, cytowanie listingu
Ostatnio zmieniony środa 21 lut 2018, 10:24 przez tasza, łącznie zmieniany 1 raz.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

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

Re: [V628] Woltomierz panelowy Meratronik V628 - interface do komputera | cz.3

Postautor: gaweł » środa 21 lut 2018, 02:00

Wielce interesujące. Jak widać po działaniach taszy, mając trochę determinacji można osiągnąć ciekawe rezultaty. Osiągnąć coś, co z jednej strony zostało zaplanowane, bo w końcu "inspirujący zadeczek" nie powstał sobie a muzom. Z drugiej strony własna kreatywność pozwala na adaptację istniejącej rzeczywistości do pokonywania pojawiających się wyzwań. Efektem jest uszlachetnianie istniejącej materii choćby pod postacią zdalnego sterowania i pomiarów.

tasza pisze:Nie wykluczam, że ktoś kto akurat kolekcjonuje płyty główne AT dostanie zaraz palpitacji. No to trudno. Proszę, oto dawca złączek czyli płyta x86 z całą furą gniazd ISA.

Ktoś, kiedyś wyraził myśl "... można wykorzystać nie do końca zgodnie z przeznaczeniem ale mimo to sensownie...". Jest to doskonały przykład potwierdzający te słowa. Ot, taka płyta AT nie ma już perspektyw na coś sensownego, to może zostać dawcą organów. Jest to lepsza perspektywa niż wycieczka na wysypisko śmieci. Jeżeli przy okazji pozostała reszta również znajdzie zastosowanie, to tylko przyklasnąć takiej idei.

tasza pisze:Ano właśnie, szczerzące się zaciski z 230AC jednak poprosiły o litość i kabelek z Castoramy dostał seksowne złączki pod śrubki, nie wygląda to już tak ordynarnie, choć dalej trzeba bardzo uważać, gdzie się pcha łapy.

Święte słowa. Czasem tak bywa, że rzeczywistość odgryzie się i człowiek zacznie zastanawiać się, co zrobił nie tak (a kopnięcie prądu boli). Zawsze warto mieć na względzie potencjalne skutki by potem nie żałować. Tu przypomina mi się sytuacja, gdzie kilka lat temu w złości rozbiłem swoją własną klawiaturę. Nie nadawała się już do żadnej reanimacji. Później, gdy przestały działać emocje i wrócił już rozum, nadeszła refleksja nad własną głupotą. Z powodu windozowego worda, który nie chciał usunąć stopki tylko z pierwszych dwóch stron ucierpiała niewinna klawiatura. Finalny efekt był taki, że musiałem kupić nową klawiaturę. Stara była taka "przedwojenna" z prawdziwymi klawiszami z klikiem, nowa to był już badziew foliowy. Można powiedzieć, że straty były poważne.

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

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

Re: [V628] Woltomierz panelowy Meratronik V628 - interface do komputera | cz.3

Postautor: tasza » środa 28 lut 2018, 11:18

#slowanawiatr

♬ ☘ Moja muzyka do majstrowania ♬ ♬ ♬ ☘
♫ ♩ ♪ Distant Dream ⚡ ☘ ⚡ Cold Clouds ♪ ♩ ♫
https://youtu.be/Fd7iLRytVCQ



W formie post scriptum - zdalne sterowanie pomiarem

Aby temat był w miarę kompletny jedna rzecz się ostała do opisania, zatem niniejszym nadrabiam garścią informacji o zdalnym wyzwalaniu cyklu pomiarowego w Meratronik V628. Najpierw zerknijmy, jak o tym zagadnieniu traktuje dokumentacja miernika:

Obrazek

No i oczywiście eksperymenty, które wymagały drobnej modyfikacji interfejsu - po prostu dodanie jednej linii sygnałowej do wyprowadzenia b8 (B), w kodzie Ardu pin 6 jako LINE_START.

Obrazek

Zmodyfikowana wystawka do obserwacji, tu póki co tylko dla sygnału M (LINE_READY)

Obrazek

I dla przypomnienia, tak wygląda impuls M potwierdzający zakończenie pomiaru dla trybu automatycznego, taka szpileczka H, około 700 ns:

Obrazek

Automatyczne wyzwolenie pomiaru ( B/LINE_START = L ) następuje co 200 milisekund, co tyle pojawia się impuls M.

Obrazek

Obsługa programowa zdalnego sterowania jest banalna i sprowadza się do wygenerowania ujemnego impulsu na wyprowadzeniu B (LINE_START) o czasie trwania kilku mikrosekund. Jeżeli potrzebujemy nowy wynik - należy poczekać na potwierdzenie gotowości narastającym zboczem sygnału M, lub zebrać sobie poprzedni w praktycznie dowolnym momencie:

v628link.ino pisze:

Kod: Zaznacz cały

void loop() {   
    char s [20];
    digitalWrite( LINE_START, LOW );   
    _delay_us (10);
    digitalWrite( LINE_START, HIGH );       
    _delay_ms (500);
    sprintf ( s, "%04x", readV628rawData() );     
    Serial.println( s );                 
}


Szerokością impulsu startującego, jak i odstępami pomiędzy kolejnymi wyzwoleniami można sobie testowo manipulować, ważne aby uruchomienia pomiaru nie następowały częściej niż co 200 ms, co tyle mierniczek pracuje w trybie automatycznym i szybciej nie będzie.

Tak dla zupełnie króciutkich impulsów B wygląda odpowiedź miernika sygnałem M.
Obrazek

Tu dla dłuższych wyzwoleń:

Obrazek

Z obrazków wniosek nasuwa się taki, że jeżeli czas trwania stanu L na linii wyzwalającej będzie zbyt długi i nałoży się na moment, gdy miernik potwierdza pomiar, to automatycznie wykona się kolejny pomiar - niechcący wejdziemy w tryb automatyczny.

Zdalne wyzwalanie pomiaru w zadanym przez nas momencie może się przydać przy pracy wielokanałowej. Po prostu pomiar uruchamiamy wtedy, gdy jesteśmy w miarę pewni, że zanikły stany nieustalone na układach komutujących sygnał pomiarowy (czy to klucze analogowe, czy to przekaźniczku, czy co tam mamy). Druga zaleta to możliwość wykrycia awarii - jeżeli po wygenerowaniu impulsu startującego miernik nie zamelduje nam gotowości w ciągu tych swoich 200 milisekund to pewnie stało się coś podejrzanego.
Sam sposób wyzwalania rozwiązano w sumie rozsądnie - impulsem L, to umożliwia bezpośrednie wykorzystanie zwykłego transoptora, czy kontaktronu - mamy banalnie prostą i zarazem skuteczną izolację galwaniczną. No, a dla mnie to kolejne potwierdzenie, że Meratronikowe konstrukcje były (są) dobrze pomyślane i łatwe w adaptacji.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: [V628] Woltomierz panelowy Meratronik V628 - interface do komputera | cz.3

Postautor: SuperGość » środa 28 lut 2018, 13:22

Widzę że oscyloskop jest oswajany :D


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