Схемные решения Raisin в качестве ПЧ для УКВ трансивера

UR5FFR
Site Admin
Posts: 2195
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by UR5FFR »

PupkinAlex wrote:А ведь были сомнения в самом-самом начале - почему на выходе ТСХО всего 0,25В.
3х вольтовые TCXO так и выдают - меньше вольта на выходе. Для сишки непринципиально - она нормально "заводится" от такого уровня.
PupkinAlex wrote:Походу, я наступил на эти грабельки -
Relayer wrote: PS на али аккуратно с покупками смд TCXO - много продают VC-TCXO которые с подстройкой под видом обычных TCXO
Блин! Две недели по этим граблям ходил! Абидна, панимаешь! :)
А где брали TCXO?
PupkinAlex wrote:Первый - возможно ли без редактирования si5351a.cpp и si5351a.h изменить "раскладку" по выходам сишки?Суть такова - для диапазона 2 м. VFO выдавать на CLK2, а для 70 см. - на CLK0.
Вам надо править vfo_set_freq функцию в моделу Syntez.ino. Приатачте свой config_sw.h - помогу сделать
PupkinAlex
Posts: 57
Joined: 05 Nov 2020, 09:19

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by PupkinAlex »

Relayer wrote:
PupkinAlex wrote:А ведь были сомнения в самом-самом начале - почему на выходе ТСХО всего 0,25В.
3х вольтовые TCXO так и выдают - меньше вольта на выходе. Для сишки непринципиально - она нормально "заводится" от такого уровня.
Однако, "мой" - тоже 3-х вольтовый - выдал около 1,2 В.
Кстати, в даташите на DSB321 (тот, который 26МГц) указано
Output Level 0.8Vp-p min. Clipped Sinewave / DC-coupledʣ
Т.е. как бы и того (0,25В) меньше.
В чем же тогда проблема? В 26 МГц? Что-то совсем не верится.. Может быть для одной сишки этого напряжения и достаточно, а вот для двух выходит на пределе.
И китайцы тут не виноваты..
Вообщем, как говориться - за что купил.. :)
Relayer wrote: А где брали TCXO?
тут
Relayer wrote:
PupkinAlex wrote:Первый - возможно ли без редактирования si5351a.cpp и si5351a.h изменить "раскладку" по выходам сишки?Суть такова - для диапазона 2 м. VFO выдавать на CLK2, а для 70 см. - на CLK0.
Вам надо править vfo_set_freq функцию в моделу Syntez.ino. Приатачте свой config_sw.h - помогу сделать
Гм.. Так там (в config_sw.h) почти ничего не изменится.
Ну вот как-то так -

Code: Select all

//  Конфиг для простого трансивер с одной ПЧ 9.216 MHz
//  Полоса пропускания фильтра по уровню 3дб ????
//  Первый гетеродин всегда выше частоты приема

#ifndef CONFIG_SW_H
#define CONFIG_SW_H

#define MODE_SINGLE_IF

const long CLK0_MULT = 1;
const long CLK1_MULT = 1;
const long CLK2_MULT = 1;

#define SBM_LSB  0
#define SBM_USB  1
#define SBM_DSB  2 // заменить на DIG = всегда USB + упр.сигнал через BAND_CONTROL

extern const struct _Modes {
  const char* name;
  char cat_name;      // '0'-No mode, '1'-LSB, '2'-USB, '3'-CW, '4'-DIGI
  uint8_t sb_mode;    // задает боковую
  uint8_t tx_enable;  // разрешена передача в этой моде
  int16_t   rx_shift; // сдвиг при приеме. нужно для CW
  uint32_t  freq[2];  // частота гетеродинов для SBM_LSB/SBM_USB
} Modes[];

// здесь пока все "от фонаря"..
#define   DEFINED_MODES \
  {"LSB", '1', SBM_LSB,  true,    0, {9216800L+300, 9213750L-300}}, \
  {"USB", '2', SBM_USB,  true,    0, {9216800L+300, 9213750L-300}}, \
  {"CW",  '3', SBM_USB,  false, 700, {9216800L-700, 9213750L+700}}, \
  {"DIG", '5', SBM_USB,  true,    0, {9216800L+300, 9213750L-300}}

#endif
Тут наверное, еще и config.h необходимо приложить. Вот этот фрагмент

Code: Select all

#define DEFINED_BANDS \
  { 143500000L,  145000000L, MODE_USB}, \
  { 145000000L,  146000000L, MODE_USB}, \
  { 430000000L,  431000000L, MODE_USB}, \
  { 432000000L,  433000000L, MODE_USB}, \
  { 433000000L,  434000000L, MODE_USB}, \
  { 434000000L,  435000000L, MODE_USB}, \
  { 435000000L,  436000000L, MODE_USB}, \
  { 436000000L,  437000000L, MODE_USB}, \
  { 437000000L,  438000000L, MODE_USB}, \
  { 438000000L,  439000000L, MODE_USB}
