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

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

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

Владимир_К
Сообщений: 1245
13 декабря 2019 г. в 12:29#316
Там по ссылке, ниже, есть документация "User Manual". PDF-файл. Там подробно..
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 01:57#317
Спасибо. Сейчас более интересно было прогнать синтез с этой опорой.
В общем, пока никакого криминала не найдено - все палки SI, которые на частотах до 20 МГц (верхняя частота опоры) находятся по уровню -60 дБ, успешно съедаются моим синтезом, и по уровню, по крайней мере, -130 дБ не просматриваются.
Завтра ещё всё очень внимательно проверю.
К слову, на частотах выше 20 МГц, на выходе SI довольно сильно выходят, как минимум, две симметричные палки по уровню -50 дБ, причём, на совсем близких отстройках, и, остаётся только посочувствовать тем энтузиастам, которые эту микросхему напрямую используют в первом гетеродине - избирательность по ложным каналам подобных "приёмников" не выдерживает абсолютно никакой критики...
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 06:46#318
Игорь, прямо на плате нужен электролит (у меня 330) помехи летят от платы, но емкость по 3.3 решает проблемы.
Кнопки работают по прерываниям, так что помехозащиту нужно делать ... с вас 50 Гц летит, а прерыванию много не надо. Емкости помогут. Если совсем туго будет, то нужно тогда все-таки увеличить ток через контакты с помощью резистора 3.3к на питалово 3В.

Вот так в самом стм-е сделано....

ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 06:56#319
Цитата: Владимир_К
Цепляете на ADC

Владимир, все методы известны ))) и опробованы. В трансивере именно так и работает. Только там есть недостаток...емкость на землю долго заряжается и разряжается, ацп успевает промежуточное значение считать и как результат - нажал одну кнопку, а отработала другая.

Сейчас буду делать только через экспандер 64 кнопки по оному прерыванию. На энкодерах проверил - все ровно и без дребезга.
Этот мини проект - промежуточный и развития у него не будет ... слишком много ограничений.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 07:00#320
Цитата: Игорь
Сделайте хоть секунду реакцию, это вполне нормально, как сейчас работать вообще невозможно...

Подумаю сегодня над алгоритмом.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 07:06#321
Цитата: Игорь
Сразу вопрос - что там по помехам от него ждать, кроме палок от кварцев на 8 МГц? Опрос кнопок/валкодера, как я понял, статичный, и i2c по-моему, молчит, если перезапись не требуется?

все молчит во время приема
и2с начинает что-то передавать если надо частоту в сишку.
кнопки в статике ...ждут нажатия.
дисплей не перерисовывается в цикле, только если значения поменялись.

Кстати именно по этой причине я ару для монстра делал на ацп встроенных в плату (их там 3) - чтоб не шумело, а цап по spi с частотой 6мгц одну посылку делает и замолкает.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 07:10#322
Слушайте, по кнопкам. может кнопки переделать на подключение к питанию, а не замыкании на массу?
У меня там референсный стабилизатор стоит на 2.5в для ацп ару...я забыл сказать., а у вас нет его. питание пляшет и пипец он думает что кнопки нажимаются.

вот так....

veso74
Сообщений: 969
13 декабря 2019 г. в 09:27#323
Цитата: Игорь
... и, остаётся только посочувствовать тем энтузиастам, которые эту микросхему напрямую используют в первом гетеродине ...

Это Ваше (вероятно первое?) впечатление, при самой простой алгоритм? загрузка данных в Si.

Против Ваших слов: есть много моментов, которые изменяют выходной спектр на алгоритмическом уровне. Я даю вам подсказку, чтобы проверить: проверьте спектр при FXTAL = 25 000 000 Hz и при на реальной частоте кварца, примерно FXTAL = 25 004 945 Hz. Будете неприятно удивлены тем, что делает коэффициент. Еще подсказка: коефициент деления 1 048 575 = 0xFFFFF, не нужно всегда такой. При сокращении дроби часто делитель не максимален, а может принимать небольшие значения. (у вас не получится проверка: при Вашем алгоритм делителя всегда есть и деления у его на максимум 0xFFFFF).

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

Спектр напрямую зависит от загружаемых данных. Не менее важное: замечательная работа за одну ИС на цена 1€.
В остальном я уверен: "они" умеют делать другие синтезаторы. Но не будут 1€.
Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 10:51#324
Цитата: ra0ahc
Емкости помогут. Если совсем туго будет, то нужно тогда все-таки увеличить ток через контакты с помощью резистора 3.3к на питалово 3В.


