


Odgrzebałem stary projekt (25 tydzień 2015 roku). Nie ma on szans na wygraną w konkursie ale taki generator może się przydać bo jest tani, a oferuje dużo więcej niż podobne rozwiązania z Internetu czy dostępne na Allegro. Przedstawiam efekt dwu dni pracy nad programem (PCB były zmontowane prawie w całości). Program oparty o popularny "silnik". Wszystkie ślady prowadziły na stronę Scienceprog.com.
Co mi się nie podobało w konstrukcjach (oprogramowaniu) z Internetu?
- niewygodna zmiana częstotliwości (menu wyboru kroku przestrajania)
- brak przestrajania w czasie pracy (generator trzeba zatrzymać, zmienić częstotliwość, ponownie wystartować)
- brak możliwości "ładowania" własnych przebiegów.
Zmiany w stosunku do rozwiązań dostępnych w Internecie i sprzedawanych na Allego:
- Fmax 500kHz przy czym dobrą jakość sygnału uzyskamy do ok 90kHz. Przy większych częstotliwościach pojawiają się duże zniekształcenia (oscylogramy niżej).
- HSfreq podzielnik od 1 do 256 (częstotliwości 39kHz...10MHz). Wyjście to jest aktywne cały czas, także podczas generowania innych przebiegów na wyjściu LF.
- Ustawianie napięcia wyjścia TTL/CMOS i zapis tegoż napięcia w eeprom
- Zapis delty (kroku zmian częstotliwości) w eeprom
- Obsługa enkodera
* zmiana częstotliwości podczas pracy generatora - "płynne" przestrajanie
* wybór parametru (częstotliwości, napięcia Vttl)
* szybka zmiana kroku (delty) częstotliwości (przycisk enkodera) - nie działa podczas pracy generatora
- Podczas zmiany częstotliwości, kursor (podkreślenie) pokazuje modyfikowaną cyfrę
- Sygnalizacja pracy generatora (migający kursor)
- Regulacja Amplitudy (max +/-5V) i ofsetu (+/-5V)
- Wyjście 50R
- Przetwornik DAC-08 (na rezystorach 1% można uzyskać CA rzędu 5..6bit, dla 8-bit potrzeba dokładniejszych niż 0,5%, 0,1% kosztują po ok 50gr sztuka, przetwornik jest tańszy). Czym różni się przetwornik na rezystorach (liniowość), zwłaszcza 5%, pokażę przy okazji oscyloskopu, który będzie miał także charakterograf i możliwość pomiaru liniowości przetworników).
- Wyjście TTL/CMOS z napięciem ustawianym z menu w zakresie 0..15V
- Częstotliwość w kHz (kropka w roli separatora)
- Duży wyświetlacz 2x20 znaków
- Zmieniona biblioteka obsługująca LCD. Ta która była, źle współpracowała z nowym wyświetlaczem (pojawiały się "krzaki")
- Polskie menu
- Panel czołowy z PCB przystosowany do wymiarów obudowy aparaturowej CP-15-33
Do zrobienia:
- przerwanie PCIN od wszystkich przycisków co da możliwość zmiany wszystkich parametrów podczas pracy generatora
- sterowanie po USB
- ładowanie kilku własnych przebiegów do FLASH.
W prototypie użyłem transformatora 2x8V w związku z czym maksymalna amplituda przebiegu na wyjściu to ok +/-7V. To samo ograniczenie dotyczy napięcia na wyjściu TTL/CMOS. Aby uzyskać wyższą amplitudę należy wymienić transformator na 2x10 czy 2x12V. Wtedy jednak stabilizator +5V zasilający część cyfrową należy wyposażyć w radiator.
W płycie czołowej, otwór na LCD jest za duży (zbyt wysoki), rysunki PCB już poprawiłem.
Ale to jak wymienię procesora na Mega324. Aktualnie zamontowany mam Mega16, który został "przetaktowany" i zaczyna brakować pamięci FLASH. Brakuje też układu 74LS06, w związku z tym, przebiegi sygnału na wyjściu TTL/CMOS są nie najlepsze.
Kilka oscylogramów:







Regulacja amplitudy i ofsetu:
Zmiana częstotliwości w czasie pracy generatora:
Zmiana amplitudy na wyjściu TTL/C-MOS:
Zmiana częstotliwości na wyjściu HF:
Edit 2017-10-10
Wprowadziłem małe zmiany w bloku analogowym związane z regulacja ofsetu (Anlog2.pdf). Spowoduje to odwrócenie generowanych przebiegów. W przypadku sinusa, trójkąta, prostokąta i innych symetrycznych nie ma to znaczenia, natomiast piłę trzeba zanegować w deklaracjach w pamięci FLASCH.
Edit 2017-12-19
Zmiany w programie:
- wszystkie klawisze obsługiwane zarówno gdy generator pracuje, jak i gdy jest wyłączony
- obsługa z przez USB programu terminala
- wirtualny LCD w programie terminala
Wymagany Mega324 ponieważ wzorce przebiegów znajdują się w obszarze od 0x7000. Kolejne wersje będą używały obszaru BOOTLOADERA do zapisu FLASH z przebiegami użytkownika. Ustawienia fuses:
FUSES_EXT 0xFC
FUSES_HIGH 0x99
FUSES_LOW 0xFF
Reakcja na wszystkie klawisze podczas pracy generatora. Widać także odwzorowanie zmian na ekranie terminala:
Obsługa z terminala łącznie ze zmianą języka. Widać zmiany na LCD generatora.
Edit 2017-12-20
Nowa wersja softu. Dostępne 3 wersje językowe (PL, EN, DE). Program znacznie zmodyfikowany, z oryginału zostało 10 może 15%. Z wielokrotnie powtarzających sie sekwencji rozkazów zrobiono funkcje. Obsługa klawiatury i wyświetlacza w petli głównej a nie w przerwaniach (autor miał jakieś dziwne podejście do tematu, powolna obsługa LCD w przerwaniu, czekanie na zwolnienie klawisza w przerwaniu). Teraz przerwanie (od klawiatury, usb) ustawia tylko flagę. Dzieki tym zabiegom enkoder dział pewnie przy dużych szybkościach zmian ustawianej wielkości a jednocześnie zapewnia dużą precyzję.
Edit 2017-12-21
W załącznikach (Przebieg_USER-a.zip) soft umożliwiający załadowanie przebiegu użytkownika (plik IntelHex). Na razie tylko jeden. Czy zdecyduje sie na większą liczbę, nie wiem. Załadowanie przebiegu do FLASH to ułamek sekundy (230400kb/s).
Edit 2017-12-22
Nowy soft z możliwością załadowania 4 przebiegów do flash i czterema wersjami językowymi. W archiwum znajdują się dodatkowe programy i wzory przebiegów.