"Замполит, чайку?"(с)"Охота за Красным Октябрем".
"Да мне-то что, меняйтесь!"(с)анек.
<-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.
Начал разбираться с управлением ADAU с помощью МК по I2C или SPI. Есть Чиподиповская плата на ADAU1701. Думал на ней потренироваться. Почитал даташит, и понял, что ADAU1701 работает либо в selfboot режиме без МК, либо в режиме I2C/SPI с МК. Я правильно понимаю, что в selfboot режиме управлять ADAU с МК не получится? Чтобы управлять с МК мне нужно работать не в selfboot и прошивку грузить придется тоже с помощью МК?
Глянул даташит на ADAU1452. У нее, в отличие от 1701, как я понимаю, два независимых модуля I2C/SPI. На ней же получится грузить прошивку автономно, без участия МК, а с МК только управлять?
Просто, как засылать команды управления мне вроде понятно, а вот как загнать с МК прошивку, по каким адресам, я пока не догоняю.
Верно. Использую библиотеку SigmaDSP для arduino, на гитхабе. Генерируется прошивка на основе узлов проекта, собранного в Sigma Studio. Каждый раз при включении загружается прошивка и далее можно управлять по I2C. У меня пока что управление громкостью и переключение входов (аналоговый и I2S), в дальнейшем добавится тонкомпенсация. Это касаемо 1701. Насчет 1452 не могу сказать, с ним не работал.
Логично, но возможно сигмастудия шлет еще какие-то команды, переводящие АДАУ в нужный режим.
В даташите есть такой абзац:
The ADAU1701 is a master on the I2C bus during self-boot and
writeback. Although it is uncommon for an application using
self-boot to also have a microcontroller connected to the control lines, care should be taken that no other device tries to write to the I2C bus during self-boot or writeback.
Автоперевод:
ADAU1701 является мастером на шине I2C во время самозагрузки и обратная запись. Хотя приложение, использующее самозагрузку, нечасто также имеет микроконтроллер, подключенный к линиям управления, следует позаботиться о том, чтобы никакое другое устройство не пыталось выполнить запись на шину I2C во время самозагрузки или обратной записи
Но тут явно не говорится, что после самозагрузки можно писать в АДАУ. Они пишут только о том, что шину I2C (которая может быть общей на несколько устройств) во время самозагрузки занимать нельзя (ну это естественно). Хотя, с другой стороны, какой смысл вешать EEPROM, с которой грузится АДАУ, на общую шину? Чтобы использовать оставшуюся память для других устройств? В общем, не понятно.
Alexey-Rus., У Вас writeback используется? Если нет то и переживать не о чем. Он же по внешнему сигналу срабатывает, можно отследить МК и не писать в данный момент. А вообще, 1452 куда как лучше 1701.
viakon, я и собираюсь использовать 1452, но сейчас у меня есть только 1701, на которой хотел отработать управление. writeback не нужен.
А я чёт не догоняю, зачем МК нагружать прошивкой которую можно хранить в EEPROM? Управление же адау делается через её порты т.е. нет нужды в МК.... Я ещё понимаю некие автономные кроссоверы которые равняют АЧХ самостоятельно, но там одним МК не обойтись... В общем не понимаю я зачем прикручивать МК к адау....
МК будет читать команды, идущие от контроллера управления ГУ к родному DSP ГУ, и направлять в АДАУ. Т.е. смысл в том, чтобы управлять АДАУ с крутилок и кнопок ГУ. Задумывается регулировка громкости, НЧ, ВЧ и переключение источников (CD/USB/bluetooth). Через пины АДАУ это можно сделать, но будет кривовато. Поэтому задумывается управление АДАУ по I2C или SPI.
Социальные закладки