Да это давно сделано, но ближайшая земля довольно далеко (там сантиметра 3), и это как мёртвому припарка. А прямо на проце я ставить не хочу - не факт, что что-нибудь не сломаю. Гляньте, может быть, внутри проца можно увеличить входной ток по этому входу, или же, сопротивление снизить.
Никакие иные варианты не помогут, срабатывание меню происходит даже тогда, когда по земле летят совсем мелкие помехи, типа того, что я корпус осциллографа за землю цепляю, а попав в меню, выйти из него почти невозможно.
Если нельзя, однозначно нужно алгоритм менять - иметь при хорошей общей проге убитый алгоритм подавления дребезга - это нонсенс, всё равно, что сделать крутой Мерседес, а стоп-сигналы прилепить пластилином.
Вполне допускаю, что сама по себе плата STM сделана через задницу в смысле защиты от помех, но вряд ли это порадует.

Цитата: veso74
Я даю вам подсказку, чтобы проверить: проверьте спектр при FXTAL = 25 000 000 Hz


25 МГц у меня в последней разработке стояли, там 2-метровый диапазон, на скрине сама плата передатчика, и скрин анализатора при отключённом импульсном стабилизаторе на плате.
Давайте по конкретике - что мне нужно залить вместо простейшей программы, чтобы хотя бы ближние палки исчезли? Частота, к примеру, 145725 кГц.

Игорь 2
Сообщений: 21288
13 декабря 2019 г. в 10:53#325
Цитата: ra0ahc
все молчит во время приема


Да, всё нормально, я вчера убедился...
veso74
Сообщений: 969
13 декабря 2019 г. в 11:01#326
Цитата: Игорь
... Давайте по конкретике - что мне нужно залить вместо простейшей программы ...

Дайте код Вашей программе для Si, по-конкретно алгоритм вычисления. В противном случае мы просто говорим (пишем) каждый за свои вещи, не понимая друг друга.
Цитата: Игорь
... Вполне допускаю, что сама по себе плата STM сделана через задницу в смысле защиты от помех ...

И ето не так. Используя чужой код (готовая программа, в худшем случае: прошивка) и Земля кажется маленькой :/ На пути существуют бесконечные препятствия, иногда вставка трех строк кода творит чудеса, без кардинального исправления кода и учета каждой строки. А хардуер остается прежним.
---
ra0ahc, Сергей, для кнопок сделайте просто двойное чтение, с задержкой 5-10 ms. Mожете игнорировать первые 5-20 ms от воздействия контакта (debounce). Думаю 99% от случая больше никаких сложностей не требуется и кнопка будет работать без bounce даже без лишних конденсаторов. И пропустите более тока через кнопки, 3.3V/1k-4,7k достаточно думаю.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 11:05#327
Ну всё-таки придётся на внешние резисторы переходить
Вернусь домой переделаю программу под открытый коллектор на кнопки.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 11:10#328
По вашей проблеме с 145 мгц
Больше вы нам помочь должны , там математика сплошная.
Там выше Веселин правильные вещи писал.
Так же он выложил формулы для расчета. Так вот ваша задача получить одно и тоже число разными путями , заменой коэфф. И их тусованием.
ra0ahcra0ahc
Сообщений: 4868
13 декабря 2019 г. в 11:14#329
А нет!!! Вот я балда ))) там в е проще
У сишки есть программа при которой она оптимальные коэфф считает для конкретной частоты и очень чистые
veso74
Сообщений: 969
13 декабря 2019 г. в 11:23#330
Цитироватьпридётся на внешние резисторы переходить Какая стойност есть на внутренние pull-up резисторы у STM? У Arduino на 90% случаи использую их (min 20k … max 50k). Нет проблеми, а синтезатор работает до 300W-передатчика (частично экранированный), как и у меня есть одна антенна на все диапазоннов (КСВ не самый лучший ... от 1 до 5 ).
---
Код: [Выделить]if (digitalRead(SW_STEP) == LOW) {
delay(20);
if (digitalRead(SW_STEP) == LOW) {
... делать что-то ...
}
do {
}
while (digitalRead(SW_STEP) == LOW);
}напр. мой оч. простой вариант кода для Arduino, перепишите при необходимости для STM.
---
Из сложные варианты: это может быть вам интересно (програмное решение):
Debouncing Switches