![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Аудиопроцессор на TDA7419 с управлением по WiFi с андроид-устройства.
Автор: olew, trifonidi@yandex.ru
Рис. Общая блок-схема устройства.
ГОЛОВНОЕ УСТРОЙСТВО Модуль контроллера Схема модуля контроллера головного устройства изображена на рис.1. В качестве контроллера управления применён PIC16F876A из соображений наличия необходимых аппаратных интерфейсов UART и IIC, необходимого числа выводов, требующейся оперативной памяти и памяти программ и данных, а также простоты программной первичной инициализации. Сразу оговорюсь, серия PIC16F873 не подойдёт – малы параметры памяти. Кварцевый резонатор выбран на указанную в схеме частоту не случайно. Эта частота удовлетворяет требованиям работы интерфейса UART контроллера на скорости 57600 с сетевой платой ESP8266 (об этом модуле см. ниже), управляемой и контролируемой по интерфейсу UART. Этот интерфейс в моей конструкции работает в асинхронном (к сожалению!) режиме, т.к. так был спроектирован инженерами на модуле ESP8266. Это, безусловно, наложило свой отпечаток на работу конструкции вцелом. Но, за счёт подбора скорости на уровне 57600, высокой тактовой частоты, специфического протокола обмена данными между головным (целевым) устройством (сервером с точкой доступа) и андроид-устройством (клиентом), а также эффективных программных методов захвата и обработки принимаемой через интерфейс информации негативное влияние асинхронности на процесс достоверности принимаемых данных и «успевания» их обработки удалось свести практически к нулю. Рис.1. Схема модуля контроллера головного устройства. Вообще, согласно даташиту на контроллер, частоту кварцевого резонатора можем вычислить так: При асинхронной работе: СКОРОСТЬ ОБМЕНА = Fosc / (64*(X+1)), где X – значение регистра SPBRG контроллера (0 – 255, соотв. 0x00 – 0xFF). Выразив Fosc из этого отношения имеем: Fosc = СКОРОСТЬ ОБМЕНА * (64*(X+1)). Подставляя различные значения регистра SPBRG (X), получим ряд расчетных частот кварцевых резонаторов для тактового генератора. Но… для успевания интерпретации данных на устройстве необходима «быстрая» работа контроллера, поэтому следует выбирать тактовую частоту повыше. В моём случае 57600 * (64 * (3+1)) = 14745600 Гц. У меня был в наличии кварцевый резонатор на 14,910 мГц – его и применил. Ошибка скорости обмена, как сообщил компилятор MikroC v4.6, составила не более 1,1%. Эксперимент показал, что всё работает «на ура». Поэтому Вы можете при повторении в своей конструкции использовать резонатор, близкий к расчётному. Вернёмся к схеме. И модуль ESP8266, и аудиопоцессор TDA7419 имеют (согласно их даташитам) логику цифровых шин, совместимую с 3,3в. Что-то не хотелось мне заранее закладывать порок в устройство, т.е. запитывать цифровые шины указанных выше элементов непосредственно от соответствующих портов контроллера. Поэтому были применены схемные решения, адаптирующие логические уровни. См. соответствующие элементы схемы в этих цепях. А именно: R9 и диод, работающий на ограничение максимума напряжения на шине Rx UART контроллера - Tx UART модуля ESP8266; диод и R14 на шине Tx UART контроллера - Rx UART модуля ESP8266. По условию протокола работы UART обе линии шины в режиме молчания имеют высокие уровни, таким образом указанная цепь при передаче всего лишь сбрасывает в логический ноль эту линию шины, а единица же на ней восстанавливается сама за счёт подпорки R14 к 3,3в питанию, когда это допустит контроллер. – Всё работает! Проверено! Особо здесь хотелось бы отметить, что контакт разъёма TXD следует понимать как контакт для подключения TXD же контакта модуля ESP8266, и ведёт эта цепь на Rx UART контроллера. А, соответственно, контакт разъёма RXD следует понимать как контакт для подключения RXD контакта модуля ESP8266, и ведёт эта цепь на Tx UART контроллера. НЕ ПЕРЕПУТАЙТЕ! Остальные же контакты интерфейса модуля ESP8266 включены согласно схеме, рекомендуемой от производителя: вывод RC5 контроллера разрешает работу модуля ESP8266, вывод RB7 – обеспечивает аппаратный сброс модуля ESP8266, посредством открывания транзистора VT1. GPIO не используются, но подперты к 3,3в питанию согласно рекомендации. Аналогично и решение для шины IIC аудиопроцессора. По условию аппаратного функционирования шины IIC ни устройство-мастер шины, ни управляемое устройство не подпирают сами свою шину к напряжению питания, а, напротив, мастер «дёргает» внешне подпёртую шину к массе. Поэтому шина была попросту подперта к специально созданному логическому уровню 3,3в. В схеме обеспечено питание 3,3в для ESP8266. Микросхемный стабилизатор AME1085DCBT может быть заменен на любой подходящий. Думаю, правда, что маломощный может перегреться. LCD индикатор использован дешёвый китайский стандартной серии 1602: 2 строки по 16 знакомест, купленный здесь: https://ru.aliexpress.com/. Поэтому вся информация выводится на него в англоязычном варианте. Кстати говоря, приложения для андроид-устройств – напротив сделаны так, что информация выводится на русском языке! Конструктивно плата модуля контроллера произведена методом лазерно-утюжной технологии. Чертеж платы изображен на рис.2. Полную документацию на всё устройство в различных форматах Вы можете скачать по ссылкам внизу статьи (там же и lay-файлы для плат). Рис.2. Чертеж платы контроллера с позиционными обозначениями компонентов. Вид со стороны металлизации. Фото собранного модуля сверху и снизу см. рис.3 и 4. Рис.3. Внешний вид модуля контроллера сверху. Рис.4. Внешний вид модуля контроллера снизу. ВНИМАНИЕ! При монтаже не забудьте установить перемычку между 8 и 19 выводами контроллера (см. чертёж платы). Запаяйте её в плату самой первой.
Модуль аудиопроцессора. Схема модуля аудиопроцессора не содержит каких-либо оригинальных решений. Она - та же, что и в серийно выпускаемых промышленностью устройствах. См. рис.5. В своей конструкции я не стал мудрить с внешними DSO цепями. И без них диапазон регулировок достаточно широк. Вывод аппаратного “mute” не задействован, хотя и выведен на разъём модуля. Мною реализован софтверный режим приглушения звука. Детали использовал типов рекомендованных к использованию в устройствах звуковых трактов. Воможно Вам придётся экранировать модуль аудиопроцессора от наводок со стороны модуля WiFi ESP8266. Это по ситуации… Мой вариант аудиопроцесора (имею ввиду всё устройство) конструктивно выполнен в виде отдельного прибора. Поэтому было удобно входные/выходные разъёмы смонтировать тут же, на плату аудиопроцессора. Разъёмы использо-вал от автомагнитол. Рис.5. Схема модуля аудиопроцессора. На рис.6 – чертёж платы. Вид со стороны металлизации.
Рис.6. Чертёж платы аудиопроцессора с позиционными обозначениями элементов. Вид со стороны металлизации. На рис.7 и 8 – фото модуля сверху и снизу. Рис.7. Внешний вид модуля аудиопроцессора сверху. Рис.8. Внешний вид модуля аудиопроцессора снизу.
На рис.9 показано назначение разъёмов устройства. Рис.9. Назначение разъёмов аудиопроцессора.
Сетевой модуль WiFi ESP8266. Пришло время поговорить об организации WiFi связи на устройстве. Для понимания сути процесса связи устройств по сети WiFi рекомендую хотя бы поверхностно ознакомиться с принципами реализации связи устройств по каналам WiFi. Материалов полно в инете. Не буду даже давать каких-либо ссылок. С точки зрения структуры WiFi сети сам головной модуль конструкции является специфическим сервером с точкой доступа. На практике это выглядит так: включив головное устройство, через небольшой промежуток времени, Вы можете наблюдать на любом стороннем компьютере, имеющем сетевую карту WiFi, появление новой точки доступа сети с идентификатором, заложенным в применённый Вами модуль ESP8266. Ваше андроид-устройство с ЗАПУЩЕННЫМ на нём приложением является клиентом этого сервера. Между сервером и клиентом мной осуществлён НЕстандартный специальный протокол взаимодействия (с PIC16F876A сильно не разбежишься. Да и не надо. Всё в рамках достаточного.), но в рамках стандартного TCP/IP протокола WiFi сети. В качестве сетевого модуля мной был использован популярный ныне производственный китайский недорогой модуль ESP8266-01, купленный здесь: https://ru.aliexpress.com/. См. рис.10 и 11. Рис.10. ESP8266-01 аверс. Рис.11. ESP8266-01 реверс. Вообще, для начала, рекомендую ознакомиться с данным модулем, его функционалом и методами настройки, изучив внимательно материалы с сайта: https://esp8266.ru/. Там найдёте ответы на практически все вопросы касаемо ESP8266-01. Здесь опишу только важные моменты для обеспечения работоспособности модуля в конструкции. Подготовка модуля. Для обеспечения нормальной работоспособности модуля ESP8266-01 в конструкции требуется прошить и настроить его. Делается это с компьютера (в т.ч. можно с ноутбука и т.п.), имеющего операционную среду Windows и разъёмы USB (подробно читайте в материалах указанного выше сайта). Для осуществления указанных операций потребуется так же наличие какого-либо USB-to-UART адаптера с логикой 3,3в (!) на шине UART. Я приобрёл (всё там же) вот такой см. рис.12 и 13. Рис.12. USB-to-UART аверс. Рис.13. USB-to-UART реверс. Соберите временную (ну как сказать!) схему, которая поможет Вам осуществить процесс (см. рис.14). Рис.14. Схема для процесса прошивания и отладки модуля. Для тех, кому ещё не понятна распиновка модуля см. рис.15. Рис.15. Распиновка ESP8266-01. Вид со стороны чипов. Подготовьте на компьютере необходимую для работы среду. А именно:
В плане настройки модуля могу ещё сказать, что сеть, которую будет давать при описанной настройке модуль, открытая: не имеет пароля и не шифрует данные. Не вижу смысла делать её с WEP или WPA: как в неё кто-нибудь войдёт?! Но всё же на всякий случай, для тех, кому понятно как работать с ESP8266 и хочется сеть защитить, скажу: есть в протоколе AT-команд модуля команды, позволяющие изменить, например, идентификатор сети, даваемой модулем; установить режимы WEP или WPA. Дерзайте! Приложение, устанавливаемое на андроид-устройство (клиент), всё правильно обслужит. В отношении запитки модуля хотелось бы добавить, что при сборке конструкции рекомендую прямо на разъём для подключения модуля (имеется ввиду разъём, непосредственно в который будет включен модуль), в цепь питания, смонтировать электролитический конденсатор ёмкостью не менее 470мкф X 6,3в. Продолжим далее о конструкции. Блок питания: используйте любую схему, дающую +5в и +9в стабильные, хорошо отфильтрованные питания. Ток нагрузки не превышает 0,7а. Прошивка контроллера. При прошивке должны быть прошиты: и память программ, и память данных, и регистр слова конфигурации. Единый файл прилагается (см. ниже). На всякий случай - слово конфигурации ADDRESS 2007h:
Первое включение. Если при включении собранного устройства через 2-3 сек. увидите на индикаторе сообщение “SERVER_OK” – значит, всё хорошо. Краткий мануал управления устройством посредством собственной клавиатуры. Собственный интерфейс управления устройством незатейливый и интуитивно-понятный. Кнопка «выбор параметра» (S1 см. рис.1.) переключает последовательно основные параметры звука. Если остановиться на конкретном параметре, например на “TREBLE”, и нажать кнопки «прибавить» (S3) или «убавить» (S4), то будет изменяться уровень основного параметра – тембра ВЧ. Это будет отражено на индикаторе. На индикатор почти во всех режимах выводится информация в комплексном виде. То есть, например, при регулировке уровня тембра ВЧ Вы также будете видеть параметр выбранной частотной оси для полосы регулировки ВЧ. Кнопка же «субменю параметра» (S2) как раз и служит, чтобы переключать другие подпараметры выбранного основного параметра. Например, в нашем случае с тембром ВЧ, если ВЫ нажмёте эту кнопку, то увидите на дисплее надпись: “TREBLE CEN.FREQ.”. Теперь кнопками «прибавить»/«убавить» Вы сможете переключать уже этот параметр и наблюдать его изменение на дисплее. Далее Вы можете нажать кнопку «субменю параметра», и попадёте тогда снова в меню регулировки собственно тембра ВЧ (только два управляемых параметра для ВЧ заложены в микросхему TDA7419). А можете нажать «выбор параметра», и окажетесь тогда в меню регулировки тембра СЧ. Обе кнопки: «выбор параметра» и «субменю параметра» переключают свои меню последовательно «по кругу». С кнопкой приглушения, думаю, всё понятно.
Использование устройства на платформе андроид для управления аудиопроцессором.
Для того, чтобы эффективно наблюдать текущее состояние устройства целиком и оперативно им управлять, необходимо воспользоваться планшетом с размером экрана от 5,7”. Если такового нет, а есть, например, смартфон или маленький планшет – не беда: мною написаны два варианта приложения для разноразмерных андроид-устройств (скачайте по ссылке внизу статьи). MyEqualizer – пакет для достаточно больших устройств. MiniEqualizer – пакет для маленьких устройств. Оба пакета имеют одинаковый функционал, но разную графическую компоновку виджетов в окне активности. Приложения писались в режиме совместимости с платформами андроид версий от v2.2 (API8) до v5.0 (API21), что охватывает в основном все бюджетные устройства. Думаю, будут работать и на других версиях. ВАЖНО, чтобы на устройстве была установлена СВЕЖАЯ ВЕРСИЯ JAVA! Имейте также ввиду, что приложения писались под стандартную дефолтную тему андроид. Как они будут выглядеть, если у Вас установлена кастомная тема, я не знаю. Смотрите и рулите сами. Приложения тестировались и отрабатывались на бюджетных решениях: PRESTIGIO MULTIPAD PMP5580C_DUO планшете и SAMSUNG GALAXY S DUO GT-S7562 смартфоне. Тест показал отличные результаты: всё функционирует как и было задумано. Русско-язычный интерфейс приложений интуитивно-понятен, поэтому не буду здесь его подробно описывать. Кто желает, может попросту скачать приложения (по ссылке внизу статьи), установить, запустить в демо-режиме (есть там такой режим) и всё там посмотреть и «потрогать». Скажу лишь пару слов о первом запуске приложения. Первым делом, как только Вы запустите установленное приложение, Вам будет предложено создать профиль целевой сети. Для этого сначала включите головное устройство – сам аудиопроцессор, а затем нажмите соответствующую кнопку приложения. Вас перебросит на страницу управления настройками сетей WiFi. Включите WiFi (если выключен), дождитесь отображения всех доступных точек доступа, выберите: подключиться к целевой (будет иметь идентификатор Вашего модуля ESP8266), установите параметры (пароль н.п. А в моём случае нет в нём необходимости: сеть открытая. Кому и зачем в неё влезать?!) и в завершении нажмите хардварную кнопку «возврат» на андроид. Приложение запомнит созданный Вами профиль и, если Вы профиль этой сети не удалите в дальнейшем, будет входить автоматически при запуске в эту сеть, даже если устройство было подключено Вами в другую сеть (оно переподключится). Но помните! Точку доступа даёт головное устройство – сам аудиопроцессор, и поэтому НЕ забудьте его ВКЛЮЧИТЬ СНАЧАЛА и дождаться появления сети. После подключения в целевую сеть андроид-устройство установит состояние своего интерфейса в соответствие с состоянием настроек аудиопроцессора (на любом этапе его работы). Конечно, из-за помех могут случаться и осечки – не беда: перезапустите приложение. Помните, чтобы аудиопроцессор работал Вам не нужно постоянно держать планшет/смартфон включенным и приложение запущенным. Настроите на свой вкус и закрывайте приложение. Нужно будет изменить какую-либо настройку – снова запустите приложение и настраивайте. ПРИЛОЖЕНИЕ ПРИ КАЖДОМ ЗАПУСКЕ ОПРАШИВАЕТ СОСТОЯНИЕ АУДИОПРОЦЕССОРА и ДОСТОВЕРНО УСТАНАВЛИВАЕТ СВОЙ ИНТЕРФЕЙС В СООТВЕТСТВИЕ С ТЕКУЩИМ СОСТОЯНИЕМ РЕГУЛИРОВОК АУДИОПРОЦЕССОРА. Индикатор на головном устройстве комментирует все процессы работы с управляющим андроид-устройством. Если Вы нажмёте какую-либо кнопку на аудиопроцессоре, запущенное на планшете/смартфоне приложение сразу закроется. Нет смысла в одновременном дублировании управления. Хочу обратить Ваше внимание ещё на один момент. При включении питания, головное устройство инициирует регистры TDA7419 в определённое мной дефолтное состояние. Т.е. устройство сразу даёт настроенный звук. Если по каким-то причинам Вам не подходит созданный мной профиль инициальных умолчаний, то Вы можете с андроид-устройства изменить их. Настройте звук и режимы на свой вкус, войдите в меню дополнительных опций “***” и выберите «сохранить настройки как стартовые умолчания». После этого, при следующем включении аудиопроцессор проинициирует именно эти, Ваши, настройки. Можно и назад всё вернуть – есть такая опция. О программном обеспечении. Прошивку контроллера (о ней писалось выше) и приложения для андроид-устройств (пакеты .apk) Вы можете скачать по ссылкам, приведенным ниже. Для заинтересованных людей выкладываю здесь же проекты (исходный код) как ПО контроллера, так и своих приложений. А вдруг понадобится кому чем-то по WiFi управлять, а тут и готовое решение. Код очень подробно закомментирован и поэтому здесь ничего описывать не буду. Код для процессора написан с помощью компилятора MikroC for PIC v.4.60.0.0. Проекты приложений созданы в среде: Eclipse IDE for Java Developers, ver. Luna Service Release 1a (4.4.1) + jre1.8.0_25-b18 + Android Studio 1.0.1 build 135.1641136. Можете использовать любые куски кода в своих проектах. Если заметите недоработки, сможете усовершенствовать, пишите мне: trifonidi@yandex.ru . Буду очень рад конструктивным предложениям! В заключении этой статьи хочу выразить глубочайшую благодарность и уважение Нашему РАДИОКОТУ, а также всем другим ресурсам, публикующим замечательные материалы, доступные для увлечённых людей.
Трифонов О.Г., г. Данилов, Ярославской обл. Файлы и ПО, необходимые для создания конструкции:
Файлы: Все вопросы в Форум.
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |