Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Измерител АЧХ на arduino mega2560

Пт сен 07, 2018 09:07:18

Доброго дня уважаемые коллеги!
Находясь в отпуске, возникла потребность в измерении АЧХ ДПФ самодельного КВ трансивера.
Попробовал сделать это с помощью DVB донгла и генератора шума - ничего хорошего не получилось, т.к. частотный диапазон ДПФ от 1 до 30 мгц, а УСБ свисток работать на этих частотах не захотел (конвертера у меня нету). Осциллографа у меня тоже нет.
В итоге, не много почесав за ухом, собрал такой вот девайс:
https://www.youtube.com/watch?v=C2HoU7GVq-U

Все компоненты были в наличии, нацепляв на беспаечной макетке провода, собрал прототип. И за один вечер получил первый график АЧХ кварцевого фильтра от ФМ приемника на 10,7 мгц на экране монохромного графического ЛСД дисплея с разрешением 128х64 точки на основе контроллера 12684. Не много позже нарисовал в SL6 платку в виде шильда для ардуино МЕГА2560. Пользоваться устройством стало гораздо удобнее.
Почему именно ардуино МЕГА ? Потому, что у нее есть куча портов. Один только дисплей занимает 14 пинов. Хотя, если применить другой дисплей, с меньшим количеством управляющих пинов, допускаю возможность использования более дешевой платформа ардуино на основе контроллеров atmega328. Правда, из-за меньшего количества аппаратных прерываний, придется отказаться от некоторых плюшек.
На видео продемонстрирована первая версия прошивки, сейчас я ее доработал и пользоваться стало на много комфортнее, качество отображения графиков улучшилось, маркер по экрану бегает более четко. Скорость обновление графика на экране (частота развертки) не велика - около 2 секунд. Но это издержки ардуиновской платформы, мои знания еще ооочень скромны, чтобы переходить на более серьезные языки программирования.
Пару слов про дисплей - распиновка подключения к ардуине сделана под конкретную плату. А так ее можно изменить, подкорректировав соответствующий файл конфигурации в библиотеке дисплея. В скетче править ничего не надо. И еще - перед повторением необходимо проверять цоколевку экрана, т.к. существует четыре разновидности, с совершенно разной распиновкой.

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

С уважением,
Александр
Вложения
openGLCD.zip
Библиотека для ЛСД дисплея 128х64 на основе чипа 12684
(703.01 KiB) Скачиваний: 493
Si5351Arduino-master.zip
Библиотека для синтезатора SI5351
(48.06 KiB) Скачиваний: 443
AFC_metr_V1_31.zip
Скетч
(3.58 KiB) Скачиваний: 471
АЧХ метр.lay6
(44.54 KiB) Скачиваний: 889
схема.jpg
(81.88 KiB) Скачиваний: 1170

Re: Измерител АЧХ на arduino mega2560

Пт сен 07, 2018 19:42:53

Очень интересный бюджетный вариант ГКЧ .Кварцевый фильтр можно исследовать и более простыми самодельными ГКЧ с маленькой девиацией частоты,а вот ДПФ простыми методами не получится .Как обстоят дела у Вас с ПДФ на Sis5351.Ведь Вас интересовали тоже ДПФ?. Понятно что это не NWT-7. Но для начинающего радиолюбителя или как экспресс настройка. это супер недорогой прибор.Не каждый день мы настраеваем ДПФ .Контура почаще. Генератор на Sis5351 выдает меандр и для настройки вч схем считаю не комильфо но пускай присутствует.На ad9850 там действительно синус но дороже.И вместо или как вариант вывести информацию на монитор компа было бы нагляднее чем на данный дисплей. А вообще заинтересовала разработка,Жду продолжения.

Re: Измерител АЧХ на arduino mega2560

Пт сен 07, 2018 21:11:13

