Сводный список записей блога

--->>>> Сводный список записей блога <<<<---

30 ноября 2022

FM-приемник. Слушай, что дают. Ищи, что нравится.

 UPD: обновилась версия прошивки для обновленного дисплея до 2.1 

Изменения: 

- Устранено нестабильное включение при некорректном положении энкодера - между "щелчками", когда один или оба контакта замкнуты

- В спящем режиме кнопки и энкодер отключаются от подтяжки к питанию и принудительно сажаются на "землю". Подтянутой к питанию остается только кнопка энкодера.

_________________

Image © by KB1RDL http://www.ra4a.ru/
Image © by KB1RDL http://www.ra4a.ru/

На РадиоКоте в свое время была статья авторства NoviceUser-а про миниприёмник с применением МК ATMEGA168, FM-модуля RDA5807 и  дисплея "от Nokia 5110". Была тема на форуме с обсуждением приемника. Приемник слегка "подрос", переехал на Atmega328, обзавелся OLED-дисплеем...

Потом NoviceUser обиделся на чью то критику, залупился и вообще закрыл тему.

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

Обновленную конструкцию я выкладывал у себя в блоге. 

Тот приемник был собран, испытан и подарен. Ибо я радио слушаю редко. Нет такой радиостанции, репертуар которой нравился бы мне хотя бы на 80%. 
Но!
У меня лежал без дела монохромный ЖК-дисплей 64*128 точек на ST7565 контроллере, с белой подсветкой и диагональю 2 дюйма. Вот такой.

Он был запланирован в одно устройство, но не сложилось. И было решено сделать еще один экземпляр приемника, тоже в подарок. 

А такому дисплею и корпус надо соответствующий. Поиск донора на той же алишечке привел меня к приемнику GOLD JINRU KK-9.

Что значит GOLD - я знаю. Что значит JINRU в переводе с английско-китайского - не очень.

Вдруг это какой нибудь золотой унитаз или золотое дилдо.... Хотя большой китайско-русский словарь bkrs.info по слову JINRU даёт следующее:
jìnrù - входить, вступать в..., поступить; продвижение, проникновение, вступление, въезд, вход

"Золотое продвижение КаКа-9"... Ну в некотором плане приемник таки кака. Даже поздно ночью на КВ и СВ-диапазонах не ловит практически ничего. FM - ну в городе ловит. 
Переключатель DX-Local вообще бутафория.

Но как донор корпуса, динамика, пары деталек с платы - приемник подойдет. Можно приступать к схеме, плате и продумыванию конструкции.

С платы была снята микросхема усилителя мощности, пара электролитов, разъем для наушников и .... и всё...

Управление было решено сделать комбинированным. Крутилка справа будет управлять энкодером (вместо кнопок вверх, вниз и центральной), кнопки AM-FM(TV) на морде - это кнопки влево-вправо. Вместо шкалы как раз станет дисплей. С размещением дисплея, энкодера и прочих потрохов придется немного потанцевать. Но приемник в единичном экземпляре - так что тюбик суперклея и полиэтиленовый пакет обрезки пластика позволяют достичь нирваны желаемого результата.

Ну что ж, долго сказка делается, да не долго дело сказывается... или наоборот? Да яка різниця?

Что приемник умеет

  • Играть радиостанции в диапазоне 87-108 МГц :)
  • Помнить 48 частот станций
  • Отображать время
  • Режимы приема стерео и принудительное моно
  • Тонкомпенсация (Bass) (отключаемая)
  • Показ данных RDS (отключаемый)
  • Автосканирование диапазона с сохранением найденных станций в списке сохраненных (ранее сохраненные частоты будут удалены)
  • Гибкая работа со списком сохраненных частот - перемещение по списку, вставка и удаление позиции в списке, сохранение текущей станции в список, ручное редактирование частоты
  • Режим сна (автоотключения), 5,10,15,20,30,60,90 минут
  • Выключение приемника при разряде батареи
  • Авторегулировка яркости подсветки в зависимости от внешней освещенности

Настройки приемника:

  • Настройка времени
  • Время до отключения подсветки дисплея в режиме радио, 2-30 сек
  • Включение/выключение звукового подтверждения нажатия кнопок
  • Настройка реакции на нажатие кнопок при выключенной подсветке дисплея - только включить подсветку или еще и выполнить функцию кнопки
  • Калибровка батареи - необходимо выставить текущее напряжение батареи, измеренное вольтметром
  • Низкий уровень батареи - выставляется напряжение батареи, при котором приемник будет отключаться
  • Сброс всех настроек (включая сброс времени и стирание сохраненных частот станций)

Схема.


Схема в PDF

