Home Форум Клуб RU-QRP Самодельная техника Синтезатор для QRP CW трансивера
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Синтезатор для QRP CW трансивера

Синтезатор для QRP CW трансивера 08 Апр 2019 11:52 #44578

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
veso74
Манипуляцию хочу сделать QSK сразу на ногу ардуино или же через схему, формирующую
необходимую для QSK задержку (конечно, эту задержку просто сделать и программно).

По коррекции в скетче понятно, только у меня if=500кГц и как раз
ваш первоначальный вариант для меня правильный :)
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 12:55 #44579

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
veso74
Кроме включения индикации "TX", нажатие ключа будет включать два цифровых выхода (прямой и инверсный) Ардуино для управления узлами трансивера в режиме QSK.

Частоту CLK0 в режиме передачи нужно будет сдвинуть на 700...1000Гц, чтобы был самоконтроль, иначе на нулевых биениях будут одни щелчки.

Драйвер и PA будут работать в режиме "С", а поскольку вход сигнала возбуждения будет отдельный от CLK2, то никакой коммутации в передающей части не будет вообще.
Последнее редактирование: 08 Апр 2019 13:08 от zotos.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 13:01 #44580

  • veso74
  • ( Пользователь )
  • veso74 аватар
  • Вне сайта
  • Сообщений: 135
  • Репутация: 40
Когда есть TX ПЧ - там все ясно (напр. расстройка BFO RX - на варикап).

А если сигнал для CW TX с CLK2, как будете регулировать тон? (RIT "по слухом" приема "индивидуально": 600 Hz..700..750 Hz..800Hz..1kHz. Eсьт мой друг, который на 450 Hz принимает CW - так било "более приятнее" :)).

Вообще для RIT [Hz], QSK time [сек.], (ПЧ [Hz], CW MEMORY 1,2,3 ... и др.) думаю "правильно" будет с "меню" и запоминание состояния в памяти. Но (как я написал назад в ветке) ето не "мой путь" для простой кострукции :).
---
.. будет включать .. нужно будет сдвинуть на 700...1000Гц ..
Нет, получается слишком индивидуально и сложно, не для меня. Добавьте, поделитесь кодом потом.
---
P.S. Как вариант - манипуляция по I2C в Si5351 также возможна (void output_enable). Работает. Каждый сам судит насколько это правильно (гугл транслейт).
Веселин LZ2WSG
Последнее редактирование: 08 Апр 2019 13:17 от veso74.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 13:10 #44581

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
ОК, Веселин!
Спасибо за помощь!
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 15:13 #44585

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
2veso74
Я начинающий в СИ, более дружен с ассемблером....
Вижу это так:
Для вывода "чистой" частоты передачи объявляем дополнительную процедуру _t, а старую
для унификации переименовываем в _r.
//
void si5351_set_freq_r(uint32_t frequency) {
si5351.set_freq(frequency * SI5351_FREQ_MULT, SI5351_CLK0);
}
void si5351_set_freq_t(uint32_t frequency) {
si5351.set_freq(frequency * SI5351_FREQ_MULT, SI5351_CLK2);
}
//
Ну и далее безхитростно впихиваем код генерации "чистой" частоты передачи в процедуру отображения RX/TX. Это не очень красиво, позже перенесем в loop, но должно работать.
Здесь же сдвигаем частоту приема для самоконтроля
//
if (rx_tx)
{oled.print("1"); // "1" is "RX" in labels.h
si5351_set_freq_t(0);}
si5351_set_freq_r(rx - IF_FREQ);
else
oled.print("2"); // "2" is "TX" in labels.h
si5351_set_freq_t(rx);
si5351_set_freq_r(rx - IF_FREQ + 700);
//
Вечером попробую, отпишусь.

На ходу придумалось :woohoo: как сделать RIT. Просто поставить еще один валкодер и вставить код перестройки частоты BFO на CLK1 точно так же как на VFO на CLK0.
Последнее редактирование: 08 Апр 2019 15:47 от zotos.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 15:57 #44587

  • R1AIT
  • ( Пользователь )
  • R1AIT аватар
  • Вне сайта
  • Сообщений: 441
  • Репутация: 29
zotos пишет:
На ходу придумалось :woohoo: как сделать RIT. Просто поставить еще один валкодер и вставить код перестройки частоты BFO на CLK1 точно так же как на VFO на CLK0.
А нажать что-нибудь не проще? Или вы принципиально кнопок не планируете? Что мешает нажатием включить соответствующий режим и этим же валкодером настроить? Кстати, большинство валкодеров и нажатие отрабатывают.
Последнее редактирование: 08 Апр 2019 15:58 от R1AIT.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 16:11 #44588

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
2 R1AIT
Конечно можно и так, но нужно будет углубляться в процедуры сохранения - извлечения истинной частоты при переходе на передачу.
Кнопка валкодера задействована под изменение шага перестройки.
Последнее редактирование: 08 Апр 2019 16:12 от zotos.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 16:15 #44589

  • veso74
  • ( Пользователь )
  • veso74 аватар
  • Вне сайта
  • Сообщений: 135
  • Репутация: 40
В библиотеки NT7S Si5351 void si5351.set_freq(...) только включает выход. Для управления вкл./выкл. можно использовать void output_enable(...), т.е. при каждая смена режимов RX->TX необходимо включать CLK2 и выключать CLK0 (соотв. при TX->RX включать CLK0 и выключать CLK2). А чтобы избежать непрерывная загрузка данных Si в loop, то проще всего использовать флагов, напр. flag и flag_old.

Вариантов для все есть много, но необходимо сделать оценку алгоритма до начала программирования, потому что скоро код начинает выглядеть в беспорядок и сам автор не может это исправить ;) :lol:.
Веселин LZ2WSG
Последнее редактирование: 08 Апр 2019 16:19 от veso74.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 16:20 #44590

  • zotos
  • ( Пользователь )
  • zotos аватар
  • Вне сайта
  • Сообщений: 120
  • Репутация: 12
А зачем нам выключать CLK0?
А передачу я выключаю установкой частоты в ноль si5351_set_freq_t(0), в AD9851 это работает. В любом случае спасибо за подсказки, буду пробовать.
Последнее редактирование: 08 Апр 2019 16:27 от zotos.
Администратор запретил публиковать записи.

Синтезатор для QRP CW трансивера 08 Апр 2019 16:24 #44591

  • veso74
  • ( Пользователь )
  • veso74 аватар
  • Вне сайта
  • Сообщений: 135
  • Репутация: 40
Правда, CLK0 также можно использовать для CW-монитора
---
...в AD9851 это работает
В библиотеки NT7S Si5351 ето не так, а и в AD9851 для Power-Down есть bit (W0, Data[2]).

Смотрел я такое в Si5351 библиотеки управления Андрея, UR5FFR:
void set_freq(f0, f1, f2);
При fn = 0, выход выкючается.
github.com/andrey-belokon/SyntezSi5351/b...r/Syntez/si5351a.cpp

Возможно не сложно собрать управление (при fn = 0 -> n - выкл.) с помощью нескольких строк кода, если вам будет удобно. В библиотеки доступен широкий спектр готовых процедур.
Веселин LZ2WSG
Последнее редактирование: 08 Апр 2019 16:55 от veso74.
Администратор запретил публиковать записи.
Модераторы: UU7JF, UT5LP