Перейти к содержанию
bbh_blocked_dnftl

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


Рекомендуемые сообщения

В общем, не знаю, что было  - скачал скетч заново, все скомпилировалось, залил. Пока все же синтез не работает - белый экран, сишка не генерит - может быть, в железе проблема, буду искать. Пока такой вопрос:  я поставил PCF8574 без буквы А, соответственно изменил адреса, получилось так:

 

// I2C адреса устройств
#define I2C_ADR_KEYPAD_7      0x26
#define I2C_ADR_KEYPAD_12     0x26
#define I2C_ADR_DISPLAY_1602  0x27
#define I2C_ADR_EE24C32       0x50
#define I2C_ADR_BAND_CTRL     0x23

 

согласно таблице из даташита:

 

map.JPG

 

Смущает, что теперь есть две строки с одинаковым адресом.

Что делать?

1. Оставить так.

2. Закомментировать строку #define I2C_ADR_KEYPAD_12     0x26

3. Что-то еще?

 

Валкодера пока нет, так что закомментировал одну строку. Получилось так:

 

// закоментировать если нет валкодера
//#define ENCODER_ENABLE
// количество импульсов на оборот примененного энкодера
#define ENCODER_PULSE_PER_TURN    360
// изменение частоты в Гц на один оборот в обычном режиме
#define ENCODER_FREQ_LO_STEP      3000
// изменение частоты в Гц на один оборот в ускоренном режиме
#define ENCODER_FREQ_HI_STEP      12000
// порог переключения в ускоренный режим. если частота изменится более
// чем на ENCODER_FREQ_HI_LO_TRASH Гц за секунду то переходим в ускоренный режим
#define ENCODER_FREQ_HI_LO_TRASH  8000                   
// кратность перестройки частоты при нажатой кнопке Fn
#define ENCODER_FN_MULT           10

 

Остальные строки этого блока тоже закомментировать или оставить так?

 

TinyRTC тоже еще не ставил, но в конфиге в связи с этим, насколько я вижу, ничего менять не надо?

 

Ссылка на комментарий
Поделиться на другие сайты

Две строки с один адресом - не страшно. Клавиатура то физически стоит одна. Для отключения валкодера достаточно закоментарить только ENCODER_ENABLE. Если нет TinyRTC то ничего делать не надо - автоматом определяет.

И закоментарьте VFO_SI570 - он по умолчанию включен а у вас скорее всего не установлен.

 

Для начала я бы рекомендовал загрузить i2c_scaner и посмотреть что он найдет по I2C шине и на каких адресах. От этого и отталкиваться - если не найдет сишку, то смотреть пайку возле нее

Ссылка на комментарий
Поделиться на другие сайты

В общем, разобрался.  Замыкание на общий провод было на шине I2C. Сканер теперь выдает адреса:

0х26 - клавиатура

0х23 - управление диапазонами

0х60 - сишка, видимо?

 

Красивые циферки на дисплее) сишка что-то генерит на двух выводах, на клавиатуру реагирует. Осталось энкодер найти и поиграться с ним. 

Спасибо!!

Ссылка на комментарий
Поделиться на другие сайты

Заработал и энкодер. Механический, правда, пока. Что удивило - настроился на долгую борьбу с дребезгом, а его нет. Программно подавлен? 

Теперь буду ждать RTC - когда подойдет с алика, и когда у разработчика найдется время, чтобы допилить телеграф. 

Спасибо за очередную конструкцию.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Руки дошли поставить RTC (переделал под батарейку). Заработали часы и кое-что стало запоминаться. Запоминается режим А/В, включение аттенюатора/преампа.. может еще что-нибудь, еще не тестировал полностью. Не запоминается выбранный диапазон  и частота, введенная перед выключением. При включении без RTC сразу включалась частота 3600, теперь или 1840 или 28200. Все это ведет к такой ситуации: допустим, перед выключением у меня был включен преамп на частоте 14100. Выключаю питание - включаю. Частота 1840 с включенным преампом. Переключаю кнопкой Up диапазон 3,5 мгц (чтоб дойти до 14 мгц) -  выключается преамп. То есть, особого толка от такого запоминания нет. Так задумывалось?

Ссылка на комментарий
Поделиться на другие сайты

Настройки запоминаются персонально для каждого диапазона. Текущий диапазон и частота также запоминаются. Запоминание происходит через некоторое время после того как вы перестанете крутить валкодер и нажимать кнопки.

Ссылка на комментарий
Поделиться на другие сайты

Ага.. понял, значит, паузу надо брать.  Стесняюсь спросить: а идея с введением телеграфа в сей синтез еще жива?

Ссылка на комментарий
Поделиться на другие сайты

Идея то жива. Но времени катастрофически не хватает

Ссылка на комментарий
Поделиться на другие сайты

Изменил немного скетч, и синтез стал всякую фигню выдавать. Посмотрите, пожалуйста, правильно ли я конфиг сделал для драгонфлая? Извиняюсь, что комментарии не удалил.

 

//  Конфиг для DragonFly Pro http://dspview.com/viewtopic.php?f=8&t=196
//  Одна ПЧ 8MHz, фильтр USB, гетеродины не переключаемые, 
//  Первый гетеродин выше частоты приема при LSB и ниже при USB
 
#ifndef CONFIG_SW_H
#define CONFIG_SW_H
 
// необходимо раскоментировать требуемую моду (только одну!)
 
// режим прямого преобразования. частота формируется на 1ом выводе. установить
// CLK0_MULT в значение 1/2/4 в зависимости от коэффициента деления частоты гетеродина
// второй и третий гетеродины отключены
//#define MODE_DC
 
// режим прямого преобразования с формированием квадратурн
// частота формируется на выводах CLK0,CLK1 со сдвигом фаз 90град
// CLK2 отключен. Минимальная частота настройки 2MHz (по даташиту 4MHz) может зависеть от экземпляра Si5351
// режим работает только при использовании Si5351
//#define MODE_DC_QUADRATURE
 
// одна промежуточная частота. требуемая боковая формируется на счет переключения
// первого гетеродина с инверсией боковой либо без инверсии. второй гетеродин формируется на выходе CLK1
// тип КФ зависит от параметров SSBDetectorFreq_LSB/USB. если фильтр симметричный (определены две частоты SSBDetectorFreq_*)
// то частота первого гетеродина всегда сверху (меньше пораженок) а боковая выбирается изменением частоты второго гетеродина
#define MODE_SINGLE_IF
 
// аналогично MODE_SINGLE_IF но второй гетеродин генерируется на CLK1 при RX и
// на CLK2 в режиме TX
//#define MODE_SINGLE_IF_RXTX
 
// аналогично MODE_SINGLE_IF но в режиме передачи гетеродины комутируются,
// тоесть первый формируется на CLK1, а второй - на CLK0
// для трактов где необходимо переключение гетеродинов при смене RX/TX (например Аматор)
//#define MODE_SINGLE_IF_SWAP
 
// две промежуточные частоты. гетеродины формируются 1й - CLK0, 2й - CLK1, 3й - CLK2
// первый гетеродин всегда "сверху". выбор боковой полосы производится сменой частоты
// второго гетеродина для режимов MODE_DOUBLE_IF_USB/LSB, или сменой частоты третьего гетеродина MODE_DOUBLE_IF
// в режиме MODE_DOUBLE_IF второй гетеродин выше первой ПЧ
//#define MODE_DOUBLE_IF
//#define MODE_DOUBLE_IF_USB
//#define MODE_DOUBLE_IF_LSB
 
// режим аналогичен MODE_DOUBLE_IF но в режиме передачи 2й и 3й гетеродины комутируются,
// тоесть второй формируется на CLK2, а третий - на CLK1
// для трактов с двумя промежуточными частотами где необходимо переключение
// гетеродинов при смене RX/TX
//#define MODE_DOUBLE_IF_SWAP23
//#define MODE_DOUBLE_IF_USB_SWAP23
//#define MODE_DOUBLE_IF_LSB_SWAP23
 
// множители частоты на выходах. в случае необходимости получения на выводе 2/4 кратной
// частоты установить в соответствующее значение
const long CLK0_MULT = 1;
const long CLK1_MULT = 1;
const long CLK2_MULT = 1;
 
// Частота 2го (3го для двойного преобразования) гетеродина в детекторе SSB. 
// Может быть определена как одна константа для верхнего/нижнего ската
// так и обе. При определении только одной константы изменение боковой полосы производится 
// 1ым (2ым для двойного преобразования) гетеродином
// При определении обеих констант они должны находится на соответствующих скатах фидьтра.
// Если используется два раздельных фильтра для выделения LSB/USB то выбор их осуществляется
// с помощью сигнала BCPN_SB на порту дешифратора диапазонов
#define SSBDetectorFreq_LSB   7998347L
#define SSBDetectorFreq_USB   8001183L
 
