Реклама ⓘ
Главная » Радиоприем
Призовой фонд
на май 2024 г.
1. 1000 руб
Сайт Паяльник

Реклама ⓘ

Armstrong Initial – простой любительский УКВ ЧМ приёмник на 145-155 МГц

Приёмник Armstrong Initial собран по супергетеродинной схеме с двойным (10.7 МHz и 455 КHz) преобразованием: MC3362 – смеситель, детектор, BF998 – УВЧ, Si5351a – синтезатор, LM386 – УНЧ. Управление приёмником – на основе платы Ардуино Нано с микроконтроллером ATMega 328p. Настройка на станцию осуществляется энкодером, вывод информации - на OLED дисплей. Предусмотрен шумоподавитель, а также различные сервисные функции, описанные ниже.  Питание 8-15 В или при желании можно осуществить напрямую от стабилизированного источника 5 В. Ток потребления – 65 mА. В режиме "SLEEP Ардуино" и выключенным дисплеем OLED – 50 mA.

Приёмник уверенно принимает станции любительского, а также служебных диапазонов на частотах 140-160 МГц. Приёмник сравнивался с радиостанцией Alinco DJ-190, по чувствительности он немного уступает лишь на самых слабых станциях.

Приёмник предназначен для приёма Narrow FM станций, в случае вещательных Wide FM будут слышны искажения.

Принципиальная схема:

Схема приёмника Armstrong Initial

Сигнал поступает от антенны на входной контур, затем на усилитель высокой частоты на BF998. Далее подаётся на смеситель на MC3362. На эту же микросхему поступает сигнал от синтезатора Si5351a, где преобразуется в сигнал с первой промежуточной частотой 10.7 МГц. В данном приёмнике, сигнал синтезатора выше входного на значение первой промежуточной частоты. Далее, проходя через фильтр 10.7 МГц и смешиваясь с сигналом второго кварцевого гетеродина 10.245 МГц, сигнал преобразуется во вторую промежуточную частоту 455 КГц, фильтруется, детектируется и подаётся на УНЧ. К УНЧ также подсоединён транзисторный ключ , управляемый от детектора несущей на MC3362 для функции шумоподавителя.

Конструкция и детали

Входной контур - 4 витка посеребренного провода около 6 мм в диаметре.  Контур на 455 КHz – с индуктивностью 680 uH, согласно даташиту.

Керамические фильтры я приобрёл тех производителей и с той полосой пропускания, как указано в даташите на MC3362.

Параллельно регулятору громкости 10k я поставил постоянный резистор 200 Ом, чтобы обеспечить плавное изменение громкости для наушников. В случае с громкоговорителем, постоянный резистор не нужен. Параллельно входу НЧ установлены два конденсатора по 100n в параллель, они убирают высокочастотные составляющие из шума. 

В шумоподавителе можно использовать как BC547, так и КТ3102.

Ёмкости на 100n должны быть подсоединены параллельно всем кнопкам, выводам энкодера (в схеме не отображены) и питающим выводам микросхем.

SI5351a и её обвязка – экранированы коробком из текстолита с медью. Так как возникли проблемы с очень тонкими дорожками во время ЛУТа, для SI5351a я использовал плату-переходник SOP10 – DIP, что нужно учитывать при использовании моей печатной платы.   

Металлические части переменных резисторов и энкодера следует заземлить, если корпус неметаллический.

Вокруг шлейфа I2C к OLED дисплею я намотал заземлённый провод. Но лучше обходиться без длинных проводов и шлейфов.

Печатная плата разрабатывалась в Proteus и представляет из себя демо версию, она адаптирована под размеры моих деталей – к тому же, часть деталей у меня smd, часть dip. Поэтому лучше, если вы плату скорректируете под ваши компоненты сами.

 

 

Налаживание

Контур 455кГц настраиваем по максимуму громкости, ВЧ-контур - по максимуму громкости слабых станций. Я использовал для калибровки синтезатора  и налаживания приёмника самодельный частотомер на PIC, и генератор сигналов на Si5351a.

 

Программная часть

Скетч написан на основе скетча Rob Engberts, который написан на основе скетча Jason Mildrun.  Отладочная плата - Ардуино Нано с МК ATMega 328p.  Мной написаны все функции, связанные со сканированием, чтением/записью каналов, спящий режим, добавлены шаги настройки 5 КГц и 25 КГц, убраны некоторые ненужные функции. 

Сервисные функции

200 каналов в EEPROM. (Четыре байта отводится на значение частоты канала. Первый канал начинается с 24 байта).

Функция сканирования частоты и каналов.  Выбор крайних пределов сканирования частоты и каналов.

Шаги настройки: 100Hz, 1kHz , 5 kHz, 10 kHz, 25 kHz, 100 kHz, 1 MHz.  

Есть функция SLEEP, переводящая в спящий режим микроконтроллер, совместно с выключением дисплея и блокировкой настройки энкодером и, в результате, несколько меньшим потреблением тока всего устройства.

При включении приёмника, мы всегда попадаем на частоту 150 МГц и на шаг настройки: 25 кГц. (Постоянная перезапись vfo_t и radix в EEPROM из LOOP() – убрана, чтобы лишний раз не перезаписывать память.). Пределы сканирования после включения – максимальные (120-180 МГц, каналы: 1-200).  

Программа написана на принимающие частоты 120-180 МГц, на случай изготовления полосовых фильтров с pin-диодами. (Так что с данной схемой по краям диапазона мы принимаем лишь зеркальный канал)

Выходы Si5351a CLK1, CLK2 – отключены, но один из них можно настроить на 10.245 МГц и использовать вместо кварца, но я не стал это делать, чтобы не тянуть длинные провода от синтезатора. 

Уровень сигнала на CLK0 - максимальный, 8 mA.

При первом запуске, память EEPROM неиспользуемых каналов содержит числа, неподходящие для Si5351a. Может, и ничего страшного. Но для корректных значений я осуществил запись с 1 по 200 каналы значения частоты 145МГц. Для этого нужно раскомментировать строки в setup() под строкой ////WRITE to EEPROM EMPTY 1-200 CHANNELS////   до строки ///// !WRITE to EEPROM EMPTY 1-200 CHANNELS//// и один раз произвести запись в память, загрузив скетч в плату. Затем, снова закомментировать эти строки. И ещё раз загрузить скетч. (Если скетч будет ругаться насчёт нехватки места, придётся временно закомментировать что-нибудь ненужное, например вывод на экран названий диапазонов и т.п.)

Калибровка Si5351a. Калибровка производится с помощью нажатия кнопки Calibration на pin 5 Ардуино. Далее сравниваются показания синтезатора с эталонным частотомером (Частотомер через ёмкость подсоединяем на clk0). Затем, энкодером выставляется частота, с учётом этой разности и нажимается кнопка Calibration.

Проблемы с set_correction вероятно могут быть, если вы будете использовать другую библиотеку si5351. К сожалению, не получается выложить сюда библиотеку Si5351 с заголовочником, которую я использовал в проекте. 

Также, во время калибровки, нужно закомментировать две строки с комментариями «!!comment, when calibrate!!» и раскомментировать две строки с: «!!no comment, when calibrate!!». Это макросы с границами диапазона в самом начале скетча и показания «без промежуточной частоты» в void display_frequency(). После калибровки комментарии восстанавливаем, как они были.

Описание кнопок и сервисных функций:

1. Кнопка Read: Заходим в Channels Read mode. Энкодером – меняем каналы. Кнопка Select – выбираем попеременно нижний и верхний пределы сканирования каналов. Выбирается тот канал, который установлен энкодером. (Кнопкой лишь заносим это значение в ОЗУ). Кнопка Runначать/остановить сканирование каналов. При сканировании, задержка  на каждом канале – четыре секунды. Кнопкой энкодера -Encoder Button – входим в режим SLEEP. Светится SLEEP и через секунду гаснет экран. Теперь ATMega - в режиме STANDBY. Энкодер не меняет частоту и каналы. Кнопки - не работают. Выход из режима SLEEP осуществляется последовательно двумя шагами: 1) Перемещаем энкодер в любую сторону – прерыванием выходим из SLEEP. 2) Нажимаем Encoder Button – включаем дисплей и снова появляется возможность настройки каналов энкодером.

