Универсальный синтезатор Si570/Si5351

умножители, ФАПЧ
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Валкодер для синтезатора - это достаточно проблемное место. Оптические промышленные дают 300-400 импульсов на оборот, удобны и эргономичны, но дорогие и имеют большие габариты и вес. Механические "трещетки" дешевые и малогабаритные, но всего 20 импульсов на оборот и контакты, которые ненадежны и со временем могут выйти из строя. Различная "самопальная" оптика достаточно сложна в реализации и нужен диск с большим количеством прорезей. Валкодеры из шаговых двигателей габаритны и судя по отзывам тоже имеют свои нюансы.

На фоне всего этого разнообразия особняком стоят валкодеры на основе специализированных микросхем датчиков магнитного поля. Обычно для этих целей используют AS5040 из-за того, что у нее есть квадратурные выходы и она может быть применена вместо любого оптического или механического энкодера с такими же выходами. Минус - цена от 5$ за корпус. Есть и более дешевые микросхемы. Например AS5600 стоимостью около 1$. Но она не имеет квадратурных выходов. Это не позволяет использовать AS5600 в синтезаторах с закрытым исходным кодом. Но для нас это не помеха :)

Схема подключения AS5600 для питания 3.3в крайне проста
as5600_encoder.png
as5600_encoder.png (12.32 KiB) Viewed 15380 times
Вся "обвязка" - блокировочные по питанию. Подключается такой энкодер к разъему расширения P15 куда выведена I2C шина и питание 3.3в.
Для включения энкодера в прошивке необходимо в файле config_hw.h раскоментарить соответствующую строчку

Code: Select all

// раскоментировать ТОЛЬКО ОДИН требуемый тип энкодера. закоментировать все если нет
//#define ENCODER_OPTICAL
//#define ENCODER_MECHANIC
#define ENCODER_AS5600
Валкодер позволяет получить дискретность в 256 импульсов на оборот что более чем достаточно для плавной перестройки. Прошивка залита на гитхаб.
Конструктивное исполнение может быть различным - на основе механики от переменного резистора или на подшипнике с печатью деталей на 3D-принтере.

3D-модель для энкодера на основе подшипника 25*37*7 доступна тут Магнитный энкодер для синтезатора
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Все вопросы по синтезатору перенес в тему для обсуждения
viewtopic.php?f=11&t=190
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Прислали на почту вопрос - что нужно изменить в коде чтобы управлять ДПФ без дешифратора двоичного кода.
Управление ДПФ вынесено на I2C расширитель. В модуле Syntez.ino есть следующая функция в которой определяется что и на какие пины будет выводиться (сами пины определены в config_hw.h)

Code: Select all

void UpdateBandCtrl() 
{
#ifdef BANDCTRL_ENABLE
  outBandCtrl.Set(BCPN_BAND_0, trx.BandIndex & 0x1);
  outBandCtrl.Set(BCPN_BAND_1, trx.BandIndex & 0x2);
  outBandCtrl.Set(BCPN_BAND_2, trx.BandIndex & 0x4);
  outBandCtrl.Set(BCPN_BAND_3, trx.BandIndex & 0x8);
  // 0-nothing; 1-ATT; 2-Preamp
  switch (trx.state.AttPre) {
    case 0:
      outBandCtrl.Set(BCPN_ATT,false);
      outBandCtrl.Set(BCPN_PRE,false);
      break;
    case 1:
      outBandCtrl.Set(BCPN_ATT,true);
      outBandCtrl.Set(BCPN_PRE,false);
      break;
    case 2:
      outBandCtrl.Set(BCPN_ATT,false);
      outBandCtrl.Set(BCPN_PRE,true);
      break;
  }
  outBandCtrl.Set(BCPN_CW, trx.state.mode == MODE_CW);
  outBandCtrl.Set(BCPN_SB, trx.state.mode == MODE_USB);
  outBandCtrl.Write();
#endif
}
Для управления 5ти диапазонным ДПФ (Raisin 1.x) нам придется пожертвовать одним из пинов BCPN_CW или BCPN_SB. ниже код для случая когда 5й бенд выводится на пин BCPN_SB который раньше выводил какая боковая полоса выбрана - для Raisin это не актуально т.к. фильтр у него один.

Code: Select all

void UpdateBandCtrl() 
{
#ifdef BANDCTRL_ENABLE
  outBandCtrl.Set(BCPN_BAND_0, trx.BandIndex == 0);
  outBandCtrl.Set(BCPN_BAND_1, trx.BandIndex == 1);
  outBandCtrl.Set(BCPN_BAND_2, trx.BandIndex == 2);
  outBandCtrl.Set(BCPN_BAND_3, trx.BandIndex == 3);
  // 0-nothing; 1-ATT; 2-Preamp
  switch (trx.state.AttPre) {
    case 0:
      outBandCtrl.Set(BCPN_ATT,false);
      outBandCtrl.Set(BCPN_PRE,false);
      break;
    case 1:
      outBandCtrl.Set(BCPN_ATT,true);
      outBandCtrl.Set(BCPN_PRE,false);
      break;
    case 2:
      outBandCtrl.Set(BCPN_ATT,false);
      outBandCtrl.Set(BCPN_PRE,true);
      break;
  }
  outBandCtrl.Set(BCPN_CW, trx.state.mode == MODE_CW);
  outBandCtrl.Set(BCPN_SB, trx.BandIndex == 4);
  outBandCtrl.Write();
#endif
}
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Обновилась прошивка на гитхабе до 3.2.2.
- в режиме TX не отключались ATT/PRE
- не формировался сигнал на 8ом пине в режиме Tune. Его частоту в Гц можно задать в константе OUT_TONE_FREQ в модуле config_hw.h

https://github.com/andrey-belokon/Syntez_Si5351_Si570
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Новая версия двухплатного синтезатора. Что изменилось

- вместо труднодоступной и дорогой TXS0108 применен формирователь на дешевой 74LVC125
- модуль часов перестал быть "навесным". DS3231, 24C32 и батарейный отсек для CR2032 запаиваются непосредственно на плату синтезатора
- стабилизатор 5в либо 7805 или DC/DC модуль Mini360
- на плату дисплейного модуля можно установить как 8ми выводный модуль 1.8" TFT ST7735S, так и 11ти пиновый. при смене модуля необходимо указать ориентацию TFT_ORIENTATION в модуле config_hw.h
- дополнительный 8ми битный порт на PCF8574AT (использование описано в doc\FAQ.docx)

Обновилась прошивка на гитхабе до 3.3. https://github.com/andrey-belokon/Syntez_Si5351_Si570

Схемы и платы традиционно расшарены в EasyEDA
https://oshwlab.com/ban.relayer/vfo-syn ... board_copy
https://oshwlab.com/ban.relayer/digital ... multi_copy
Schematic_Digital VFO 1.8 main board 2.0.png
Schematic_Digital VFO 1.8 display board 2.0.png
synt_v2_tft-8pin.jpg
synt_v2_tft-10pin.jpg
synt_v2_back.jpg
synt_v2_pcb.jpg
Есть печатные платы
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Важное замечание по использованию сигналов управления с PCF8574. Если заглянуть в даташит то там можно узнать что ток логического 0 - 25мА, а вот с логической 1 все гораздо хуже - максимум 300uA. В результате если подключить нагрузку сопротивлением несколько кОм то этого тока будет недостаточно чтобы сформировать +5в уровень для логической 1.
Поэтому все резисторы которые стоят по выходам PCF8574 "на землю" надо ставить номиналом 100к, а в цепях управления высоким уровнем использовать полевые транзисторы. Если нужен высокий ток для логической "1" то можно применить PCA9554, которая полностью совместима по пинам с PCF8574, но программируется немного по другому.
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Во второй версии добавилась возможность использования кварцевого резонатора XTAL1 для тактирования SI5351 вместо кварцевого генератора X4. Использовать резонатор можно только в случае если устанавливается одна SI5351 U12. При этом X4 и U6 не устанавливается. Перемычка WC2 на схеме указана неправильно. Необходимо установить перемычку навесом между выводами 1-4 U6.
При использовании одной SI5351 U5 и генератора X4 не устанавливаем U6, устанавливаем перемычку WC2.
При использовании двух SI5351 - устанавливаем X4, U6. Перемычку WC2 не ставим.

Перемычка WC1 устанавливается в зависимости от примененного типа кварцевого генератора. Обычно мелкие TCXO в корпусах 2520/3225 требуют ее установки. С другой стороны XO в большом корпусе 5070 требует чтобы 1й вывод был не заземлен.
pingerlab
Posts: 16
Joined: 08 Jan 2022, 17:54
Позывной: us5mgt

Re: Универсальный синтезатор Si570/Si5351

Post by pingerlab »

UR5FFR wrote: вместо труднодоступной и дорогой TXS0108 применен формирователь на дешевой 74LVC125
я для одного устройства брал 74LVC125 и были проблемы с согласованием и самим сигналом, может тут она норм работает, но у меня отлично работала в схеме 74HC4050 ;)
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

74LVC125 - это формирователь по даташиту. Если с ней проблемы - то надо смотреть на то как вы пытались ее применить. Тут она работает без проблем. А вот будет ли корректно работать более медленная 74HC для SPI шины - я не знаю.
UR5FFR
Site Admin
Posts: 2187
Joined: 21 Apr 2012, 22:00
Позывной: UR5FFR
Location: Odessa

Re: Универсальный синтезатор Si570/Si5351

Post by UR5FFR »

Обновилась прошивка на гитхабе.

- Добавил реализацию CAT протокола FT-817. Нужный протокол выбирается с помощью дефайнов CAT_PROTOCOL_KENWOOD_TS480 и CAT_PROTOCOL_YAESU_FT817 в config_hw.h. Протокол FT-817 более компактный по сравнению с Kenwood

- Добавил управление RX/TX через CAT. При этом вход PTT синтезатора имеет приоритет. Т.е. если по CAT пришла команда переключиться в режим передачи TX, то нажав и отпустив PTT мы можем ее отменить и вернуться в режим приема RX. Логика соответствует примененной в FT-817
Post Reply