// Первая промежуточная частота для трактов с двойным преобразованием частоты
// Используется только если выбрана одна из мод MODE_DOUBLE_*
const long IFreqEx = 45000000;
 
#endif
Ссылка на комментарий
Поделиться на другие сайты

Прошу помощи. Синтезатор заработал без проблем. Единственно, не включается аттенюатор. Дешифратор диапазонов  на ИД10, а так как аттенюатор находится на плате ДПФ (6 диапазонов) , то и управляться он должен по тем же 4-м линиям (Р0 - Р3). К сожалению в С++ я не разбираюсь и по-этому прошу помочь. С уважением, Сергей.

Ссылка на комментарий
Поделиться на другие сайты

Прошу помощи. Синтезатор заработал без проблем. Единственно, не включается аттенюатор. Дешифратор диапазонов  на ИД10, а так как аттенюатор находится на плате ДПФ (6 диапазонов) , то и управляться он должен по тем же 4-м линиям (Р0 - Р3). К сожалению в С++ я не разбираюсь и по-этому прошу помочь. С уважением, Сергей.

 

          Зравей Сергей.

         На PC8574 - P4 = Атеннюатор

                               Р5 = Усилитель

                               Р6 = ?

                               Р7 = USB/LSB.

          ИД10 толко ДПФ. 

Ссылка на комментарий
Поделиться на другие сайты

@IvanPetkov, Спасибо за ответ, Иван! Просто нужно сформировать сигнал для следующего диапазона после 28 мгц, а уж он будет сигналом для аттенюатора. С уважением, Сергей.

 

Band     P0     P1     P2    P3

1.8         0       0       0      0

3.5         1       0       0      0

7            0       1       0      0

14          1       1       0      0

21          0       0       1      0

28          1       0       1      0

ATT        0       1       1     0

Ссылка на комментарий
Поделиться на другие сайты

@IvanPetkov, Спасибо за ответ, Иван! Просто нужно сформировать сигнал для следующего диапазона после 28 мгц, а уж он будет сигналом для аттенюатора. С уважением, Сергей.

 

Band     P0     P1     P2    P3

1.8         0       0       0      0

3.5         1       0       0      0

7            0       1       0      0

14          1       1       0      0

21          0       0       1      0

28          1       0       1      0

ATT        0       1       1     0

 
Этого не произойдет, потому что ID10 может иметь только один активный выход, а затем фильтры будут отключены. Он реализован с дополнительным проводником P4 интегральной схемы PCF8574. Имеется аттенюатор, нет фильтра. Схема такая
Ссылка на комментарий
Поделиться на другие сайты

 

Изменил немного скетч, и синтез стал всякую фигню выдавать

Вы бы более подробно изъяснялись. А то ведь непонятно что он стал вам выдавать. Может кофе в постель или из него просто песок сыпется?

 

 

#define SSBDetectorFreq_LSB 7998347L

#define SSBDetectorFreq_USB 8001183L

 

Неправильно указаны частоты. Для выделения LSB частота должна быть на верхнем скате, а для USB соответственно на нижнем. Если значения этих частот правильные для вашего фильтра то поменяйте их местами.

Только учтите что если фильтр с изменяемой полосой пропускания (с варикапами) то у него частота верхнего ската меняется и его можно использовать только как USB-фильтр. Для этого задается SSBDetectorFreq_USB а SSBDetectorFreq_LSB закоментаривается

Ссылка на комментарий
Поделиться на другие сайты

Вы бы более подробно изъяснялись.

Вот такие вещи стал выдавать (частоту замерял частотомером, на 100% в точности не уверен, но осциллом видно частоты того же порядка, а до модернизации скетча кривыми руками было все похоже на правду)

Замеры.JPG

 

 

 Неправильно указаны частоты. 

Да, я потом заметил, все поправил - принципиальных изменений не увидел.

 

 

 Только учтите что если фильтр с изменяемой полосой пропускания (с варикапами) то у него частота верхнего ската меняется и его можно использовать только как USB-фильтр.

Упс... вот над этим я не думал... получается, что на 40 м и ниже можно сужать полосу только при работе цифрой (и телеграфом??). Ну ладно, это небольшое неудобство.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...