форум Радиолюбительского ДВ портала > Технический раздел

DDS синтезатор передатчика

<< < (9/81) > >>

UF3K_Vlad:
2 RN3AUS

Саш, сделал твой синтезатор - приятная штучка. Спасибо большое.
Есть один момент при формировании WSPR-15 (но думаю и в остальных модах будет так же) при изменении тона ненадолго пропадает сигнал. Усилителю мощности это просто "мозг выносит".  ;)

Рутины записи частоты и фазы сейчас выглядят так:

;
; read in 4 characters from the serial link
;
read_4:
      rcall   get_char      ; read and ignore bits 32..24
      rcall   get_char      ; read bits 23..16
      mov      r26,r16
      rcall   get_char      ; read bits 15..8
      mov      r25,r16
      rcall   get_char      ; read bits 7..0
      mov      r24,r16
      clr      r17
      out      PORTB,r17
      ret

; read 4 character from the serial link and add to phase accumulator
; ---- Первый байт игнорируется, второй - младший байт, третий - средний, четвертый - старший байт.
read_ph_4:
      rcall   get_char      ; read and ignore bits 32..24
      rcall   get_char      ; read bits 7 ..0   
      mov      r20,r16                              
      rcall   get_char      ; read bits 15..8
      mov      r21,r16                     
      rcall   get_char      ; read bits 23..16
      mov      r22,r16                           
      ret                              

Не слишком красиво. По идее нужно буферизировать. Я к сожалению не знаю ассемблера атмеловского и самого процессора, но если можно найти еще 3 регистра для буфера, то должно быть примерно так:

;
;    r40,r41,r42 буферные регистры
;
;
; read in 4 characters from the serial link
;
read_4:
      rcall   get_char      ; read and ignore bits 32..24
      rcall   get_char      ; read bits 23..16
      mov      r42,r16                ;пишем в буфер
      rcall   get_char      ; read bits 15..8
      mov      r41,r16                 ;пишем в буфер
      rcall   get_char      ; read bits 7..0
      mov      r40,r16                 ;пишем в буфер
                            cli                                                     ;запрещаем прерывания
                            mov                      r24,r40                ;быстренько грузим куда надо, начиная с младших разрядов
                            mov                      r25,r41
                            mov                      r26,r42
                            sei                                                   ;разрешаем прерывания
      clr      r17
      out      PORTB,r17
      ret

; и тоже самое для фазы

; read 4 character from the serial link and add to phase accumulator
; ---- Первый байт игнорируется, второй - младший байт, третий - средний, четвертый - старший байт.
read_ph_4:
      rcall   get_char      ; read and ignore bits 32..24
      rcall   get_char      ; read bits 7 ..0   
      mov          r40,r16                              
      rcall   get_char      ; read bits 15..8
      mov      r41,r16                     
      rcall   get_char      ; read bits 23..16
      mov      r42,r16      
      cli                                                     ;запрещаем прерывания
                            mov                      r20,r40                ;быстренько грузим куда надо, начиная с младших разрядов
                            mov                      r21,r41
                            mov                      r22,r42
                            sei                                                   ;разрешаем прерывания            
      ret                              


Возможно и не поможет... Там надо еще смотреть как обрабатывается прерывание по UART, но на это мне уже интеллекта не хватит.  ;)

rn3aus:
На подходе новая усовершенствованная прошивка и программа управления. Пока у меня есть возможность плотно ей заниматься, предлагаю высказать здесь пожелания и замечания.
Что будет в новой версии:
- возможность составить и записать в eeprom контроллера циклограмму маяка, включающую в себя wspr-15 (или 2), ОР (-1 ....-65), qrss/dfcw сообщение, а также bpsk-1...31. В одной циклограмме одновременно умещается wspr и две Ор и паузы между ними. Возможны и иные комбинации. При этом паузы автоматически подбираются таким образом, чтобы полный цикл работы маяка был кратен периоду передачи wspr. Так как в изделии нет часов точного времени, то достаточно будет лишь включить маяк в нужный момент времени (например в начале часа) и дальше цикл будет ходить сам. Компьютер, естественно, в этом режиме не нужен.
- в обычном режиме, с управляющим компьютером, изменено формирование сигнала вспр, чтобы уменьшить или совсем устранить паузы между посылками. Вроде бы получилось.
- введена защита от зависания компьютера. Если от компьютера нет никаких команд более чем 20 минут, синтезатор выключает РТТ. Передатчик не будет лучить в эфир. Тон при этом, если он был включен, не снимается - это если синтезатор используется для каких-то иных целей, как опорник например.
- на лицевой панели синтезатора вводится одна кнопка, нажатием на которую управляют вручную включением PTT и тона, а также запускают режим маяка; она же служит для разрешения записи в eeprom.

Это то что уже сделано. Какие еще будут пожелания? (jt9 постараюсь сделать, но пока не все детали его формирования успел изучить. Нет нормального описания процесса кодирования, в отличие от вспр.)

UF3K_Vlad:
Пожелания:

-при включении питания сигнал на выходе синтезатора должен отсутствовать (пару раз уже по невнимательности руку об радиатор драйвера обжег) до прихода команды из компьютера;
-очень сильные спуры (-30 -40 дб) по всему диапазону. Не знаю, можно ли побороть в такой конструкции, т.к. слишком маленький аккумулятор фазы и мало разрядов ЦАП. Т.е. как гетеродин приемника он не годится, да и на передачу при большой мощности немного страшновато.
-может быть подумать прикрутить AD9832 (AD9835)? Они дешевые. Но это уже другой синтез будет.
-может быть в скрипт расписания ввести не задержки между режимами, а время старта команды?

UPD: Хорошо бы в управляющей программе сделать ползунок (скрываемый по чек-боксу) для быстрой перестройки 0-300 кГц. Это может пригодиться для настройки антенн.

rn3aus:
Готова новая версия прошивки DDS и v7.0 управляющей программы (она совместима и со старой прошивкой DDS, но новые функции будут недоступны).

Для новой прошивки нужно минимально доработать схему, как показано на рисунке и описано в пояснении.
Удалось учесть многие из высказанных пожеланий, в том числе запуск команд по времени, частотный скроллер, режим ГКЧ, улучшенное формирование WSPR и многое другое...

rn3aus:
Упр программа

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Перейти к полной версии