Программная модернизация модуля индикации для «Аманеро» AH-I6

Предлагаю модернизированный вариант прошивки модуля индикации AH-I6 для «Аманеро», используемого совместно с ЦАП AH-D6 (AH-D5).

Внешне алгоритм работы модуля AH-I6 практически не изменился. В новой прошивке удалось реализовать обработку нескольких ИК-протоколов путём адаптации соответствующих процедур из библиотеки «Ардуино» IRremote, Version 2.0.1 (June, 2015). Теперь прошивка для микроконтроллера (МК) ATmega88 поддерживает протоколы: NEC, JVC, Samsung, Sony, а для МК ATmega168 — дополнительно протоколы Philips (RC5, RC6) и пока непроверенные: AIWA, LG, SANYO, Mitsubishi, Denon, Whynter. Кроме того, прошивка позволяет использовать в модуле AH-I6 индикаторы OLED, имеющие по сравнению с ЖКИ повышенную контрастность, поэтому отображаемую на них информацию хорошо видно за тонированным защитным стеклом. 

При подсоединении микросхемы ИК приёмника к разъёму J6 модуля индикации теперь можно дистанционно управлять с пульта ИК программным включением и выключением ЦАП и переключением режима работы цифрового фильтра. В начальной версии прошивки «Beta» эти функции выполнялись только путём нажатия кнопок Pw (Power) и Flt (Filter), подключённых к разъёму J5, или с помощью отдельной приставки — эмулятора нажатия кнопок. В качестве ИК приёмника могут применяться: TSOP1738, TSOP31238, TSOP34838, VS1838, TSOP1736 и им подобные, работающие на частоте 36-38 кГц и при напряжении питания +5В, важно лишь перед подключением проверить цоколёвку конкретного приёмника в соответствии с его даташитом (распиновки бывают разные)!

У обоих типов МК программируются следующие Fuse-биты (МК теперь работают при тактовой частоте 8 МГц):

Таким образом, Fuse-биты для МК имеют значения:

  • High: 0xD7 (SPIEN=0, EESAVE=0)
  • Low: 0xE2 (CKSEL=0010, SUT=10)
  • Ext: 0xF9 (BOOTSZ=00)

Для «обучения» модуля индикации клавишам конкретного ИК пульта (конечно, из списка поддерживаемых протоколов) нужно одновременно нажать обе подсоединённые к модулю кнопки: Pw и Flt и удерживать их нажатыми в течение не менее 5 секунд, пока на экране не появится сообщение о входе в режим программирования. Сделать это можно, находясь в любом состоянии ЦАП, в том числе и отключённом программно.

После отпускания кнопок модуль индикации переходит в режим ожидания приёма последовательно двух команд от ИК пульта, соответствующих выбранным клавишам. Сначала должна быть нажата первая клавиша Pw, и, в случае успешного приёма её кода, выводится подтверждающее сообщение «ОК». После приёма и распознавания кода второй клавиши Flt также отобразится подтверждение «ОК», затем на экране появится сообщение «Saved...», режим программирования завершится с возвратом в то состояние модуля, из которого был осуществлён вход, а коды обеих нажатых клавиш сохранятся в EEPROM. Выбранные на ИК пульте клавиши должны быть разные — модуль не примет клавиши с одинаковыми кодами! Теперь можно сразу же проверить работу выбранных клавиш, нажимая их.

Процесс программирования клавиш ИК пульта можно прервать в любой момент нажатием на любую из двух кнопок, при  этом на экране появится сообщение «Canceled...», и коды клавиш ИК пульта, ранее сохранённые в EEPROM, останутся прежними. 

С прошивкой проверены модели OLED индикаторов «Winstar»: жёлтый WEH001602ALPP5N00001 и красный EH1602A (по всей видимости, не оригинальный, но нормально работающий, кроме того, радует, что в продаже имеются различные цвета). У последнего на плате пришлось перепаивать 3 перемычки для перевода в параллельный режим (по аналогии с перемычками, установленными на первом индикаторе):

Интересно, что оба индикатора отлично функционируют как при +5В (это как раз наш случай), так и при 3,3В. Никаких доработок платы модуля индикации AH-I6 не требуется, просто не устанавливаются элементы управления подсветкой и контрастностью (R1, R2, R3, R4, Q1):

 

Единственное, что можно (но необязательно) сделать — это заземлить 4 младших неиспользуемых вывода данных индикатора. При использовании OLED индикатора его выводы 3, 15, 16 никуда не подключаются. Индикаторы OLED не имеют подсветки, и для гашения индикатора в программе просто делается очистка содержимого экрана. Можно также независимо от типа используемого индикатора отказаться от цепи сброса на микросхеме MAX809 (U3, R9) с программированием дополнительных Fuse-битов МК: BODLEVEL=101 (2,7V), при этом старший (High) набор Fuse-битов будет иметь значение 0xD5.

Вид описанных выше индикаторов с модулем индикации:

     

А так выглядит с тем же индикатором OLED готовый ЦАП AK4493 в чёрном корпусе за тонированным стеклом  (к сожалению, фото довольно тёмное, так как ЦАП установлен в нише, но зато хорошо видно индикатор):

Во вложении приведены 4 разных варианта прошивки для модуля индикации: для МК ATmega88 и ATmega168, с автостартом ЦАП после включения питания (с «PowerOn» в имени файла прошивки) и без автостарта.

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

P.S. В последнее время в магазине «Чип и Дип» стали продаваться МК ATmega88PA и ATmega168 с некорректно выставленными Fuse-битами (под использование внешних кварцевых резонаторов), поэтому перед запаиванием на плату таких МК их желательно предварительно проверить.

Приватное вложение: AH-I6_ATMega88_V2_2.zip ()

Приватное вложение: AH-I6_ATMega168_V2_2.zip ()

Приватное вложение: AH-I6_ATMega88_PowerOn_V2_2.zip ()

Приватное вложение: AH-I6_ATMega168_PowerOn_V2_2.zip ()

7 комментариев
Спасибо за интересную статью и доведение модуля индикации до логического завершения. Работает как часики. Пульт NEC принят как родной. Индикатор с желтыми символами смотрится не в пример солиднее «синюшного».
Здравствуйте.У меня почему то не отображается dsd 512.Все остальные режимы есть.Конкретно не работает комбинация f3-1  f2-1 f1-0 f0-0 проверял без аманеро.Спасибо
Здравствуйте! Аманеро этот режим не поддерживает, поэтому в модуле индикации он не отображается — блокируется программно.

В новых прошивках аманеро есть поддержка dsd512 под linux, но прошивки эти еще сырые и глючные.

Кроме этого для того чтобы цап D6 нормально отыграл DSD512 ему надо передать информацию о частоте дискретизации как это делается в модулях болеро (пины 5 и 9 CONTROL). Хотя я все равно dsd512 не смог вытащить и с них, только с XMOS.

Кроме этого в режиме авто определения частоты дискретизации для dsd  ЦАП сконфигурирован под dsd256 (для DSD режима по факту в чипе нет автоопределения), тогда он ее отыгрывает без артефактов как и младшие. В случае конфигурации в DSD512 наблюдаются артефакты на прочих.  

Да имхо нет смысла делать через аманеро dsd512. Слишком много ресурсов уходит на реалтайм кодирование. Оффлайн, кстати, тоже довольно сложное, софта очень мало. Да, фубар через sox (до 384) + затем asio proxy работает довольно шустро, но звук у него хуже HQP на dsd256. И не только дело в этом. Переместить проигрывание в другое место трека — ждешь кучу времени. Крайне раздражает, что хочется удалить этот плеер нафиг. Тем более, я как оболочку использую Roon с красивым и удобным (но требующим привыкания) интерфейсом, а в нем вывод уже на HQP, то есть еще больше тормозов при перемещении ползунка. Ну и в HQP важнее фильтр, чем 1 удваивание частоты.

А вот Beaglebone black с Ethernet'ом и закачанной на него ОС работает быстрее. Именно он, т.к. тактуется с ЦАПа без проблем. Есть несколько протоколов передачи, но они полностью покрывают все требования. Правда, конкретная реализация была на другом цапе, где нет нужды кварцы располагать поближе к чипу как здесь. С ним вообще dsd1024 можно попробовать сделать (если хватит 92мбитвс канала), но это когда AK сделает чип под 45/49 мастерклок, пока таких нет.

Здравствуйте. Можно ли приспособить новую прошивку под индикаторы Winstar серии VATN LCD. Живьём их не видел, думаю заказать, но думаю судя по фоткам — дешёвая альтернатива OLED, Например WH1602B- PLL синий на чёрном или -SLL белый на чёрном
Здравствуйте! Прошивка рассчитана под любые ЖКИ, поэтому по идее должна работать, было бы интересно проверить. Надо только посмотреть, подходят ли эти индикаторы по установочным размерам . 
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.