Cyfra.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

4

3
VCC

uVcc
GNDu
J12
USBB-BV

470uF/16V
1
2
3
4

D

u3V
C28
100nF

R35
120R

19

uVcc

27
28
C29
100nF

GNDu

470R
uVcc

R39
1k
/RXDusb
D

GND
uVcc
R36
1k

8
7
6

VCC
2
R38

3

23
CBUS0
22
CBUS1
13
CBUS2
14
CBUS3
12
CBUS4

TEST

AGND

U10
6N137-300E VCC
8
2
7
6
3
5

5

XTOUT

25

C

R37

XTIN

7
GND
18
GND
21
GND

26

uVcc

1
TXD
5
RXD
3
RTS
11
CTS
2
DTR
9
DSR
10
DCD
6
RI

RESET

GNDu
GNDu

U9

17
3v3out
16
USBDM
15
USBDP

5

GNDu

20
Vcc
4
VccIO

C27 uVccGNDu

/TXDusb

470R

GNDu U11
6N137-300E
R40
470R
D4
Data

GND

uVcc

J3

1
3
5
SW_ST
7
SW_L
9
GND DL0
11
VCC
DL2
13
R3
15
SW_D
0R
17
ImpB
19
R30
10k

R41
470R
D5
USB

FT232RL

GNDu

VCC

uVcc
D[0..7]

VCC
2
4
6
8
10
12
14
16
18
20

C

DL0
DL1
DL2
DL3

D4
D3
D2
D1
D0
GND

SW_ST
Vttl
SW_R
SW_U

GND

U8
ATMEGA324PA-AU

33
PA4/ADC4
32
PA5/ADC5
31
PA6/ADC6
30
PA7/ADC7
29
Aref
28
GND
27
Avcc
26
PC7/TOSC2
25
PC6/TOSC1
24
PC5/TDI
23
PC4/TDO

12
PD3/TXD1/INT1
13
PD4/XCLK/OC1B
14
PD5/OC1A
15
PD6/ICP
16
PD7/OC2A
17
VCC
18
GND
SW_D 19
PC0/SCL
ImpSW 20
PC1/SDA
TCK 21
PC2/TCK
TMS 22
PC3/TMS

1
PB5/MOSI
2
PB6/MISO
3
PB7/SCK
4
VCC
RST
5
VCC
R33 VCC
6
10k GND
GND
7
XTAL2
8
Q1
XTAL1
20MHz
/RXDusb 9
PD0/RXD0
/TXDusb 10
PD1/TXD0
ImpA11
RXD1/INT0
C30
C31
22pF
22pF

B

GND
ImpSW
ImpA

VCC

44
PB4/SS
43
PB3/AIN1/OC0
42
PB2/AIN0/INT2
41
PB1/T1
40
PB0/XCK/T0
39
GND
38
VCC
37
PA0/ADC0
36
PA1/ADC1
35
PA2/ADC2
34
PA3/ADC3

GND

SCK D5
MISO D6
MOSI D7
/RST

RS
E
SW_R
SW_U
DL1
DL3

Panel

D[0..7]

VCC

Vo

VCC

VCC
D10
Vcc

C7
470uF
SW_L
Sync
Sync
Vwob
Vwob
ImpB
C24
GND
100nF
GND
L2
RS
E
TDI
TDO

R4
560R

GND
GND
B
VCC

68uH
C25
100nF
GND
J16
TCK
1 2
TDO
3 4
TMS
5 6
7 8
TDI
9 10

H5
Otwor
H6
1
Otwor
H7
1
Otwor
H8
1
Otwor
1

GND
VCC
/RST

GND

JTAG
GND

A

VCC

Vttl

C34

C35

C36

TTL

100nF 100nF 100nF

J11
MISO
1
SCK
3
/RST
5

VCC
2
4
6

ISP Atmel

A

MOSI
GND

GND
1

2

3

4


Pobierz plik - link do postu