Форум Радиолюбителей

Универсальный Цифровой Блок Управления (ЦБУ) всем трансивером

619582 просмотров, 517 ответов — стр. 23 из 35

Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 11:32#331
У сишки есть программа при которой она оптимальные коэфф считает для конкретной частоты и очень чистые

Вот именно по ней мы и считали. И палки -40...-50 и на частоте передатчика (2-метровый диапазон), и в гетеродине приёмника (на 21.4 в стороне). Найти сразу не могу - к вечеру.

Ну всё-таки придётся на внешние резисторы переходить

Да не решит это проблему - читайте внимательно, что я пишу - от помехи по земле (просто осцилл подключаю) уже идёт ложное срабатывание. При чём тут резисторы? Спасти может только припайка конденсатора НЕПОСРЕДСТВЕННО на ножки проца, чего лично я сделать не смогу, не поуродовав плату.
Висят уже давно и резисторы, и конденсаторы, но с длинными ногами проблема не решается. Куда проще программно задать - не реагировать на нажатие короче полсекунды, быстрее нахрен не нужно - это же не клава компа, а кнопка меню, которая раз в год включается. Прошёл лог. ноль, включаете таймер, и как полсекунды прошло, считаете команду реальной, хоть один отскок на единицу - команда ложная, таймер на обнуление, и вновь запуск с нуля. Проблема-то для детского сада начальной группы...
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 11:35#332
Ого! Откуда такие знания ?

(Программу мне не надо у меня есть)
Кстати можно вообще на 80 мгц генератор уйти вместо кварца
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 11:37#333
Цитата: ra0ahc
Ого! Откуда такие знания ?




Цитата: ra0ahc
Кстати можно вообще на 80 мгц генератор уйти вместо кварца


По поводу тактового генератора - правильно ли я понял, что внешний такт у SI можно 50 МГц задать, и это в пределах её работы?
veso74
Сообщений: 969
13 декабря 2019 г. в 11:50#334
Цитата: Игорь
... правильно ли я понял, что внешний такт у SI можно 50 МГц задать, и это в пределах её работы?

Si5351A/B/C-B.pdf:
CLKIN Frequency Range fCLKIN = 10..100 MHz
Лично на 10 MHz проверял, коллеги: на 39 MHz. Есть внутренние делители, можно много вариантов.
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 11:56#335
Цитата: veso74
CLKIN Frequency Range fCLKIN = 10..100 MHz


Точно! А я и не заметил... Значит будем со 100 МГц внешними работать.
veso74
Сообщений: 969
13 декабря 2019 г. в 12:00#336
Программа Silicon Labs ClockBuilder Desktop считает, но резултати не оптимизировани для TRX, а только Si как CLOCK генератор.

Дам пример при ввод точной частоты кварца, что происходит:
Частота 145.775 MHz (случайно выбранна, 2m диапазон, репитер Р7)
PLL A
Input Frequency (MHz) = 27,001485000 (случайно выбранна)
VCO Frequency (MHz) = 874,650000000
Feedback Divider = 32 100976/257157
SSC disabled

Output Clocks
Channel 0
Output Frequency (MHz) = 145,775000000
Multisynth Output Frequency (MHz) = 145,775000000
Multisynth Divider = 6
---
А как можно:
Частота 145.775 MHz (случайно выбранна, 2m диапазон, репитер Р7)
PLL A
Input Frequency (MHz) = 27,000000000
VCO Frequency (MHz) = 874,650000000
Feedback Divider = 32 71/180
SSC disabled

Output Clocks
Channel 0
Output Frequency (MHz) = 145,775000000
Multisynth Output Frequency (MHz) = 145,775000000
Multisynth Divider = 6
R Divider = 1
---
Дам пример и с немаксимальной Fvco (900 MHz?) (для мин. фазовой шум?):
Частота: 14.458542 MHz (случайно выбранна)
PLL A
Input Frequency (MHz) = 27,000000000
VCO Frequency (MHz) = 694,010016000
Feedback Divider = 25 66007/93750
SSC disabled

Output Clocks
Channel 0
Output Frequency (MHz) = 14,458542000
Multisynth Output Frequency (MHz) = 14,458542000
Multisynth Divider = 48
R Divider = 1
PLL source = PLLA
---
Вы видите разницу в коэффициентах? Есть, и от етого прямо зависить спектр (как и общее впечатление от работы Si5351). Коефицинетов из ClockBuilder - для быстрого расчета (но, думаю: неоптимальноe за TRX).
---

Значит будем со 100 МГц внешними работать.

Он будет разделен внутри делителем, и высокая входная частота опять не будет иметь смысла для спектра.

Примерно из кода Jason Milldrum NT7S, Etherkit, v2.0.6 :
 if(ref_osc_freq <= 30000000UL)
{
xtal_freq = ref_osc_freq;
reg_val |= SI5351_CLKIN_DIV_1;
}
else if(ref_osc_freq > 30000000UL && ref_osc_freq <= 60000000UL)
{
xtal_freq = ref_osc_freq / 2;
reg_val |= SI5351_CLKIN_DIV_2;
}
else if(ref_osc_freq > 60000000UL && ref_osc_freq <= 100000000UL)
{
xtal_freq = ref_osc_freq / 4;
reg_val |= SI5351_CLKIN_DIV_4;
}
Владимир_К
Сообщений: 1245
13 декабря 2019 г. в 01:48#337
Цитата: ra0ahc
Только там есть недостаток...емкость на землю долго заряжается и разряжается, ацп успевает промежуточное значение считать и как результат - нажал одну кнопку, а отработала другая.

