Chyba pierwszym urządzeniem elektronicznym, które wykonałem samodzielnie był generator przebiegu prostokątnego. Na kartach książki Dietera Nurhmanna znalazłem schemat elektronicznego migacza złożonego z dwóch tranzystorów i kilku elementów biernych. Na podstawie schematy skleciłem tak zwanego pająka, dołączyłem 4,5-woltową baterię płaską i mogłem cieszyć się naprzemiennie mrugającymi żarówkami. Ten nieskomplikowany układ pozwolił na samodzielne eksperymentowanie i swego rodzaju wizualizację, co dzieje się przy zmianie wartości komponentów. Szybko odnalazłem takie wartości R i C, przy których mój „migacz” generował sygnał z zakresu akustycznego i w późniejszym okresie, na jego podstawie zbudowałem generator do „przedzwaniania” torów audio. Udało mi się nawet zmieścić go w czymś w rodzaju grubego pisaka z metalową końcówką, co bardzo ułatwiało dłubanie we wzmacniaczach, tunerach, magnetofonach i tym podobnych. Celowo użyłem słowa „dłubanie”, ponieważ miałem za mało wiedzy na ich naprawę, ale bez trudu dotykając tu czy tam końcówką wykonanego przeze mnie przyrządu mogłem sprawdzić, czy usłyszę pisk w głośniku lub słuchawkach, którędy wędruje sygnał audio.
Zajmowania się elektroniką nie trzeba zaczynać od programowania procesorów. Jasne, to jest spektakularne, modne, wciąga, ale równie interesujące a może nawet dające jeszcze więcej satysfakcji, może być samodzielne wykonać kierunkowskazu do roweru, elektronicznego dzwonka lub wzmacniacza audio, a te nie wymagają dużych umiejętności i żmudnej nauki programowania.
Przykładem użytecznego generatora, niewymagającego specjalizowanych układów i jedynie umiejętności lutowania, jest opublikowany w EP 10/2001 miniprojekt AVT-1327 bazujący na nieśmiertelnym układzie scalonym NE555. Za jego pomocą można łatwo wykonać generator kilku rodzajów sygnałów, mogący znaleźć zastosowanie jako generator funkcyjny. Ograniczeniem jest możliwość pracy tylko z jedną dobraną wcześniej częstotliwością, ale zaletę stanowi niebywała prostota układu oraz to, że działa natychmiast po zmontowaniu. Jego schemat ideowy pokazano na rysunku 1. Układ U1 generuje przebieg prostokątny o wypełnieniu około 50%. Częstotliwość generowanego przebiegu zależy od pojemności kondensatora C1 oraz rezystancji R1 i R2. Stosując elementy o wartościach podanych na schemacie na nóżce 3 układu U1 otrzymuje się przebieg prostokątny o częstotliwości zbliżonej do 1 kHz. Następnie ten sygnał w kolejnych członach RC jest przekształcany na sygnały o innym kształcie. Najpierw w punkcie połączenia rezystora R6 i kondensatora C3 jest otrzymywany przebieg przypominający zęby piły. Po przejściu przez kolejny układ (R7 i C4) kształt fali jest zbliżony do przebiegu trójkątnego. Ten impuls podany zostaje na wejście integratora zbudowanego z użyciem tranzystora T1. Na kolektorze tranzystora sygnał przybiera kształt zbliżony do sinusoidy.
Wymienione wyżej przebiegi są podawane na wejścia multipleksera analogowego U2, a sygnał wyjściowy zależy od poziomów logicznych występujących na wejściach sterujących multipleksera A i B. Oba są podciągnięte do poziomu zasilania przez rezystory R9 i R10, więc jeśli są one rozwarte, to na wyjściu generatora jest sygnał prostokątny. Po zwarciu do masy wejścia A na wyjściu jest sygnał piły. Zwarcie z masą wejścia B spowoduje pojawienie się sygnału trójkątnego. Zwarciu z masą obydwu spowoduje wystąpienie sygnału sinusoidalnego. Amplitudę sygnału wyjściowego ustala potencjometr P1. Generator może być zasilany napięciem z zakresu 5…10 V, a poziom napięcia wyjściowego jest zależny od wartości napięcia zasilania.
Nie licząc tych wszystkich projektów generatorów, których opisy były opublikowane w międzyczasie, chciałbym zwrócić uwagę na nieskomplikowany projekt AVT-5581, którego opis ukazał się w EP 3/2017. Jak przystało na nowoczesny generator kieszonkowy, wyposażono go wyświetlacz i interfejs użytkownika umożliwiający nie tylko nastawę częstotliwości, ale również wybór kształtu generowanego sygnału. Ten nowoczesny przyrząd warsztatowy pracuje w oparciu o technikę DDS, a zmiana częstotliwości czy kształtu przebiegu wymaga nie tyle zmiany wartości rezystancji i pojemności, ile działań na rejestrach mikrokontrolera stanowiącego „serce” urządzenia.
Technika DDS (Direct Digital Synthesis) to metoda wytwarzania sygnału na podstawie próbek odzwierciedlających żądanych przebieg, a zapisanych w pamięci. Pobrane z pamięci próbki są zamieniane przez przetwornik C/A na proporcjonalną wartość napięcia. Gdyby z tablicy próbek odczytywać je wszystkie po kolei, to wówczas częstotliwość wytwarzanego sygnału byłaby stała. Przy stałej częstotliwości próbkowania, wynoszącej (jak w opisywanym projekcie) na przykład 300 kHz i tablicy zawierającej 256 próbek, częstotliwość sygnału wyjściowego wynosiłaby 300 kHz/256 = 1171,875 Hz. Jednak w technice DDS nie trzeba odczytywać wszystkich próbek – zgodnie z twierdzeniem Nyquista wystarczy, aby na jeden okres najwyższej częstotliwości w sygnale przypadały co najmniej 2 próbki. W więc przy tej samej częstotliwości próbkowania, można uzyskać sygnał analogowy o częstotliwości do 150 kHz. Jednak jakość tego sygnału byłaby raczej dyskusyjna i niewystarczająca do pomiarów audio. Użytkownika nie interesuje jedynie częstotliwość minimalna i maksymalna, lecz także cała gama częstotliwości pośrednich. Można odczytywać co drugą próbkę, co trzecią i tak dalej. Niestety, skok częstotliwości jest równy częstotliwości minimalnej. Można sobie poradzić z tym problemem na dwa sposoby. Pierwszy z nich to zwiększenie liczby próbek, jednak wówczas będzie potrzebna olbrzymia pamięć. Drugą opcją jest podział przez liczbę niecałkowitą. Przy użyciu mikrokontrolera o architekturze 32-bitowej to zadanie zostaje znacznie uproszczone. Jeżeli do zaadresowania jest 256 próbek, wówczas wystarczy do tego tylko 8 bitów. Pozostałe 24 bity rejestru akumulatora fazy mogą stanowić „część ułamkową”.
Sygnał na wyjściu przetwornika C/A jest aproksymowany za pomocą przebiegu schodkowego, który należy odfiltrować za pomocą dolnoprzepustowego filtru regeneracyjnego. W jego widmie jest wiele częstotliwości harmonicznych, w tym składowa sygnału użytecznego oraz składowa o częstotliwości równej częstotliwości próbkowania. Założono, że maksymalna częstotliwość wytwarzanego sygnału to 40 kHz, natomiast częstotliwość próbkowania wynosi 300 kHz. Charakterystyka amplitudowa filtru w paśmie przepustowym powinna być możliwie płaska. Jednocześnie, tłumienie częstotliwości próbkowania powinno być jak najsilniejsze. Są to bardzo rygorystyczne wymagania, których jednoczesne spełnienie nie jest łatwe.
Schemat ideowy generatora DDS AVT-5581 pokazano na rysunku 2. Jego najważniejszym komponentem jest mikrokontroler z 32-bitowym rdzeniem typu STM32F051 (US5). Obwód zasilania zawiera dwa połączone kaskadowo układy stabilizatorów: 7805 i LM1117. Na potrzeby zasilania wzmacniaczy operacyjnych na płytce generatora wykonano również przetwornicę wytwarzającą napięcie ujemne –5 V. Zbudowano ją w oparciu o układ scalony ICL7660. Przebieg wyjściowy jest tworzony za pomocą przetwornika C/A zawartego w mikrokontrolerze. Do wyjścia przetwornika dołączono wtórnik napięciowy ze wzmacniaczem TL084. Napięcie z wyjścia wtórnika jest podawane na potencjometr regulujący amplitudę. Impedancja wyjściowa takiego dzielnika potencjometrycznego zmienia się, co wpływałoby na charakterystykę filtru i dlatego za potencjometrem włączono jeszcze jeden wtórnik. Zwora JP1 służy do ewentualnego ominięcia filtru regeneracyjnego i wyprowadzenia sygnału z przetwornika C/A wprost na wyjście. Za filtrem włączono wzmacniacz nieodwracający o wzmocnieniu ok. 3 V/V, dzięki któremu napięcie wyjściowe może być regulowane w zakresie 0…10 V. Za wzmacniaczem włączono pojemność odcinającą składową stałą (C17+C18). Zworką JP2 można zewrzeć te kondensatory i wyłączyć je z toru sygnałowego.
Do wskazywania aktualnej częstotliwości oraz kształtu sygnału służy wyświetlacz alfanumeryczny. Impulsator z przyciskiem służy do zmiany częstotliwości, natomiast oddzielny przycisk jest przeznaczony do zmiany kształtu generowanego sygnału.
Zadaniem mikrokontrolera jest między innymi generowanie sygnału analogowego. W generatorze zastosowano STM32F051K8T6 mający 64 kB pamięci Flash oraz 8 kB pamięci RAM. Źródłem przebiegu zegarowego jest zewnętrzny rezonator kwarcowy 8 MHz, którego częstotliwość jest powielana sześciokrotnie poprzez wbudowany mnożnik z pętlą PLL. Jest ona wprawdzie obarczona szumami fazowymi, wynikającymi z samej zasady działania PLL, lecz producent układ zadbał o to, by były one na akceptowalnym poziomie. W tym zastosowaniu nie trzeba się nimi bardzo przejmować, gdyż budowany generator jest przystosowany do generowania relatywnie małych częstotliwości.
Złącze J4 służy do komunikacji z mikrokontrolerem za pośrednictwem protokołu SWD. Układ wyprowadzeń w tym złączu został dostosowany do płytek ewaluacyjnych z mikrokontrolerami z tej rodziny. Mają one wbudowany programator mogący obsługiwać również układy dołączane z zewnątrz.
Oprogramowanie dla mikrokontrolera napisano w środowisku Coocox. Po szczegóły jego implementacji należy sięgnąć do darmowego, otwartego archiwum Elektroniki Praktycznej, dostępnego na stronie www.ep.com.pl.
Jacek Bogusz, EP