UPD2: обновилась версия прошивки до 2.2 - добавлена регулировка контрастности
Изменения:
- Добавлена регулировка контрастности
Изменения:
- Устранено нестабильное включение при некорректном положении энкодера - между "щелчками", когда один или оба контакта замкнуты
- В спящем режиме кнопки и энкодер отключаются от подтяжки к питанию и принудительно сажаются на "землю". Подтянутой к питанию остается только кнопка энкодера.
_________________
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 сек
- Включение/выключение звукового подтверждения нажатия кнопок
- Настройка реакции на нажатие кнопок при выключенной подсветке дисплея - только включить подсветку или еще и выполнить функцию кнопки
- Калибровка батареи - необходимо выставить текущее напряжение батареи, измеренное вольтметром
- Низкий уровень батареи - выставляется напряжение батареи, при котором приемник будет отключаться
- Сброс всех настроек (включая сброс времени и стирание сохраненных частот станций)
Схема.
В целом схема повторяет ранее описанный портативный приемник с небольшими отличиями.
Вместо трех кнопок теперь энкодер.
Добавлен фоторезистор для оценки освещенности и регулировки подсветки дисплея.
Добавлен усилитель мощности для динамика, включение в мостовом режиме.
Переработана цепь определения подключенных наушников и добавлено отключение усилителя мощности.
Добавлен выключатель для полного отключения питания. Находится в батарейном отсеке.
Печатная плата и конструкция.
Герберы вот.
Так, под дисплей в лицевой части расширено окно. Сам дисплей вставлен и прижат к окну приклеенными пластиковыми направляющими. В дисплей впаяно однорядное гнездо 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". При нормальном запуске генератора эта надпись появится и исчезнет за доли секунды. Если же надпись видна все время, значит генератор на часовом кварце не запускается.
Управление
Вращение энкодера "вверх"
- режим радио: громкость +
- режим меню: перемещение вверх / редактирование (увеличение) параметра
Вращение энкодера "вниз"
- режим радио: громкость -
- режим меню: перемещение вниз / редактирование (уменьшение) параметра
Кнопка энкодера
- режим ожидания, короткое нажатие - показ текущего времени
- режим ожидания, длинное нажатие - включение радио
- режим радио, короткое нажатие - переход в меню
- режим радио, длинное нажатие - выключение радио
- список сохраненных станций - включение выбранной частоты
- режим меню (для пунктов, не имеющих подменю), короткое нажатие - вход в изменение параметра/переключение параметра
- режим меню (редактор параметра), короткое нажатие - сохранение параметра
- режим меню, длинное нажатие - выключение радио
Кнопка Влево
- режим радио, короткое нажатие - предыдущая сохраненная станция.
- режим радио, длинное нажатие - сканирование диапазона вниз до ближайшей станции
- режим меню, короткое нажатие - выход на предыдущий уровень меню
- режим меню (редактор параметра), короткое нажатие - выход из редактора без сохранения
- режим меню, длинное нажатие - выход из меню в режим радио
Кнопка Вправо
- режим радио, короткое нажатие - следующая сохраненная станция.
- режим радио, длинное нажатие - сканирование диапазона вверх до ближайшей станции
- режим меню, короткое/длинное нажатие - переход на следующий уровень меню (там, где есть подменю, обозначается в меню стрелочкой вправо)
- список сохраненных станций, короткое/длинное нажатие - переход к меню работы с текущей записью
Первое включение и контрастность
При подаче питания на дисплее отображается заставка, далее приемник выключает дисплей и уходит в дежурный режим.
Если заставка не видна (видна слабо, не видна совсем либо наоборот, все пиксели черные), то необходимо настроить контрастность.
Вслепую это сделать сложно, но можно.
Длинным нажатием на энкодер включаем радио.
Далее короткое нажатие - вход в меню. Медленно крутим вниз (если смотреть на ручку энкодера - то против часовой стрелки). Там всего 4 позиции меню (FM-станции, Сон, Установки радио, Общие настройки), поэтому крутим для гарантии на пол-оборота.
Далее нажатие на энкодер войдет в подменю "Общие настройки", где первым пунктом меню добавлена "Контрастность". Второй раз жмем энкодер - попадаем в регулировку контрастности. Крутим энкодер туда-сюда до приемлемой картинки, нажатием сохраняем.
Т.е. Длинное нажатие до включения радио, короткое нажатие, крутим вниз на несколько щелчков, два коротких нажатия, крутим вверх-вниз до приемлемой картинки.
Супер! Великолепная работа, как и всегда, всë глубоко продумано и отлично исполнено, тщательно и аккуратно. Есть у меня куча приёмников, а хочется и такой ещё сделать.
ОтветитьУдалитьпришлось оперативно сделать, а то в темноте скучно...
УдалитьКаким программатором прошивали Мega 328?У меня TL866+. Указаные вами фьюзы подходят для моего прогера,или будут инверсны?
УдалитьПрограмматор у меня USBAsp. Программа AVRDUDEPROG. Там hex-значения не зависят от инверсности.
УдалитьЕсли ставить галочками - ориентируйтесь на SPIEN - он должен быть включен и на RSTDSBL - он должен быть выключен.
У меня вот так вышло https://s1.hostingkartinok.com/uploads/images/2023/03/c0b7d4892dd7acaea8c70a7581264a27.jpg Почему то не совпадает контрольная сумма по ExtendedFuseByte c вашей,у вас Ext 0x06 у меня выходит 0хF9
УдалитьЕсли можно исправьте,если неправильно.
Удалить0x06 = 0000 0110
Удалить0xF9 = 1111 1001
Вы инверсно поставили BOD Level-ы, отметьте Level0, снимите отметки с Level1,2
Должно быть 0xFE = 1111 1110
0x06 и 0xFE - это одно и то же, там действующие только три младших бита... А старшие 5 игнорируются.
Если старшие будут единичками - будет 0xFE, если ноликами - 0x06.
А вообде есть фьюз-калькулятор. Там можно и значения вбить и посмотреть как оно работает - https://www.engbedded.com/fusecalc/
Этот комментарий был удален автором.
УдалитьС нулями и единичками знаком только в плане ознакомления,учился на электрика,в далекой юности 1983-1987 год, учась в техникуме, просто ознакомили и и на этом все.Но спасибо за подсказку.на ОЛХ приобрел две ваших платы,буду повторять.Индикаторы ждал с алишки 3 месяца))
УдалитьЭтот комментарий был удален автором.
УдалитьВсе,разобрался с фьюзами,спасибо!!!
УдалитьА не подскажете какой тип USB разьема применен на плате?
УдалитьСтабілізатор LP2985 на виході на яку напругу у вас приміняється,на 3,3 вольта,чи на іншу?
Удалить3,3 вольта.
УдалитьЮСБ для поверхностного монтажа - не помню какой. Что то типа вот такого https://imrad.com.ua/ua/razem-micro-usb-mc-011
Каким программатором прошивали Мega 328?У меня TL866+. Указаные вами фьюзы подходят для моего прогера,или будут инверсны?
ОтветитьУдалитьПрограмматор у меня USBAsp. Программа AVRDUDEPROG. Там hex-значения не зависят от инверсности.
УдалитьЕсли ставить галочками - ориентируйтесь на SPIEN - он должен быть включен и на RSTDSBL - он должен быть выключен.
А дросели по 100 мкГн,можно любые ставить на какой ток ваши расчитаны? Или ставили что подруку попалось? Без них можно?
ОтветитьУдалитьТакие дросели пойдут? http://www.kosmodrom.com.ua/el.php?name=LQH31CN101K03L
ОтветитьУдалитьнаверное, да. У меня вот такие - https://imrad.com.ua/ua/lqh32cn101k23l-0.
УдалитьПоскольку провод от наушников является еще и антенной, дроссели выступают фильтром, не пропускающим ВЧ в землю. Т.е. звуковой сигнал через дроссели попадает в наушники и потом, по общему проводу в землю. А ВЧ-сигнал через дроссели не может убежать ни в землю, ни в выходные каскады приемника. И попадает только на антенный вход.
Добрый день.Дошел ход до сборки приемника.)) Проболел прошлый весь год.отходил от ковида.((. приемник собрал все работает.Но как отрегулировать контрастность дисплея? Изображение видно только под углом.На весь кран с белой подсветкой синий квадрат.ноизображение видно под углом.Искал даташит на индикатор не нашелПодскажите как контрастность отрегулировать?.
ОтветитьУдалитьТ.е. всё засвечено? Нужно уменьшить контрастность?
УдалитьДа
УдалитьДа
УдалитьКак это сделать?
УдалитьСделал прошивку с регулировкой контрастности, вроде не накосячил.
УдалитьВпервые такую большую правку делаю без живого изделия.
Прошивку выложил в статье, ссылка там же, в конце статьи добавил описание, как зайти в регулировку контрастности.
Как уменьшить контрастность на индикаторе?
ОтветитьУдалитьСпасибо огромное! Завтра попробую.Сейчас свет отключили,сижу на аккумуляторах.))Подключил индикатор с синей подсветкой,то он трошки лучше показывает,но все равно,видно переконтраст.А сам приемник мне очень понравился по функционалу,и прием уверенный,отлично работает.
УдалитьПлохо что на таких показометрах нельзя контрастность чисто схемно отрегулировать,то ли дело двухстрочные LC1602, LC12864 и т.п. относительно выводов VCC и GND подстроечник прицепил и со среднего вывода резистора на вывод V0 индикатор отрегулировал как нужно и все.А тут только програмно.
УдалитьНу, я делал единичный экземпляр. Потом приемник подарил. Соответственно, контраст зашит в прошивке для моего экземпляра дисплея был. Потом уже оно в сеть попало. Но может, якщо буде час та натхнення, попробую добавить в прошивку контраст. Если получится без приемника. Ибо приемник не у меня.
УдалитьА программная коррекция иногда интереснее "железной". Удобнее.
Удалить