Учитывая тО, что все, начинающееся с 430.. должно впоследствии утраиваться. Т.е частота VFO будет /3.

P.S.
Ну тогда уж "обнаглею" совсем, и еще спрошу. ;)
Как и где (в каком месте скетча) удобнее и логичнее реализовать CW манипуляцию BFO на CLK1 второй ("верхней") сишке? Там, где BFO формируется.
Т.е. BFO во время передачи отключаем и вместо его на CLK1 выдаем сдвинутый по частоте тот же BFO.
Манипуляция примитивная - "ключ". "Точки-тире" формируются CW-ключом на Attiny85. Т.е. практически нужно только запустить/отключить CW генератор по внешнему сигналу.
Ну и CW-VOX неплохо бы соорудить тоже.
UR5FFR
Site Admin
Posts: 2195
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by UR5FFR »

В чем же тогда проблема? В 26 МГц? Что-то совсем не верится.. Может быть для одной сишки этого напряжения и достаточно, а вот для двух выходит на пределе.
Нет, все нормально и с TCXO (я там брал несколько раз) и с запиткой двух сишек - у меня это работает без проблем. Остается только одно - монтаж. По поводу напряжения на выходе - мерять надо с делителем высокоомным иначе покажет неправильно.
Остальное вечером
PupkinAlex
Posts: 57
Joined: 05 Nov 2020, 09:19

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by PupkinAlex »

Андрей, извиняюсь, в config_sw.h я допустил ошибку!
Частота первого гетеродина выше только на диапазонах 2м.
На 70 см. она должна быть ниже.
// Конфиг для простого трансивер с одной ПЧ 9.216 MHz
// Полоса пропускания фильтра по уровню 3дб ????
// Первый гетеродин выше частоты приема на 144-146 МГц и ниже на 430-439 МГц.
UR5FFR
Site Admin
Posts: 2195
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by UR5FFR »

Code: Select all

void vfo_set_freq(long f1, long f2)
{
  f1 = (f1/FQGRAN)*FQGRAN;
  f2 = (f2/FQGRAN)*FQGRAN;
  if (last_f1 != f1) {
    SELECT_SI5351(0);
    if (f1 < 200000000) vfo5351.set_freq(0,0,f1); // 144 выдаем на CLK2
    else vfo5351.set_freq(f1/3,0,0); // 433 выдаем на CLK0 в три раза меньше
    last_f1 = f1;
  }
  if (last_f2 != f2) {
    SELECT_SI5351(1);
    vfo5351_2.set_freq(f2);
    last_f2 = f2;
  }
}
Гетеродин всегда выше частоты приема если оба ската фильтра определены. Для низкой ПЧ это вообще не принципиально.
Манипуляцию ввести просто не получится - надо делать опрос какого-то пина и формировать сигнал сишки
PupkinAlex
Posts: 57
Joined: 05 Nov 2020, 09:19

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by PupkinAlex »

Relayer wrote:

Code: Select all

void vfo_set_freq(long f1, long f2)
....
Спасибо! Здесь все понятно.
Relayer wrote: Гетеродин всегда выше частоты приема если оба ската фильтра определены. Для низкой ПЧ это вообще не принципиально.
Это для КВ не принципиально, а в моем случае ровно наоборот..
При гетеродине "выше" и ПЧ 9,216 МГц получаем зеркалку на диапазоне 430 МГц: 430+9,216 = 439,216..
Все ФМ болтушки будут мои.. К тому же там (на 439 МГц) у нас еще и МЧС работает.
Плюс ко всему этому, полосовые фильтры (полосковые на печатной плате) утроителя VFO у меня уже готовы, рассчитаны и настроены на 420-430 МГц.
И АЧХ у фильтра очень даже красивая получилась (на мой взгляд ;)).
PF2.jpg
Можно конечно, попытаться сдвинуть их полосу повыше, но не хотелось бы.. Да и зеркалка не есть хорошо.. Мешать работе МЧС как-то неприлично, да и слушать их там, где их нет, тоже..
Правда, 430 МГц почти не используется радиолюбителями, но.. Все одно - нехорошо..
Relayer wrote: Манипуляцию ввести просто не получится - надо делать опрос какого-то пина и формировать сигнал сишки
А в чем конкретно сложность? Пин для манипуляции предусмотрен (А0)
CPU.jpg
.
На него поступают уже готовые "точки/тире" с CW-ключа на U34.
По сути это получается как бы "параллельный" режим ТХ, только с отключением при ТХ "штатного BFO" и манипуляцией "CW-BFO".
Плюс выдача отдельного сигнала на BAND_CONTROL для формирования огибающей.
В "старой" версии у меня это было реализовано. Но там было попроще. В новой версии пока не могу самостоятельно осилить внедрение этого функционала..
Last edited by PupkinAlex on 17 Feb 2021, 15:07, edited 1 time in total.
UR5FFR
Site Admin
Posts: 2195
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by UR5FFR »

