![]() |
регулировка звука аудиопроцессором TDA7442 + ардуино
Вложений: 6
Поскольку уже со всем разобрался и сделал рабочую модель скетч для TDA7442D можно посмотреть здесь Итак, задача Нужно регулировать громкость в машине. Линейный выход с звуковой карты идёт на звуковой процессор tda7442и после него – на усилитель мощности. ПЕЧАТКА + скетч Вложение 45875 картинки вложения опытов пусть пока останутся. |
Вложений: 1
Сделал тестовую печатку.
Вложение 44888 Запаял железо согласно даташиту и подключил ардуину мегу 2560 Вложение 44890 Вложение 44891 Вложение 44892 ТЕПЕРЬ СОФТ Для начала открываем даташит и читаем 4 SOFTWARE SPECIFICATION И там ищем chipadress, то есть I2C адрес чипа (звукового процессора) Для TDA 7719 1000100 Открываем виндовый калькулятор вид – программист. Выбираем BIN – 8 байт (то есть цифровой вид ОДИН-НОЛЬ, 8 символов) Забиваем 1000100 и тыкаем в HEX. Видимцифры44. Значит I2C адреc TDA 7719 0x44 Для tda7442 адрес 0x80 (8 страница мануала) 5 DATA BYTES Address = 80(HEX) В скетч заливаю: PHP код:
Вложение 44893 Синяя – SCL Красная – SDA (наши данные). Если Посылать данные на другой адрес (например 0х44), то форма красной линии меняется. Если я загружаю другой скетч, то осциллограмма не меняется: PHP код:
Как послать данные, какие послать данные, и как увидеть реакцию звукового проца(должен ли он что либо отвечать.:be: итак, запустил этим кодом. не получалось потому, что адрес в мануале указан 80 (hex), а в bin адрес 1000000. А адрес 1000000 в BIN это 40 HEX! Прямо в мануале обманули?:shok: Итак, I2C адрес tda7442 HEX(0x40) или 0b1000000 Сканер I2C в ардуино тоже показал 0x40. Работоспособность видно на осциллограмме. Вложение 44902 По массам: Массу DIGgnd можно не подключать (только к ардуине) Масса Agnd подключается на минус источника питания (9В) Подключение к ардуине: ардуино мега 2560 tda7442 +5В ______________ на резисторы подтяжки шины - ______________ - на DIGgnd 20pin ______________ - SDA 21pin______________ -SCL PHP код:
PHP код:
|
Молодец!!! Хотел написать чтоб попробовал 40, так как я не понял за что отвечает буковка B, а вообще она может быть или 0 (в итоге 0x40) или 1 (в итоге 0x80).
|
Цитата:
Адрес в мануале явно указан, так что ХЗ. буковку видел только в субадресе B = 1 incremental bus; active B = 0 no incremental bus; И потом ( пока еще рано) у меня возникнет вопрос, как управлять этой штукой в режиме incremental bus ( 7 стр мануала, я так понял это когда CHIP ADDRESS --- SUBADDRESS --- DATA 1 to DATA n) И надо ли это. По идее шину разгружать должно при большом объеме данных. А на шине и так пару устройств... |
Цитата:
|
Цитата:
http://easyelectronics.ru/img/starters/IIC/IIC-SLA.GIF Сам адрес состоит из семи бит (вот почему до 127 устройств на шине), а восьмой бит означает что будет делать Slave на следующем байте — принимать или передавать данные. Девятым битом идет бит подтверждения ACK. Если Slave услышал свой адрес и считал полностью, то на девятом такте он придавит линию SDA в 0, сгенерировав ACK — то есть Понял! Мастер, заметя это, понимает, что все идет по плану и можно продолжать. Если Slave не обнаружился, прозевал адрес, неправильно принял байт, сгорел или еще что с ним случилось, то, соответственно, SDA на девятом такте будет прижать некому и ACK не получится. Будет NACK. Мастер с горя хлопнет водки и прекратит свои попытки до лучших времен. После адресного пакета идут пакеты с данными в ту или другую сторону, в зависимости от бита RW в заголовочном пакете. Вот, например, Запись. В квадратиках идут номера битов. W=0 http://easyelectronics.ru/img/starte.../I2C-2byte.GIF Если смотрим в мануал, то адрес у нас S 100000 A 0, то есть косяк в физическом адресе звукового проца и обработкой его WIRE. КОгда я писал все нули в нужном количестве, wire смещала первую единицу левее и на физику она не попадала. Поэтому в первой осциллограмме запрос выглядит, как все нули. Соответственно ответить некому. Короче, используем скетч поиска I2C устройств. Ладно, пойду припаивать вход и выход линейные и дальше с софтом гуляться. Наушники эта TDA7442D потянет? |
итак
подключил вход к джеку наушников телефона выход - на линейный вход активной акустики. Прицепил 2 кнопки для теста ( подтяжку не надо, использую внутренние резаки; один конец на минус, второй на 52 и 53 пины) скетч, при нажатии кнопок громкости в ком порт идут значения громкости 0-80 звук есть, 80-255 Mute. Монитор ком порта работает только когда есть питание на TDA7442! PHP код:
|
Еще по качеству звука -
Источник - телефон играет флак через штекер наушников Эквалайзер отключен на телефоне и на tda7442. С выхода tda7442 звук идет на линейный вход ресивера Yamaha RX-V1071, который выводит звук на колонки Yamaha ns-f700. Ардуина питается от ЮСБ компа, 7442 питается от домашнего блока питания (12В) через КРЕНку (8В). Так вот, звук НОРМАЛЬНЫЙ. Нет хрюкания, жевания, "басы басовые, верха серебристые." |
а вот простой готовый скетч для регулировки громкости, собирай, прошивай ардуину и регулируй. Начальная громкость -35dB. Никаких плюшек, только громкость!
PHP код:
|
И тут Остапа понесло...:big: в хорошем смысле:smile1:
|
Часовой пояс GMT +4, время: 04:57. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot