Rozpoczynając kolejny wątek na temat analizatora obwodów muszę zrobić pewne wyjaśnienie wstępne dotyczące motywów powstania układu jak i samego wątku. Zaprezentowany dalej układ powstaje jako próba zmierzenia się "własnoręcznie' z tematem oraz chęci przedyskutowania specyfiki układu oraz jego oprogramowania. Wątek stanowi również zaproszenie dla kolegów zajmujących się programowaniem chcących opracować własny interface miernika na PC (o czym dalej).
Układ analizatora można opisać jako 'młodszego brata' opisywanych już w tym dziale urządzeń typu NWT:
Sercem układu jest mikroprocesor Mega8 sterujący generatorem AD9834. Układ AD9834 pracuje z zegarem 100MHz z użytecznym sygnałem pomiarowym do ok. 35MHz (ok. 1/3 wartości zegara). Sygnał w.cz. jest wzmacniany przez AD8014 skąd kierowany jest do badanego układu (DUT). Sygnał z wyjścia układu przekształcany jest przez wzmacniacz logarytmiczny AD8307 a następnie mierzony jest przez układ A/D mikrokontrolera AT Mega8. Jednocześnie pomiar kierowany jest do portu RS232 i może być odbierany przez PC gdzie powinna nastąpić wizualizacja wyniku.
Do dziś powstał układ pokazany w szczegółach na rysunku:
Układ dla celów diagnostyki został wyposażony w klawiaturę oraz wyświetlacz ale w wykonaniu docelowym nie musi być w te elementy wyposażony. Model funkcjonalny urządzenia na dzień dzisiejszy wygląda następująco:
po zdjęciu wyświetlacza:
oraz od strony druku:
Rysunek druku (termotransfer), rysunek montażowy oraz oprogramowanie Mega8 można znależć tu:
a_netw_druk.pdf (Rozmiar: 188.87 KB / Pobrań: 2278)
a_netw_mont.pdf (Rozmiar: 128.2 KB / Pobrań: 1911)
http://lx-net.pl/hr/netw/na_01_01.hex
Mogę powiedzieć, że oprogramowanie systemu pomiarowego dla AT Mega8 jest na dziś prawie zakończone. System ma dynamikę pomiaru co najmniej 60dB (liczę na więcej), czas pomiaru ok. 5ms (do 200 pomiarów na sek), do 255 pomiarów w jednym przebiegu, przemiatanie liniowe lub logarytmiczne w zadanym zakresie, połączenie przez RS z prędkościami od 9600 do 115200 bps oraz elementarny język sterowania, który można zastosować już z wykorzystaniem terminala. Ten język zawiera następujące elementarne polecenia:
Pxxxx - częstotliwość startu przemiatania
Kxxxx - częstotliwość końca przemiatania
Ixxx - ilość kroków w cyklu pomiarowym (10-255)
Lx - rodzaj przemiatania (1-liniowe, 2-logarytmiczne)
Zxxx - częstotliwość zegara AD9834 (10-150MHz)
Bx - prędkość łącza RS232 (1-9600, 2-19200, 3-38400, 4-57600, 5-115200)
Dxxxx - opóżnienie przy pomiarze A/D (5-5000ms)
Tx - tryb pracy układu (1-7) związany głównie z pomocniczą klawiaturą i wyświetlaczem. Dla trybu T7 układ zaczyna pomiar od częstotliwości P do częstotliwości K dla I+1 kroków stosując przemiatanie typu L1 (liniowe) lub L2 (logarytmiczne) oraz opóźnienie pomiaru Dxxx (ms).
W odpowiedzi układ przesyła portem szeregowym do PC pomiary w formie: nn xxxx LF
gdzie nn to numer pomiaru (od 0 do N - gdzie N to ilość wprowadzona poleceniem Ixxx), xxx to wynik pomiaru w zakresie 0-1024 a LF to znak końca wiersza (0h13)
Jak pisałem zarówno sterowanie układem pomiarowym jak i odczyt wyniku możliwy jest w najprostszym przypadku za pomocą terminala (np. hyperterminal w MS Windows lub minicom w linux-ie) i podanych wyżej poleceń.
Tu dochodzę do zaproszenia dla programistów. W oparciu o w/w dane można podjąć próbę napisania interface do obsługi systemu pomiarowego na PC umożliwiającego ustawienie parametrów pomiaru oraz jego wizualizację. Do zrobienia jest oczywiście połączenie po RS, parser poleceń, właściwa wizualizacja pomiaru ale również procedura kalibracji i normalizacji wyniku oraz dodatkowe 'gadżety' np. ustalenie pasma przenoszenia i/lub dobroci, wygodna zmiana parametrów pomiaru (np. przeciąganie myszką zakresu pomiarowego) itp.
Sam oczywiście będę również taki interface robił ale może kogoś skusi możliwość zrobienia go po swojemu ;-)?
Na razie wyniki opracowuję 'ręcznie' spisując z terminala wyniki dla kolejnych kroków pomiarowych i wyliczając odpowiednie wielkości w arkuszu kalkulacyjnym (tu bardzo pomocna jest funkcja D bo mogę wyniki opóźnić nawet o kilka sekund i zdążyć je zapisać ;-)). Dla przykładu zrobiłem wykres przenoszenia dla oktawowego filtra bpf 2-4MHz z transceivera DC01 dla trybów liniowego i logarytmicznego w zakresie 0.5-10.5MHz dla 20 kroków pomiarowych. Wykres ma dynamikę ok. 35 dB bo zastosowałem z obu stron filtra tłumiki o wartości łącznej ok. 30dB opisane w wątku:
http://sp-hm.pl/thread-390.html
wykonując wykres zastosowałem również oferowaną przez arkusz operację wygładzania wykresu stąd w wersji liniowej wykres załamuje się na granicy 0 dB.
Mam nadzieję, że znajdą się koledzy chętni do przedyskutowania tego tematu a może i włączenia się aktywnego w jego rozwój co najmniej w części oprogramowania dla PC?
L.J.