В целом схема повторяет ранее описанный портативный приемник с небольшими отличиями.

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

Печатная плата и конструкция.

Герберы вот.

Выбранный корпус требует и соответствующей компоновки. 

Так, под дисплей в лицевой части расширено окно. Сам дисплей вставлен и прижат к окну приклеенными пластиковыми направляющими. В дисплей впаяно однорядное гнездо PBS, ответная часть штыревая часть PLS - в основной плате.

Аккумулятор приклеен на 2сторонний скотч к дисплею.

Пришлось немного поломать голову, что бы ручкой управления справа (бывшая ручка настройки) можно было крутить энкодер. 
Конструкция достаточно простая получилась. Плата с энкодером прикручивается маленьким уголочком к основной плате, припаивается четырьмя угловыми гвоздями PLS. В корпусе дополнительно вклеивается упор для энкодера, что бы нагрузка от нажатия была на корпус, а не на плату. А далее родная ручка от приемника частично обрезается, удлиняется жесткой трубкой. Со стороны энкодера используется обрезок родной ручки. У меня получилось использовать в качестве трубки пустой стержень от гелевой ручки. Метчиком М3 в ручке приемника, ручке энкодера и трубке я нарезал резьбу М3, обрезал шляпки у пары нейлоновых винтов М3х12 и соединил всё в единую конструкцию. Далее всё было зафиксировано вплавленными "штифтами" из швейной булавки.

Кнопки. От  толкателей кнопок отрезано лишнее и толкатели нажимают на 2 тактовые кнопки, которые припаяны на кусочек макетной платы. Макетка, в свою очередь, приклеена к батарейному отсеку плюс через нее проходит один из крепежных винтов батарейного отсека (фото не сохранилось).

Окошко переключателя DX-Local было закрыто полуматовым стеклышком, за которым притаился фоторезистор, припаянный к той же макетке, что и 2 кнопки.

Вместо родного стекла было вырезано своё, из тонкого оргстекла. Была напечатана рамка, приклеенная к стеклу изнутри на двусторонний скотч. На этом же скотче стеклышко было вклеено в корпус.

Плата в корпусе.
(желтый провод - небольшая оптимизация схемы, она уже отражена на принципиальной схеме и плате.)

Плата с обратной стороны

Крепление энкодера

Аккумулятор и дисплей

Ну и финальный результат:


Прошивка и фьюзы

Прошивка

Прошивка для обновленного дисплея

Фьюзы:
Включить сохранение EEPROM при стирании кристалла (EESAVE=0),
отключить деление тактовой на 8 (CKDIV8=1),
BOD настроить на режим 1.8 вольта : BODLEVEL2 и BODLEVEL1 запрограммированы (=0), BODLEVEL0 - не запрограммирован (=1)

Всё остальное - заводское..

Кому ближе цифры - вот:
Low  0xE2
High 0xD1
Ext  0x06

При включении питания на контроллер проверяет, запустился ли генератор на часовом кварце.  На период проверки на дисплее отображается надпись "32 kHz init". При нормальном запуске генератора эта надпись появится и исчезнет за доли секунды. Если же надпись видна все время, значит генератор на часовом кварце не запускается. 

Управление

Вращение энкодера "вверх"

  • режим радио: громкость +
  • режим меню: перемещение вверх / редактирование (увеличение) параметра

Вращение энкодера "вниз"

  • режим радио: громкость -
  • режим меню: перемещение вниз / редактирование (уменьшение) параметра

Кнопка энкодера

  • режим ожидания, короткое нажатие - показ текущего времени
  • режим ожидания, длинное нажатие - включение радио
  • режим радио, короткое нажатие - переход в меню
  • режим радио, длинное нажатие - выключение радио
  • список сохраненных станций - включение выбранной частоты
  • режим меню (для пунктов, не имеющих подменю), короткое нажатие - вход в изменение параметра/переключение параметра
  • режим меню (редактор параметра), короткое нажатие - сохранение параметра
  • режим меню, длинное нажатие - выключение радио

Кнопка Влево

  • режим радио, короткое нажатие - предыдущая сохраненная станция.
  • режим радио, длинное нажатие - сканирование диапазона вниз до ближайшей станции
  • режим меню, короткое нажатие - выход на предыдущий уровень меню
  • режим меню (редактор параметра), короткое нажатие - выход из редактора без сохранения
  • режим меню, длинное нажатие - выход из меню в режим радио

Кнопка Вправо

  • режим радио, короткое нажатие - следующая сохраненная станция.
  • режим радио, длинное нажатие - сканирование диапазона вверх до ближайшей станции
  • режим меню, короткое/длинное нажатие - переход на следующий уровень меню (там, где есть подменю, обозначается в меню стрелочкой вправо)
  • список сохраненных станций, короткое/длинное нажатие - переход к меню работы с текущей записью