2. Кнопка Write: Заходим в Channels Write Mode. Это режим готовности к записи. Светится WRT. (Также в этом режиме не будет слышна помеха, см.ниже). Энкодером – выбираем канал для записи. Повторное длительное (около секунды) нажатие Writeзапись частоты в EEPROM и выход. Кнопка Read – выход из Channels Write Mode – без записи. (Защита от случайного нажатия на Write). В режим WRITE можно зайти также из Read Channels, но там возможен выход – только без записи (нет смысла перезаписывать канал сам на себя).

3. Кнопка Select:  Из основного режима – выбор нижнего и верхнего пределов сканирования частот. Выбирается та частота, которая установлена в данный момент. Кнопка лишь заносит значение в ОЗУ. Функция кнопки из Channels Read mode уже была описана – см.п.1.

4. Кнопка Run: Начать/остановить сканирование. При сканировании светится Run. Во время сканирования, кнопкой Encoder Button можно менять шаг сканирования частоты. При шаге выше  5кГц включительно, во время сканирования присутствует задержка на каждой частоте две секунды.

5. Кнопка Encoder Button: Изменение шага настройки и шага сканирования, режим SLEEP, см.выше.Во время сканирования я не осуществил автоматическую остановку от несущей, так как при наличии множества пустых несущих, эта функция для меня не актуальна. Да и нет места в памяти.

Помехи и возбуждения:  на некоторых частотах с определённым шагом присутствуют помехи (гудение вместо ЧМ шума) от дисплея OLED. Они сильнее проявляются без антенны, но принимать станции почти не мешают.  Сделано следующее: в режиме WRT – (готовность к записи) – я убрал постоянное обращение к дисплею в цикле. Так что достаточно нажать кнопку WRITE, чтобы убрать помеху. Затем можно «безопасно» выйти из режима готовности записи  режима, нажав READ. В режиме SLEEP, помеха также отсутствует, т.к. I2C выключен. Может быть, эта помеха связана с неправильным монтажом, но, насколько мне известно, эта проблема присутствует не только у меня.

Так как в данном проекте память программы используется на 99%, не реализовано много интересных функций. Если использовать , например Arduino Mega с TFT дисплеем, то можно сделать очень современное и красивое устройство. Но я не вижу в этом смысла, если это всего лишь однодиапазонный приёмник.

  1. Я пока что не являюсь профессиональным программистом, поэтому естественно предположить, что код можно было сделать лучше, так что строго не судите)
  2. Приёмник назван в честь знаменитого учёного Эдвина Армстронга, который сделал невероятно много для радиоприёмной техники, разработав в том числе супергетеродинную схему и частотную модуляцию.

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 Участие в конкурсе 1
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 1 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0

[Автор]
Malkin5778 #
Небольшое дополнение. В результате экспериментов по приёму станций на границах диапазона, была принята (с тем же качеством, как и на Alinco) удалённая станция на частоте чуть выше 171 МГц, что говорит о том, что по краям диапазона приёмник принимает не только зеркальный канал.
Ответить
0
andro #
Фотки немного смазаны, но плата получилась зачётной.
Ответить
0
Юрий9999 #
Добавил библиотеки. Залил Самый большой скетч(94%) какой видел. Буду в железе пробовать. Есть Баофенг, это для др. целей. Спасибо автору.
Ответить
0
Юрий9999 #
Я использую только синтезатор. Еще раз спасибо автору.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

FM-модуль RDA5807M
FM-модуль RDA5807M
USB осциллограф DSO-2090 Паяльник с регулировкой температуры
вверх