https://obrazki.elektroda.pl/1767723900_1507476841_thumb.jpg https://obrazki.elektroda.pl/6966938500_1507476855_thumb.jpg https://obrazki.elektroda.pl/9448777800_1507638471_thumb.jpg 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: https://obrazki.elektroda.pl/8944940700_1507477286_thumb.jpghttps://obrazki.elektroda.pl/8277488800_1507477286_thumb.jpghttps://obrazki.elektroda.pl/1701728900_1507477287_thumb.jpghttps://obrazki.elektroda.pl/2806580900_1507477287_thumb.jpghttps://obrazki.elektroda.pl/7827608400_1507477287_thumb.jpghttps://obrazki.elektroda.pl/3663731800_1507477287_thumb.jpghttps://obrazki.elektroda.pl/2275304000_1507477287_thumb.jpg Regulacja amplitudy i ofsetu:https://filmy.elektroda.pl/20_1507478345.mp4 Zmiana częstotliwości w czasie pracy generatora: https://filmy.elektroda.pl/50_1507479286.mp4 Zmiana amplitudy na wyjściu TTL/C-MOS: https://filmy.elektroda.pl/65_1507479428.mp4 Zmiana częstotliwości na wyjściu HF: https://filmy.elektroda.pl/61_1507479478.mp4 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: https://filmy.elektroda.pl/52_1513680404.mp4 Obsługa z terminala łącznie ze zmianą języka. Widać zmiany na LCD generatora. https://filmy.elektroda.pl/62_1513680510.mp4 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.
1
2
3
4
J2
Ofset
1
2
3
+5
D
D
-5
Comp
Vr-
B
GNDA
0R
GNDA
5
11
GNDA
C6
20k
100nF
GNDA
1
U2A
TL084
R8
U2B R7
TL084 10k
6
7
5
+
GNDA
+12
R17
100k
BC547B
T1
9
1
2
J9 3
Amplituda
GNDA
10
U2C
-
R18
+
TL084
BNC1
R19
100R
8
51R
1
2
C
GNDA Out
T2
BC557B
+12
-12
470uF
-5
VCC
R22
1
2
10k
WobulacjaGNDA
GNDA
Tłumik 2:1
2
3
+
1
2
1
2
GND
74LS06N
Sync
+12
C9
100nF
10k
-12
BNC3
Sync
Sync
R20
1k BNC2
470uF
10k
R24
GNDA
U5A
GNDA
C37
R23
R12
560R
GNDA
R32
1
U3A 4k7
TL082
R26
R28
10k
Vwob
Vwob
Vttl
6
Vttl R27
5
100k
J10
D7
3
2
1
TTL
GNDA
TTL
3
20k
+
C10
1uF
+12
C8
100nF
2
B
GNDA
A
1
+12
47R
C26
Text
R11
560R
3
+
C5
100nF
R9
4
D12
-5
6
-
R6
R14
200k
C4
100nF
-5
-5
D11
+5
2
8
10uF
8
3
C38
100nF
U1
DAC0800LCM/NOPB
GNDA
+5
Vcl
2
4
1
V+
Iout
4
C3
7
V-
D[0..7]
D[0..7]
Iout
-12
2k7
+
-
C
Vr+
GNDA
100pF
R5
10k
R10
4k7
GNDA
10uF
D7 9
D7
D610
D6
D511
D5
D412
D4
D313
D3
D214
D2
D115
D1
D016
D0
C2
R2
C1
+
-
R1
51R
+5
wzmacniacz 3x
7
U3B
TL082 R29
1k
U5B
3
GNDA
4
74LS06N
BNC4
1
2
GND
TTL/CMOS
4
A