Analog.pdf

DDS AVR 100kHz, zmiana częstotliwości w czasie pracy, równoległa praca gen. HF

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:http://filmy.elektroda.net/20_1507478345.mp4 Zmiana częstotliwości w czasie pracy generatora: http://filmy.elektroda.net/50_1507479286.mp4 Zmiana amplitudy na wyjściu TTL/C-MOS: http://filmy.elektroda.net/65_1507479428.mp4 Zmiana częstotliwości na wyjściu HF: http://filmy.elektroda.net/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: http://filmy.elektroda.net/52_1513680404.mp4 Obsługa z terminala łącznie ze zmianą języka. Widać zmiany na LCD generatora. http://filmy.elektroda.net/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


Pobierz plik - link do postu