Конструкция действительно получилось очень бюджетной и на звание "измерительного прибора" не претендует. Так - показОметр. Опыта обращения с настоящими измерителями АЧХ практически не имею, по этому сравнить особо не с чем, и сказать на сколько правильно он показывает АЧХ ДПФ я не могу - график рисует, перемещая маркер можно определить полосу пропускания. Думаю для простых измерений оно вполне подойдет. Сейчас думаю, как сделать так, чтобы на экране кроме значения частоты, на которой установлен маркер, он еще показывал уровень сигнала в дБ.
На счет меандра на выходе SI5351 - читал на разных форумах инфу, мнения разошлись. Одни говорят, что для измерения АЧХ форма сигнала роли не играет, другие говорят наоборот. Хочу отметить, что синус на выходе AD9850 тоже не на высоте, особенно на верхней границе его рабочей частоты. Но там есть вопросы к качеству настройки выходного фильтра - как китайцы его настраивали одному Мао известно, синус на выходе жутко не линеен. SI5351 в этом плане более качественная. По этому выбор пал именно на нее.

Я как-то провел один эксперимент. У меня есть самодельная спиральная антенна на 27 мгц. Подключил ее к антенному анализатору, посмотрел где у нее резонанс. Получил значение 27,350 кгц. Потом подключил эту же антенну к этому самому измерителю АЧХ - пик графика пришелся как раз на 27,350 кгц, а график внешне выглядел так же как и на анализаторе. Сделал вывод, что моя конструкция вполне работоспособная :))

На счет подключения к компьютеру - с одной стороны качество графика на экране монитора куда круче, чем на монохромном ЛСД экранчике. Но я руководствовался принципом максимальной автономности - не всегда и не у всех есть под рукой компьютер (у меня самого в моей мастерской он появился только пол года назад). Да и порой на рабочем столе в процессе наладки аппаратуры бывает такой завал, что места для клавиатуры и мышки просто не остается. Но о возможности вывода графика в компьютер, как дополнительной плюшки, можно подумать в дальнейшем по мере получения опыта в программировании ардуин :)))

Re: Измерител АЧХ на arduino mega2560

Сб сен 08, 2018 11:05:53

Все есть кроме дисплея. Нужно заказать и попробовать.Заинтересовало.А Вам успехов в усовершенствовании прибора.

Re: Измерител АЧХ на arduino mega2560

Сб сен 08, 2018 12:05:25

Проект очень интересный,одобрямс! :)) А в сторону расширения частоты до 100 мгЦ не будете копать? Было бы очень актуально... Вроде модуль на 5351 позволяет.

Re: Измерител АЧХ на arduino mega2560

Сб сен 08, 2018 19:26:35

Благодарю всех за поддержку!

На счет расширения частоты - теоретически это возможно сделать и до 200 мгц. Si5351 поддерживает такие частоты. Однако, возникает проблема в детекторе - обычный диод не особо линеен. С повышением частоты будет сложнее получить необходимую линейность, которая бы мало влияла на результаты измерений. Можно, конечно, поставить какой-нибудь линейный детектор от Analog Device, надо экспериментировать, но у меня их нет.

Забыл рассказать про органы управления измерителя АЧХ:
энкодер - осуществляет выбор режима в стартовом меню. Нажатие кнопки энкодера осуществляется переход в следующее меню. В режиме выбора стартовой частоты (если выбран режим измерения АЧХ) вращением энкодера производится установка нужной частоты (по умолчанию 10 мгц). Кнопкой STEP выбирается шаг перестройки 1-10-100-1000 кГц. Нажав на кнопку энкодера осуществляется переход в меню выбора полосы обзора (по умолчанию 1 мгц). Изменение частоты полосы обзора осуществляется аналогично установке стартовой частоты. Таким образом, например, если стартовая частота установлена на 10 мгц, а полоса обзора 1 мгц, то на экране будет отображаться график полосой 1 мгу, начиная от 10 мгц, заканчивая 11 мгц.
После установки полосы обзора, нажав на кнопку энкодера, программа переходит непосредственно в режим измерения АЧХ. На экране отображается график, по центру рисуется маркер; в левом нижнем углу отображается частота, на которой установлен маркер, а выше этой частоты - значение шага перестройки. Например, при установке полосы обзора в 1 мгц, значение шага перестройки будет равно 7,81 кГц. Т.е. каждый пиксел на экране по оси Х отрисовывается с шагом 7,81 кгц. Шаг перестройки частоты генератора также равен этому значению. Чтобы повысить точность - необходимо уменьшить полосу обзора.
На сколько я понимаю, на практике это не должно вызвать никаких проблем, т.к. если фильтр узкополосный, то полосу обзора можно выставить равной полосе пропускания. В этом случае значение шага перестройки будет минимальным.

Так вот, перейдя в режим измерения АЧХ, вращением энкодера осуществляется перемещение маркера по экрану. Т.о. маркером можно считать полосу пропускания.
Нажав кнопку CHnG, на экране появится надпись перехода в режим CHnG, который позволяет менять стартовую частоту вращением энкодера. Этой функцией достигается эффект перемещения графика по экрану в зависимости от того, в какую сторону меняется стартовая частота. Нажав эту кнопку еще раз программа возвращает в предыдущий режим - измерение АЧХ, где опять энкодером осуществляется перемещение маркера по графику.
Назначение кнопки EXIT думаю понятно - выход из текущего режима, возврат в предыдущий режим.
Режим генератора - думаю все понятно.
В стартовом меню есть еще пункт Settings. Он пока не задействован. Пока не придумал, какие задачи он будет решать.
В общем есть над чем еще работать.

Уффф, вроде все рассказал. Надеюсь понятно изложил информацию.

С ув.
Александр

Re: Измерител АЧХ на arduino mega2560

Вс сен 09, 2018 09:52:07

grabovenko13,спасибо за весьма интересный проект!Mega2560 c 3.5 TFT дисплеем имеется в запасе.Надо попробовать.
Подкорректируйте название темы - не хватает мягкого знака в слове "Измеритель". Как же Вы без осциллографа обходитесь?
Это не упрёк. :)

Re: Измерител АЧХ на arduino mega2560

Вс сен 09, 2018 18:56:07

Доброго вечера!
На счет мягкого знака - если честно только сейчас обратил внимания :oops: А как можно название подправить? Я тут новичок, еще не разобрался.

На счет применения TFT дисплея - тут я пока ничего подсказать не могу. Есть у меня TFT на 3,5 " на основе чипа ILI9486, только он под ардуино УНО заточен. Поигрался с ним и забросил - библиотеки под него сделаны только для УНО. Свободных портов практически не оставляет - почти все пины задействованы для управления экраном (используется 8 битная шина). Однако, есть подозрение, что если и удастся его подключить к МЕГЕ - он будет не хило тормозить при работе с динамической графикой. Надо экспериментировать.

И еще - в процессе тестирования последней версии прошивки выявились кое-какие глюки. Буду разбираться.

С ув.
Александр

Re: Измерител АЧХ на arduino mega2560

Вт сен 11, 2018 20:47:29

Подправил не много прошивку. Выявленный глюк был устранен, кое-что по мелочи было улучшено.
Вложения
AFC_metr_V1_31.zip
Обновленная прошивка
(3.58 KiB) Скачиваний: 518

Re: Измерител АЧХ на arduino mega2560

Сб сен 15, 2018 20:53:17

Еще не много подправил скетч, устранил пару выявленных глюков.

Уважаемые форумчане! У меня вопрос - какими полезными плюшками можно еще наделить сей прибор? Будут ли у Вас рекомендации, пожелания?
Вложения
AFC_metr_V1_31 (2).zip
(3.58 KiB) Скачиваний: 348

Re: Измерител АЧХ на arduino mega2560

Сб сен 29, 2018 21:19:55

Повозился еще не много, в скетч внесены следующие изменения:
- изменено отображение графика - теперь картинка рисуется не в верхней части экрана, а в нижней, т.е. так, как это обычно делают заводские приборы; соответственно отображение графика отзеркалено;
- появился еще один режим измерения - нажав два раза кнопку CHG, на экране начинает отображаться еще один параметр - уровень сигнала в дБ. Соответственно, перемещая маркер по графику можно смотреть его уровни в дБ. НО !!! Я сильно сомневаюсь в адекватности этих измерений!!! Минимальное отображаемое значение на экране (когда уровень сигнала минимален) -40 дБ; при максимальном сигнале (когда вход и выход соединены на прямую) +0,5 дБ. :))) Не знаю, правильно ли это, может кто подправит меня, наставит на путь истинный :) буду признателен.
Вложения
IMG_20180929_222041.jpg
(90.21 KiB) Скачиваний: 1021
AFC_metr_V1_32.zip
(4.2 KiB) Скачиваний: 388

Re: Измерител АЧХ на arduino mega2560

Вс окт 07, 2018 20:03:19

Начал работу над второй версией измерителя АЧХ на ардуино МЕГА 2560. Пока на ТФТ дисплее на основе чип ILI9486 480*320
Вложения
IMG_20181007_210324.jpg
(123.58 KiB) Скачиваний: 635

Re: Измерител АЧХ на arduino mega2560

Вс окт 07, 2018 20:06:03

сжал кулачки,жду))респект

Re: Измерител АЧХ на arduino mega2560

Чт окт 11, 2018 19:03:10

Я хочу попросить прощения за то что допустил в схеме ошибочку. Проверил сейчас распиновку дисплея и заметил что пины 22 и 24 Ардуино перепутаны местами. Вывод ЛСД CS1 должен подключаться к выводу 22, а CS2 к выводу 24. На схеме перепутано. :oops:

Re: Измерител АЧХ на arduino mega2560

Сб окт 13, 2018 06:50:13

после долких плясок с бубном....
Изображение ogden nash turtle poem

и хитрая распиновка
Изображение

Re: Измерител АЧХ на arduino mega2560

Пн окт 15, 2018 16:17:37

вот и моё творение,генератор собран на дискретнных элементах плату не выкладываю,ибо индикатор нестандартный а шаг 5351 0.5 мм
Изображение

Re: Измерител АЧХ на arduino mega2560

Вт окт 16, 2018 07:52:09

:beer: Классно получилось. А с экранчиком интересно получается - такое разнообразие моделей, распиновок. Так еще и система координат отличается. На фото картинка перевернутая получается (по сравнению с моей версией экрана).

Надо обзавестись ТФТ экранчиком с 16-битной шиной управления. А то та версия что у меня на основе 8-битной, на ардуино МЕГА жутко тормозит и для этой цели не подходит (по крайней мере моих знаний для его нормального запуска не хватает).

С ув.

Re: Измерител АЧХ на arduino mega2560

Пт окт 19, 2018 16:39:34

разобрался со старым творением Китайпрома.вместо CS1 CS2........NC PSB(????) NC таки висит в воздухе

Re: Измерител АЧХ на arduino mega2560

Вс ноя 18, 2018 19:07:40

Всем привет!
После продолжительного молчания, вызванного существенной переработкой прошивки, выкладываю последнюю (на сегодняшний день) версию скетча.
Схема изменений не претерпела, надо только дополнить еще одной кнопкой PWR, подключив ее к пину 5 ардуины (по аналогии с другими кнопками).
Программа была существенно переработана (как по внутренней структуре, так и по функционалу). В результате прошивка стала работать не много быстрее.
Что изменилось:
- пришлось отказаться от Стартового меню. Теперь при включении программа переходит в меню ПРЕСЕТОВ, где энкодером можно выбрать наиболее распространенные у радиолюбителей значения частот (455, 465, 10,7 мгц, 160 М, 80 М, 40 М и т.д.). Есть также возможность ручной установки частоты. После выбора значения частоты программа переводит в меню установки полосы сканирования.
- в режиме установки полосы кнопкой PWR осуществляется регулировка мощности сигнала от SI5351 (четыре значения - 25, 50, 75 и 100%). По умолчанию стоит значение 50%. Если верить описанию на библиотеку SI5351 25% соответствует 3 дБм, а 100% - 10 дБм.
- в режиме измерения АЧХ первое нажатие кнопки CHG переводит в режим изменения центральной частоты; второе нажатие - в режим изменения амплитуды сигнала (фильтры имеют разное затухание, иногда приходится масштабировать сигнал по экрану). Вращая энкодер меняется значение амплитуды сигнала на графике. Повторное нажатие кнопки CHG переводит обратно в режим измерения АЧХ.
- устранены кое-какие глюки.
Было принято решение отказаться от режима генератора, а также от меню Settings ввиду невостребованности (все необходимые настройки производятся непосредственно перед проведением измерений).

Хочу поблагодарить форумчанина Вадим1964 за тестирование прошивок и оказание помощи в разработке функционала программы.

Пока все.

С уважением,
Александр
Вложения
AFC_metr_V1_35_testAMP.zip
(4.78 KiB) Скачиваний: 429

Re: Измерител АЧХ на arduino mega2560

Чт фев 11, 2021 17:33:33

Вопрос автору, кнопки какие функции исполняют? И можно ли схему полную увидеть?

судя по скетчу всего три кнопки, exit , step, режим АЧХ, еще кнопка энкодера, а остальные задействованы или нет?
Ответить