|
Как связать аудио интерфейс I2S с DSP |
|
|
|
Dec 19 2009, 11:28
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(aaarrr @ Dec 19 2009, 14:21)  Последовательные порты большинства DSP "умеют" I2S сами по себе. можно чуть подробней на примере TMS320C672x какие именно порты используются для I\O I2S? McASP?
Сообщение отредактировал Aleksey.z - Dec 19 2009, 11:37
|
|
|
|
|
Dec 20 2009, 17:49
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
DSP для обработки аудио потока, CPLD для преобразование форматов, ARM для управления этим всем хозяйством. Теперь вот не понятно как это все соединять во едино и не понятно по каким интерфейсам, например как организовать память SDRAM, соединять ARM и DSP к одной шине памяти или каждый к отдельной. Как вообще принято организовывать взаимодействие ARM и DSP, у ti есть dMAX, стоит ли его использовать или хватит I2C, SPI? Так же не понятно как это все завязать на CPLD, с точки зрения гибкости я бы все что можно на нее завязал но тогда не хватит ножек. Может кто подскажет kit у которого можно взглянуть схему и что бы на борту были и DSP и ARM? На сколько я понимаю I2S, SPI это для управления и для прокачки данных они не подходят, а мне бы хотелось иметь возможность оперативного и не ограниченного доступа к данным DSP от ARM и наоборот, так же необходимо что бы эти данные могли прокачиваться через CPLD дабы изменять их формат. Вот что то типа такого, проблема в том что я за ранее не знаю что мне может понадобится в будущем девайсе поэтому хочу заложить универсальную структуру что бы потом при программировании не чесать репу и вспоминать почему я не проложил "этот"
Сообщение отредактировал Aleksey.z - Dec 20 2009, 18:07
|
|
|
|
|
Dec 20 2009, 19:10
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(aaarrr @ Dec 20 2009, 21:35)  Уточните сначала: 1. Какой именно DSP. 2. Какой именно ARM. 3. Зачем вообще оказалась нужна CPLD. 4. Роли и задачи каждого компонента в системе. Устройство предназначено для обработки и воспроизведения высококачественного аудио. Также оно предназначено как эволюшен кит для освоения ARM9, DSP, CPLD на плате предполагаются слоты расширения для ADC, DAC. например будет возможность воткнуть в это устройство платы с различными микросхемами и реализацией ADC, DAC для сравнения их характеристик. DSP планирую TMS320C6720 на нем будут висеть задачи по обработке I2S от плат расширения, полосовая фильтрация, усиление, задержка и так далее, во общем различные алгоритмы ЦОС ARM AT91SAM9XE512 для связи с различной периферией, изернет, usb, flash. Для управления по SPI другими микросхемами то как приемник spdif, для управления начинкой на платах расширения. Понимаю что это как из пушки по воробьям но это нужно для обучения ARM9. CPLD для связи плат расширения и всего остального хозяйства. Оно может и не нужно но я хочу получить некую гибкость при связи этого всего хозяйства. также на плате будет дистребютор клока. Нужна максимальная гибкость и расширяемость без переделки всей платы в дальнейшем. Вот на пример я не знаю, понадобится мне внешняя SDRAM в CPLD и ARM9, но так как стоит она копейки, а устройство не серийное то почему бы не добавить и т. д. Сейчас чешу репу как и по каким интерфейсам это все срастить что бы в дальнейшем при программировании и не возникло проблем. Вот пример, на ARM9 я получаю аудио данные через изернет, мне нужно по внешним поступающим в ARM9 тактам БитКлок и ЛевыйПравыйКлок выдавать данные I2S, то есть ARM будет работать слэйв режиме. В каком виде она их будет выдавать? Смогу ли я их преобразовать силами ARM в нужных фармат I2S или для этого потребуются ресурсы CPLD?
Сообщение отредактировал Aleksey.z - Dec 20 2009, 19:28
|
|
|
|
|
Dec 20 2009, 19:45
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Aleksey.z @ Dec 20 2009, 22:10)  Вот на пример я не знаю, понадобится мне внешняя SDRAM в CPLD и ARM9, но так как стоит она копейки, а устройство не серийное то почему бы не добавить и т. д. Для процессора понадобится, иначе нет смысла его ставить и осваивать, можно сразу заменить на SAM7X. Вместо CPLD (которой, кстати, SDRAM - как жучке пятая нога) лучше поставить FPGA. Процессор с DSP придется "дружить" по последовательным интерфейсам - SPI/SSC на одной стороне и SPI/McASP на другой. Цитата(Aleksey.z @ Dec 20 2009, 22:10)  Вот пример, на ARM9 я получаю аудио данные через изернет, мне нужно по внешним поступающим в ARM9 тактам БитКлок и ЛевыйПравыйКлок выдавать данные I2S, то есть ARM будет работать слэйв режиме. В каком виде она их будет выдавать? Смогу ли я их преобразовать силами ARM в нужных фармат I2S или для этого потребуются ресурсы CPLD? Может. Хотя атмеловские SSC не слишком хорошо дружат с I2S, есть некоторая недоделанность. Но такие вещи в любом случае надо выяснять в процессе проектирования, а не после него.
|
|
|
|
|
Dec 20 2009, 21:00
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(zltigo @ Dec 20 2009, 22:47)  Тогда третий лишний. Достаточно двух, например, ARM+FPGA Если FPGA так хороши в качестве сигнальников то почему последние до сих пор выпускают? Низкое энергопотребление? Цитата(aaarrr @ Dec 20 2009, 22:45)  Процессор с DSP придется "дружить" по последовательным интерфейсам - SPI/SSC на одной стороне и SPI/McASP на другой. А DMA? А если потребуется большие потоки перекачивать?
Сообщение отредактировал rezident - Dec 20 2009, 21:00
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
|
Dec 20 2009, 21:07
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Aleksey.z @ Dec 21 2009, 00:00)  Если FPGA так хороши в качестве сигнальников то почему последние до сих пор выпускают? Низкое энергопотребление? Традиции, привычки, наработки, ниши, миграция DSP в сторону универсальных контроллеров общего применения. Разговоры за pro-contra можете найти на форуме, впрочем, как и многое другое. Можете и ARM выбросить, оставив DSP, например, Blackfinn. Третий лишний.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Dec 20 2009, 21:35
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
тут по ходу и второй и третий лишние, а не только третий. Речь, как я понимаю, о скоростной плавающей точке - так оставьте один TMS320C674x, там периферии - упериферииться, вплоть до SATA. А если уж очень хочется именно ARM по каким-то там религиозным соображениям и возни по двум раздельным софтинам, совместно работающим - возьмите например OMAP-L138 - там уже все решения по связи обоих ядер (674х и АРМа) решены без Вашего участия. Да и кит есть, на котором можно поэкспериментировать. А вообще, по опыту, то, чем занимается лишний АРМ (другой внешний CPU), всякие там рюшечки-управлюшечки, в большинстве случаев жрет не больше 5-8% производительности DSP, если реализовать в нем же. Имеется в виду загрузка ядра, а не память. Память это уж сколько сами воткнете. Плюс не надо тратить производительность обоих сторон на перекачку потока между собой.
|
|
|
|
|
Dec 20 2009, 21:53
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(SM @ Dec 21 2009, 00:35)  тут по ходу и второй и третий лишние, а не только третий. Речь, как я понимаю, о скоростной плавающей точке - так оставьте один TMS320C674x, там периферии - упериферииться, вплоть до SATA. А если уж очень хочется именно ARM по каким-то там религиозным соображениям и возни по двум раздельным софтинам, совместно работающим - возьмите например OMAP-L138 - там уже все решения по связи обоих ядер (674х и АРМа) решены без Вашего участия. Да и кит есть, на котором можно поэкспериментировать. А вообще, по опыту, то, чем занимается лишний АРМ (другой внешний CPU), всякие там рюшечки-управлюшечки, в большинстве случаев жрет не больше 5-8% производительности DSP, если реализовать в нем же. Имеется в виду загрузка ядра, а не память. Память это уж сколько сами воткнете. Я планирую 8 слотов на прием и 8 на выход. Каждый слот имеет интерфейс I2S, I2C, SPI Также будет пара слотов для ADC с параллельным интерфейсом. Ну и вспомогательные слоты для плат расширения типа ресивер трансмиттер SPDIF, дисплей, карты памяти и т. д. завяжу ли я это все добро на один DSP? То что производительности хватит это спору нет, а портов? Как по рекомендовал zltigo я наверно остановлюсь на связке DSP+FPGA На FPGA повешу все разъемы может в будущем найду для нее работу. А теперь другой вопрос, какой DSP применять, TMS320C6720 не подойдет так как периферии мало. Критерии, простой в освоении, всякие там ассемблеры изучать нет желания, только C.
|
|
|
|
|
Dec 20 2009, 22:08
|
Гуру
     
Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881

