Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как подружить LPC1768 и TLV320AIC23B?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Crusoe
Горожу первую свою цифровую плату. wink.gif
Имею LPC1768 (100 ног) и TLV320AIC23B (28ног)
Хочу немного обработать аудио.

К МК прицеплен кварц 12МГц.
К кодеку ничего не прицеплено.
Планируется, что МК будет мастер и на передачу и на приём по I2S.
Можно же так?

Собственно, к МК вопросов нет - задействую ноги 76-81.

Правильно ли я понял, что чтобы передать кодеку данные
I2STX_SDA подключаем к DIN
I2STX_WS подключаем к LRCIN
а I2STX_CLK надо вести к XT1/MCLK (25й ноге кодека)
На этой картинке так
http://www.rockbox.org/wiki/pub/Main/LyreP...rd-26012008.jpg

А чтобы считать данные, надо
I2SRX_SDA к DOUT,
I2SRX_WS к LRCOUT,
а I2SRX_CLK вести к BCLK (нога №3)?

Спасибо, что выслушали wink.gif
Alex11
Не знаю, что там на LPC, а на кодеке, судя по названиям, I2STX_CLK нужно подключать к BCLK, а MCLK нужно подключать к неким клокам в нужное количество раз большим, чем BCLK. Причем это количество раз должно строго сходится с тем, что Вы пропишете в кодек командами управления, иначе будете получать бред. Вообще-то 23 кодек уже староват и кривоват. Лучше возьмите AIC32. Там кораздо проще выставлять правильную частоту, т.к. внутри есть PLL, причем с дробными коэффициентами. И лучше, в любом случае, ставить кодек мастером - дешевле обойдется.
Crusoe
Спасибо.
Боюсь, что 32QFN моими ручонками будет не припаять, даже если плата нормально вытравится ;(

23й выбрал потому что они есть у нас в сельпо, TSSOP28, недорогой и там есть усилитель для наушников.
Может быть тогда посоветуете по моим параметрам что-то. Не обязательно от ТИ. Главное, чтоб в Питере найти реально было.
Crusoe
Полистал инет немного.

Правильно ли я понял, что
на ноге МК CLKOUT (pin 43 LQFP100 LPC1768)
надо выводить ту самую частоту, допустим, 256Fs (256*48000=12.288МГц)
на ногу MCLK кодека?

И другие сигналы I2S (I2SRX_SDA, I2SRX_WS и а I2SRX_CLK) д.б. сконфигурированы пропорционально этой частоте?
Alex11
В общем, да. MCLK нужно подать 12MHz или 12.288, выставить правильно SR и BOSR - в соответствии с требуемым сэмплингом и, если Вы его хотите все-таки слейвом, то ровно эти правильные частоты BCLK и FS на него подать. Если мастером - он их сам выработает. Про посоветовать что-то еще - напишите, какие параметры нужны. AIC23 всем хорош, но шумноват. Он специфицирован на А-взвешенный сигнал, а дальше (на высших частотах) шум довольно большой.
Crusoe
Alex11, спасибо Вам большое за помощь.

Посмотрел юзермануал про режимы I2S на LPC.
Да, я уже хочу кодек мастером поставить wink.gif

Я так понял, что тогда МК синхронизировать не надо будет? (в крайнем случае 12МГц будет полезно для USB, но я его пока не планирую)
Достаточно будет настроить на мк PLL от внутреннего генератора.
И по входящим тактам BCLK он сам всё будет считать и на передачу и на прием.

А к кодеку надо прицепить кварц и по SPI настроить его мастером.

Еще не совсем понятно как тогда подключать BCLK кодека - одновременно к I2SRX_CLK и I2STX_CLK на мк?

И с прерываниями пока только в общих чертах интуитивно понятно, что если их разрешить, то они будут возникать. wink.gif
И записывать входящие данные во входное FIFO, а мой обработчик будет класть ответ в выходное.
Но это я сейчас разузнаю.

А про требования - думаю, всё же, мне этот 23B подойдёт. За качеством я пока не гонюсь.
Вообще, гитарный сигнал режется выше 6-7кГц напрочь, но использовать кодек 22кГц почему-то не хочется wink.gif.
В целях ознакомления с ARM и методами ЦОС, планирую соорудить себе подобие гитарного процессора, и, что важно, с выходом на наушники.
(+ знаковый экранчик + 5 кнопок)
Пока главное - доступность и возможность спаять всё в домашних условиях. wink.gif

Alex11
Да, так. Но к кодеку не кварц, а генератор. BCLK одновременно на TX и RX.
Про шум наверху я имел ввиду внеполосный, там где его не должно быть напрочь, т.е. если частота дискретизации 44100, то шум возникает существенно выше 22050. Я сейчас уще не помню где точно, давно работал с этим кодеком.
Crusoe
Понятно.
Еще раз огромное спасибо.

А почему генератор?
В доке написано:
The TLV320AIC23B features an internal Oscillator that, when connected to a 12-MHz external crystal, provides a system Clock to the DSP and other
peripherals at either 12 MHz or 6 MHz, using an internal Clock Buffer and selectable divider.

Такое же подойдёт?
http://www.megachip.ru/item.php?item_id=1050326
Alex11
Да, склероз. Забыл уже, что на него можно кварц вешать. Кварц подойдет.
Crusoe
Спасибо еще раз за науку.

Почти дорисовал плату.
Только пулапы на I2S забыл. wink.gif
В апноте они, вроде бы, нарисованы для входящей линии.

Ура! Скоро буду травить-паять. wink.gif
Alex11
А кому они нужны? AIC23 имеет нормальные выходы. Или у LPC окрытый сток? Хотя это странно, скорость довольно высокая, обычно так не делают.
khach
Посмотрите http://o28.sischa.net/fifisdr/trac/wiki/HardwareKonzept- связка LPC1758 и UDA1361TS с выходом на USB по DMA. Там же рядом и исходники лежат. Это если нужен аудиовход. Аудиовыход вполне нормально реализован в code bindle для LPC1700
Crusoe
Alex11 да, похоже, без пулапов обойдусь. В какой-то апноте их видел. От LPC28XX кажется. Спасибо wink.gif
khach Спасибо. Посмотрю. Ich spreche kein Deutsch noch %( Но всё-равно Danke %)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.