Приатачьте код "старой" версии где это сделано - посмотрю как проще его перенести сюда
По раскладке частот - там надо в другом месте переписывать достаточно большой кусок. Вечером скину
PupkinAlex
Posts: 57
Joined: 05 Nov 2020, 09:19

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by PupkinAlex »

Relayer wrote:Приатачьте код "старой" версии где это сделано - посмотрю как проще его перенести сюда
Не уверен, что смогу сделать корректную выборку реализации CW из кода.. Это был пробный вариант, и скорее всего, довольно корявый, с лишними "вкраплениями".
Правда, рабочий. :) Проверял на старой версии трансивера.
Прицеплю полностью. Так наверное, будет понятнее.

P.S. Кстати.. Все забываю спросить насчет этого -
Relayer wrote: Нет, все нормально и с TCXO (я там брал несколько раз) и с запиткой двух сишек - у меня это работает без проблем. Остается только одно - монтаж.
Монтаж чего? Конкретно ТСХО, или общий?
Если общий, то у меня давно уже вошло в привычку все ВЧ узлы собирать на "двухсторонке" с обязательной кучей перемычек между слоями.
Ошибки, конечно, не исключаю, но хотелось бы понять, где они могут быть, чтоб не повторять их в будущем..
Может выложить фото узла гетеродинов?
Attachments
vhf_keypad_7_disp_7735.zip
(962.27 KiB) Downloaded 405 times
UR5FFR
Site Admin
Posts: 2195
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by UR5FFR »

В Syntez.ino находите код

Code: Select all

    long SSBDetectorFreq_USB = mm->freq[1]+freq_shift[1];
    long vfo,bfo;
    if (SSBDetectorFreq_LSB != 0 && SSBDetectorFreq_USB != 0) {
      // инверсия боковой - гетеродин сверху
и перед if вставляете вот что

Code: Select all

    long SSBDetectorFreq_USB = mm->freq[1]+freq_shift[1];
    long vfo,bfo;
    // гетеродин снизу для частот > 200MHz
    if (trx.state.VFO[trx.GetVFOIndex()] > 200000000) {
      if (sbm == SBM_LSB) SSBDetectorFreq_USB=0;
      if (sbm == SBM_USB) SSBDetectorFreq_LSB=0;
    }
    // конец вставки
    if (SSBDetectorFreq_LSB != 0 && SSBDetectorFreq_USB != 0) {
      // инверсия боковой - гетеродин сверху
Насчет TCXO. Монтаж - короткие дорожки от TCXO до сишки. Подключали правильно? Пины 1/2 на земле, 3й выход, 4й питание 3.3в. Выход надо подавать на вход сишки XA (2й пин) через разделительный конденсатор 0,1uF. 3й пин сишки висит при этом в воздухе. Вторую сишку подключать к выходу TCXO так же через разделительный конденсатор!
Это проверенные TCXO - у меня они работают не в одном устройстве и две сишки от них заводятся нормально.
Может вы их напрямую к сишке подключали без разделительного конденсатора?
PupkinAlex
Posts: 57
Joined: 05 Nov 2020, 09:19

Re: Схемные решения Raisin в качестве ПЧ для УКВ трансивера

Post by PupkinAlex »

Relayer wrote:В Syntez.ino находите код
...
и перед if вставляете вот что
....
Все понятно. Спасибо!
Relayer wrote: Насчет TCXO. Монтаж - короткие дорожки от TCXO до сишки. Подключали правильно? Пины 1/2 на земле, 3й выход, 4й питание 3.3в. Выход надо подавать на вход сишки XA (2й пин) через разделительный конденсатор 0,1uF. 3й пин сишки висит при этом в воздухе. Вторую сишку подключать к выходу TCXO так же через разделительный конденсатор!
Может вы их напрямую к сишке подключали без разделительного конденсатора?
Андрей, ну что уж Вы меня так.. ;) Я хоть и относительно старый, но еще не докатился до такого маразма. :D
А насчет ошибок монтажа начинаю догадываться..
Дело в том, что SMD монтаж (вернее - не монтаж, а расчет печатных плат под SMD) я начал осваивать всего лишь год назад...
Вот похоже, и накосячил "по-молодости".. :oops:
Предположительно вот в чем - проводил сигнальные дорожки (SDA/SCL/выход TCXO и т.п.) между контактными площадками SMD конденсаторов и SMD "перемычек".
И вот только сейчас сообразил, что конденсатор емкостью в 0,1 мкФ(!!!), "положенный" корпусом на сигнальную дорожку, является одной из обкладок "паразитного конденсатора" (второй обкладкой будет сама дорожка).
Вот фрагмент печатки -
косяки.jpg
косяки.jpg (146.56 KiB) Viewed 5152 times
В "обычном" монтаже пропускать дорожку "между ног" любого элемента можно не опасаясь этого эффекта.
Вообщем, похоже на то, что я наступил на грабли стереотипного мышления.. :(

Попробую перебросить на внешнюю сторону печатки перемычки, блокировочные конденсаторы и конденсаторы с выхода TCXO.
Post Reply