19 комментариев:

  1. Супер! Великолепная работа, как и всегда, всë глубоко продумано и отлично исполнено, тщательно и аккуратно. Есть у меня куча приёмников, а хочется и такой ещё сделать.

    ОтветитьУдалить
    Ответы
    1. пришлось оперативно сделать, а то в темноте скучно...

      Удалить
    2. Каким программатором прошивали Мega 328?У меня TL866+. Указаные вами фьюзы подходят для моего прогера,или будут инверсны?

      Удалить
    3. Программатор у меня USBAsp. Программа AVRDUDEPROG. Там hex-значения не зависят от инверсности.
      Если ставить галочками - ориентируйтесь на SPIEN - он должен быть включен и на RSTDSBL - он должен быть выключен.

      Удалить
    4. У меня вот так вышло https://s1.hostingkartinok.com/uploads/images/2023/03/c0b7d4892dd7acaea8c70a7581264a27.jpg Почему то не совпадает контрольная сумма по ExtendedFuseByte c вашей,у вас Ext 0x06 у меня выходит 0хF9

      Удалить
    5. Если можно исправьте,если неправильно.

      Удалить
    6. 0x06 = 0000 0110
      0xF9 = 1111 1001
      Вы инверсно поставили BOD Level-ы, отметьте Level0, снимите отметки с Level1,2
      Должно быть 0xFE = 1111 1110
      0x06 и 0xFE - это одно и то же, там действующие только три младших бита... А старшие 5 игнорируются.
      Если старшие будут единичками - будет 0xFE, если ноликами - 0x06.
      А вообде есть фьюз-калькулятор. Там можно и значения вбить и посмотреть как оно работает - https://www.engbedded.com/fusecalc/

      Удалить
    7. Этот комментарий был удален автором.

      Удалить
    8. С нулями и единичками знаком только в плане ознакомления,учился на электрика,в далекой юности 1983-1987 год, учась в техникуме, просто ознакомили и и на этом все.Но спасибо за подсказку.на ОЛХ приобрел две ваших платы,буду повторять.Индикаторы ждал с алишки 3 месяца))

      Удалить
    9. Этот комментарий был удален автором.

      Удалить
    10. Все,разобрался с фьюзами,спасибо!!!

      Удалить
    11. А не подскажете какой тип USB разьема применен на плате?

      Удалить
    12. Анонимный18 марта, 2023 20:40

      Стабілізатор LP2985 на виході на яку напругу у вас приміняється,на 3,3 вольта,чи на іншу?

      Удалить
    13. 3,3 вольта.
      ЮСБ для поверхностного монтажа - не помню какой. Что то типа вот такого https://imrad.com.ua/ua/razem-micro-usb-mc-011

      Удалить
  2. Анонимный16 марта, 2023 00:15

    Каким программатором прошивали Мega 328?У меня TL866+. Указаные вами фьюзы подходят для моего прогера,или будут инверсны?

    ОтветитьУдалить
    Ответы
    1. Программатор у меня USBAsp. Программа AVRDUDEPROG. Там hex-значения не зависят от инверсности.
      Если ставить галочками - ориентируйтесь на SPIEN - он должен быть включен и на RSTDSBL - он должен быть выключен.

      Удалить
  3. Анонимный18 марта, 2023 23:06

    А дросели по 100 мкГн,можно любые ставить на какой ток ваши расчитаны? Или ставили что подруку попалось? Без них можно?

    ОтветитьУдалить
  4. Анонимный18 марта, 2023 23:10

    Такие дросели пойдут? http://www.kosmodrom.com.ua/el.php?name=LQH31CN101K03L

    ОтветитьУдалить
    Ответы
    1. наверное, да. У меня вот такие - https://imrad.com.ua/ua/lqh32cn101k23l-0.
      Поскольку провод от наушников является еще и антенной, дроссели выступают фильтром, не пропускающим ВЧ в землю. Т.е. звуковой сигнал через дроссели попадает в наушники и потом, по общему проводу в землю. А ВЧ-сигнал через дроссели не может убежать ни в землю, ни в выходные каскады приемника. И попадает только на антенный вход.

      Удалить

======= !!! ВНИМАНИЕ !!! ======================================================================
Гугл умный и боится спама. Поэтому иногда ваши комментарии Гугл отправляет мне на премодерацию. Отправлять или нет - решаю не я, а алгоритмы Гугла. Если ваш комментарий не появился сразу, значит я получу уведомление и опубликую ваш комментарий через некоторое время. Я стараюсь это делать достаточно оперативно.