Не внимательно читаете, что пишу. Сначала ADC лишь устанавливает факт того, что нажата какая-то кнопка, это значение напряжения не берется во внимание. Затем следует пауза, несколько мсек, после чего измеряется напряжение. Длительность паузы выбирается исходя из длительности дребезга. Я, для китайских кнопок беру 2 мсек и этого хватает на все случаи.
В последнем синтезаторе прерывания я вообще использую только от таймера. Программа постояноо опрашивает состояние валкодера и пишет в буфер. Каждые 5 мсек происходит опрос кнопок, буфера. Если нажата кнопка, обрабатывается команда. Если в буфере валкодера есть число (не ноль), меняется частота. По формуле F1=F0+(-)(ABC число в буфере)^2. То есть, если валкодер повернулся на один шаг, частота также перестраивается на один шаг. Если в буфере 2, частота перестраивается на 4 шага. Если использзуются внешние прерывания по какому-либо порту, надо озаботиться помехоустойчивостью.
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 01:54#338
Цитата: veso74
Он будет разделен внутри делителем, и высокая входная частота опять не будет иметь смысла для спектра.


А я не из-за спектра. У меня обе SI (одна тактовая в синтезе, вторая формирует гетеродины в слабосигналке) должны тактироваться от одного генератора, который будет подаваться через кабель, излучённые 100 МГц создадут проблем на КВ на порядок меньше, чем излучённые 25, или 27 МГц...

veso74
Сообщений: 969
13 декабря 2019 г. в 02:08#339
Для енкодер всегда использовал метод с ... как по русский, state machine.
Кондензатори для debounce не нужни, ни другая защита. С мех. енкодери работает оч. хорошо (KY-040), на опто- также (попробовал на 360p, 400p, 1200p). Механический однокодер (для VFO, каждой день "вращаем") делает ошибку на 1 год експлоатации, алгоритм просто пропускает механический зуб, нищчего другое не происходит, FREQ "не прыгает". Первой мой мех. енкодер KY-040 "пережил" 3,5 года в VFO (3 зубa не работали, а радио: первой, рабочий TRX, для повседневной работы). Код не занимает память, а и перерывания свободные для других целей. Всего несколько десятков строк кода.

Ben Buxton, Rotary encoders, done properly
http://www.buxtronix.net/2011/10/rotary-encoders-done-properly.html
veso74
Сообщений: 969
13 декабря 2019 г. в 02:12#340
излучённые 25

Даже на 50.000 000 MHz мне не мешает с элементарному экранированию и фильтрации питания. Правда: стараюсь избегать видимых эффектов (напр. для 50 MHz - опора 27 MHz).
---
Игорь, Вы можете прочитать о кв. генератор в Si, это не обычный генератор. Есть регулятор, в начале генератор начинает работать, в следующий момент ток через кристалл уменьшается. Старение кристалла - минимальное, собствений разогрев - также, следовательно, более высокая температурная зависимость.
---
должны тактироваться от одного генератора, который будет подаваться через кабель

надеюсь, что вы не имеете влияния обратной проводимости цепей в две ИС: выход CLK0 ИС1 -> общий XTAL -> выход CLK0 ИС2 (и соответно влияние наоборот). 3,3V max цифровой сигнал легко проходит наоборот примерно через часть пикофарада.
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 02:28#341
Цитата: veso74
Даже на 50.000 000 MHz мне не мешает с элементарному экранированию и фильтрации питания.


Это от требований по мусору зависит. Кому-то хватает, кому-то - нет...

Цитата: veso74
кв. генератор в Si, это не обычный генератор


Да каким бы он ни был, температурная нестабильность КГ, при правильной схемотехнике, всё равно, определяется самим кварцем, сделать её нулевой нереально, а мне хочется хотя бы 8 знаков держать, поэтому, только термостат.
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 02:38#342
Цитата: veso74
надеюсь, что вы не имеете влияния обратной проводимости цепи две ИС: CLK1.1 -> XTAL -> CLK2.1


Слабо верится, что здесь могут быть какие-либо проблемы, но, в любом случае, на каждую SI сигнал будет подаваться через свой буфер.
veso74
Сообщений: 969
13 декабря 2019 г. в 02:45#343
сделать её нулевой нереально, а мне хочется хотя бы 8 знаков держать

Ето Ваши требования. Специалисти Silicon Labs классифицировали только как CMOS Clock Generators.
Есть Low Jitter Clock Generators, Ultra Low Jitter Clock Generators ... .

Не заставляйте жуку (1 €) нести груз в тележке для запряженные животны (транслейт).
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 02:50#344
Цитата: veso74
Не заставляйте жуку нести груз в тележке для запряженные животны


Если есть готовые генераторы, на 75...100 МГц с указанной точностью и термостабильностью, я готов жуку (жука cr123) не запрягать в повозку...
Кстати, там и по фазовым шумам сильно плохо не должно быть.
veso74
Сообщений: 969
13 декабря 2019 г. в 02:57#345

Если есть готовые генераторы, на 75...100 МГц с указанной точностью и термостабильностью
Сделайте сам: ТТЛ есть, CMOS есть, FPGA есть, еще много есть.

Хем маленький генератор, хем не стоит, не потреблять электроэнергию, хем с супер параметрами - невозможно. Компромисс нужен везде. A Си является оптимальным отовсюду. Вот почему мы все радиол. начали использовать. Мне оч. нравится, несмотря на все видимые и невидимые недостатки. Даже о ППП Вл. Полякова RA3AAE с смеситель на два диода и транзисторы МП41А я добавил как гетеродин. Приемник добавил новую волшебное свойство: честотная стабильность (плюс запоминание частот при выключени, и доп. на "круглых столах").