|
Цитата(Aleksey.z @ Dec 21 2009, 00:53)  А теперь другой вопрос, какой DSP применять, TMS320C6720 не подойдет так как периферии мало. Критерии, простой в освоении, всякие там ассемблеры изучать нет желания, только C. Так я уже сказал - TMS320C674x (там их много разных, но все шустроплавучие, и все аудиоориентированные). Компилятор С у него достаточно мощный и неплохо оптимизирующий в т.ч. DSP-алгоритмы, но надо почитать об особенностях оформления циклов и функций (restrict, прагмы и интринсики). А на АСМе его программировать себе дороже. Он VLIW-архитектуру имеет, код операции до 256 бит - программирование на его "параллельном асме" может снести крышу неподготовленному программисту. И семейство это новое, которое явно призвано заменить 672х. Интерфейсы карт памяти, дисплея и к SPDIF-портам там есть на борту. Как и USB с Ethernet-ом. ---- кстати насчет FPGA. Ее можно иметь только ради защиты от сдирания девайса, если выбрать с внутренней и реально защищенной флешой, навроде LatticeXP2
|
|
|
|
|
Dec 20 2009, 22:27
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(SM @ Dec 21 2009, 01:08)  ---- кстати насчет FPGA. Ее можно иметь только ради защиты от сдирания девайса, если выбрать с внутренней и реально защищенной флешой, навроде LatticeXP2 А как насчет реализации каких нибудь не достающих функций, хотя я с трудом могу представить что может не хватать в таком комбайне как TMS320C674x, ну мало ли, кашу маслом не испортишь?
Сообщение отредактировал Aleksey.z - Dec 20 2009, 22:27
|
|
|
|
|
Dec 23 2009, 01:21
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(aaarrr @ Dec 23 2009, 03:54)  Доступны-то будут, только производительность совсем другая получится. ну для обработки аудио данных его хватит? А вот этот вариант как TMDXOSKL137BET ?
|
|
|
|
|
Dec 23 2009, 01:27
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Aleksey.z @ Dec 23 2009, 04:21)  ну для обработки аудио данных его хватит? Обработка разная бывает. Если речь идет о девайсе для экспериментов, то наличие плавучки определенно будет плюсом. Цитата(Aleksey.z @ Dec 23 2009, 04:21)  А вот этот вариант как TMDXOSKL137BET ? Хороший вариант.
|
|
|
|
|
Dec 23 2009, 01:51
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(DRUID3 @ Dec 23 2009, 04:38)  уберите от тактовой один-два нолика... Вам хватит? Как вариант ARM от Samsung. 600 MHz, float аппаратный, GCC, можно Linux(а можно и без ОС)... правда еще и туча лишнего  ... А я думал что наоборот из пушки по воробьям собрался стрелять Цитата(aaarrr @ Dec 23 2009, 04:27)  Обработка разная бывает. Если речь идет о девайсе для экспериментов, то наличие плавучки определенно будет плюсом.
Хороший вариант. я правильно понимаю что у TMDXOSKL137BET уже есть jtag эмулятор на борту?
|
|
|
|
|
Dec 23 2009, 01:59
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(DRUID3 @ Dec 23 2009, 04:53)  Ну так действительно, смотря какая обработка то... частота дискретизации 44.1, один стерео канал например нужно реализовать ASRC и фильтр примерно такой объем Цитата(aaarrr @ Dec 23 2009, 04:54)  Есть. (ну не станут же тахасовцы отровенно врать в описании?) ну мало ли, а то мне цена на BH-USB-510L ну совсем не понравилась
|
|
|
|
|
Dec 23 2009, 15:18
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Цитата(blackfin @ Dec 23 2009, 08:24)  Если же алгоритм пишется с нуля, то можно все промежуточные вычисления делать в 32-х битных целых. то есть создавать свою структуру для реализации вещественных?
Сообщение отредактировал rezident - Dec 23 2009, 15:52
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
|
Dec 25 2009, 00:12
|
Местный
  
Группа: Свой
Сообщений: 310
Регистрация: 11-05-09
Из: г. Москва
Пользователь №: 48 909

|
Нашел примеры как сращивают MATLAB и CCS http://cnx.org/content/m22943/latest/Кто нибудь проделывал нечто подобное? Какие версии CCS и MATLAB это потдерживают. Я правильно понял что в состав CCS уже идут модели Simulink *.mdl для различных кит боардов. Но не понятно каким образом происходит связь MATLAB и CCS. Через COM, OLE? В конечном итоге меня интересует, смогу ли я генерировать через выше описанные механизмы если они конечно поддерживаются код C для CCS через визуальную среду Simulink это бы очень облегчило мою работу.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|