реклама на сайте
подробности

 
 
> авр+кодек(воспроизведение), Уважаемые кто что применял
Григорий2000
сообщение May 22 2008, 06:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Уважаемые! Как наиболее просто воспроизвести звук на mega с применением не самого дорогого цап или кодек(ни разу не включал). с качеством не хуже 8 бит 22кГц
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
aaarrr
сообщение May 22 2008, 06:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Если хотите просто, то возьмите любой SPI ЦАП - AD53xx, например.
Если дешево и сердито - I2S ЦАП, например, MAX5556. Потребуется SPI и таймер.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 06:35
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



ad5302 применяется сейчас, но проблема в их доставаемости... хотел заменить на что нибудь по доступнее не сильно увеличиваясь в цене. Интересуют приборы со входомсинхронного выставления сэмпла. Или может кодеки с буфером(такие недорогие существуют в природе?)
I2S - будет дрожание фазы из-за природы сигнала загрузки(отсутствие входа синхронного выставления сэмпла )
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2008, 06:45
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Григорий2000 @ May 22 2008, 10:35) *
Интересуют приборы со входомсинхронного выставления сэмпла. Или может кодеки с буфером(такие недорогие существуют в природе?)

Т.е. стабильную загрузку обеспечить не получается? Боюсь, что тогда остаются только обычные ЦАПы.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 07:00
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



если использовать только таймер и SPI, то при неоднозначности времени вхождения в прерывание по таймеру(даже из-за 1-го и двухцикловых команд) что дает на генераторе 10-12Мгц разницу во времени выполнения последовательности команд загрузки в 0,1 мкс при периоде на 22кгц в 45мкс дает приличный КНИ. что неприемлимо.
Какие могут быть еще варианты. Сейчас применяю также аппаратный выход таймера для загрузки в ЦАП(внутри из входного регистра в выходной).
В кофидеках(по предв информации) требуется тактирование выставления семпла а также и фильтра что в итоге должно дать повышение качества воспроизводимого сигнала. Внимание вопрос: есть такого направления приборы и чтоб за недорого..? А если с буфером хотя-бы небольшим то вообще сказка!
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 22 2008, 07:24
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
если использовать только таймер и SPI, то при неоднозначности времени вхождения в прерывание по таймеру(даже из-за 1-го и двухцикловых команд) что дает на генераторе 10-12Мгц разницу во времени выполнения последовательности команд загрузки в 0,1 мкс при периоде на 22кгц в 45мкс дает приличный КНИ. что неприемлимо.


Не вижу проблем обеспечить точное время начала посылки по SPI (да и вообще, выполнение любых действий), с точностью до такта. Поищите по форуму, тут такое обсуждалось.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 07:45
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Поищщу..
Эта опреация, насколько мне известно, сжирает драгоценное время...
которого и так мало...
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 22 2008, 07:54
Сообщение #8


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Эта опреация, насколько мне известно, сжирает драгоценное время...


Ну тактов 20-30 на выравнивание. Много? У вас же порядка 500 между прерываниями таймера (если 22кГц и 10-12МГц)


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 08:34
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



достаточно много... по результату... есть еще и другие задачи... (чтение at45db)можно конечно пытаться все оптимизировать и наверняка все это получится, но... нехотелось бы все остальное перекраивать, хотя наверное придется, потому что еще требуется дополнительная функция...
А если взять младший SAM7 все это прощще реализуется(всм ногодрыгание в строго определенный момент по таймеру без джиттера)?
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 22 2008, 08:37
Сообщение #10


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А если взять младший SAM7 все это прощще реализуется(всм ногодрыгание в строго определенный момент по таймеру без джиттера)?


В общем случае методы одинаковые.

Да и, кстати, если у вас 8 бит, не погорячились ли Вы, утверждая, что у Вас от джиттера слишком большые искажения?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2008, 08:46
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Григорий2000 @ May 22 2008, 12:34) *
А если взять младший SAM7 все это прощще реализуется(всм ногодрыгание в строго определенный момент по таймеру без джиттера)?

На младшем SAM7 процессор вообще почти не будет напрягаться, только PDC переключать. Джиттера не будет.

Цитата(Rst7 @ May 22 2008, 12:37) *
Да и, кстати, если у вас 8 бит, не погорячились ли Вы, утверждая, что у Вас от джиттера слишком большые искажения?

ИМХО, да. Есть у нас девайс - AVR с 16@22050 I2S кодеком, музыки играет, - искажений не слышно.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 09:13
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



по крайней мере в те времена когда развлекался с ad5302 и упралял загрузкой на выход(LDAC) програмно и пытался синхронизироваться с таймером и получить как раз при потере производительности синхронную загрузку точно в необходимые отсчеты времени с погрешностью в один цикл(там на 7.3728 было дело) то это дрожание в звуке было в принципе незаметно, за исключением появления шипения , которое можно различить в сравнении с например нешипящим источником тако-го же сигнала при наличии высокочастотных составляющих в исходном фрагменте. т.е чем выше частота исходного сигнала, тем выше уровень шума добавляемый джиттером.
Фраза "слишком большие" скорее всего применимо к конкретной задаче и мной вероятно использовано не к месту(без конкретики).
При возможной небольшой разнице в цене суммы mega8+суперпупер цап и sam7 + простой ЦАП хотел услышать возможные проблемы с применением в этом контексте последних. конкретно о ногодрыгании .. нет ли камней в такой реализации... там-же и прерывания ненапрямую на проц и работа с портом помоему не за такт...
расписывать ненужно поверю скорее наслово, и есть ли разница между NXP и Atmel-ом? при отсутствии средств отладки(тока наверное виглер смогу)

Сообщение отредактировал Григорий2000 - May 22 2008, 09:14
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 22 2008, 09:23
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Не устаю повторять. Моторола и TI выпускают готовые кофидеки, в том числе и для CD качества. Там не только кодек, но, что более важно, выходной цифровой фильтр хорошего порядка и качества. Достаточно сложный протокол, но вполне реализуемый.
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 22 2008, 09:58
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



будте так любезны назовите парочку если работаете/работали с ними. с вышеозвученными потребностями что можете рекомендовать?
Go to the top of the page
 
+Quote Post
Ден
сообщение May 22 2008, 10:02
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 128
Регистрация: 21-06-07
Из: Омск
Пользователь №: 28 594



Можно взять например VS1011 или другие её модификации и не дорого и качественно и просто!
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 10:04
Сообщение #16


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



А ещё у ТИ есть МСП430Ф157 стоимостью 4-5 баксов в розницу с ЦАП12 и ДМА на борту.
ДМА модет кидать данные в ЦАП по сигналу прерывания с таймера, пересылка за 1 такт.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
sysel
сообщение May 22 2008, 10:18
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852



AC'97 кодек (например AD1885). Только кварц повесить не 24.57МГц, а меньше (кодеки производства AD такое допускают, не знаю как другие) для того чтоб по SPI успевать.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2008, 10:34
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Григорий2000 @ May 22 2008, 13:13) *
При возможной небольшой разнице в цене суммы mega8+суперпупер цап и sam7 + простой ЦАП хотел услышать возможные проблемы с применением в этом контексте последних. конкретно о ногодрыгании .. нет ли камней в такой реализации... там-же и прерывания ненапрямую на проц и работа с портом помоему не за такт...

С ногодрыганьем на SAM'е плохо: на один "дрыг" нужно минимум 3 такта процессора.

Цитата(Григорий2000 @ May 22 2008, 13:13) *
есть ли разница между NXP и Atmel-ом?

В плане ногодрыганья нет, у NXP думатель быстрее.
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 22 2008, 10:36
Сообщение #19


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
В плане ногодрыганья нет


FastGPIO на LPC обгоняет SAM, но обычный GPIO - медленнее.

Цитата
у NXP думатель быстрее.


Тактовые почти одинаковые. Единственное что, при исполнении из флеша LPC быстрее из-за MAM. Если из озу - то пофиг.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
aaarrr
сообщение May 22 2008, 14:09
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Rst7 @ May 22 2008, 14:36) *
FastGPIO на LPC обгоняет SAM, но обычный GPIO - медленнее.

И правда. Знал о наличии FastGPIO, но не думал, что он аж на локальную шину повешен.

Цитата(Rst7 @ May 22 2008, 14:36) *
Тактовые почти одинаковые. Единственное что, при исполнении из флеша LPC быстрее из-за MAM. Если из озу - то пофиг.

Целых 30% в пользу LPC по тактовой.
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 22 2008, 15:46
Сообщение #21


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Целых 30% в пользу LPC по тактовой.


Тогда уж 27% если сравнивать с LPC210x. wink.gif Если с 213x - то 10% (60 МГц против 55). Но вот DMA в SAM может оказаться очень полезным довеском.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 22 2008, 22:05
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Григорий2000 @ May 22 2008, 12:58) *
будте так любезны назовите парочку если работаете/работали с ними. с вышеозвученными потребностями что можете рекомендовать?

Да их там сотни наименований. Мы работали с телефонными кофидеками (Кодер-Фильтр-Декодер), но попутно, при поиске я видел их вагон и маленькую тележку. Для разных применений, например для CD плееров. Тоесть цифровой сигнал непосредственно поступает в чип а вылазит аналоговый после фильтра.

Дело в том, что для приемлемого качества, после ЦАПа вам придётся городить ещё на паре операционниках фильтр, чтобы приемлемый звук получить. Там это уже сделано за вас.

Мы работали и продолжаем работать с мотороловскими mc145564. Только интеграловского производства. Там их море начиная mc14XXXX. Есть и у TI такие же. Ключевое слово для поиска codec.

Я для примера вырезал мелкий кусочек результатов поиска на TI. smile.gif


u-law, 2.048 MHz - TCM29C16 - TI Product Folder (Obsolete)
... Combined Single-Chip PCM Codec and Filter (Rev. H) (tcm29c16.pdf, 388 KB) 20 Feb 1997 Download ... Combined Single-Chip PCM Codec and Filter (Rev. H) (tcm29c16.pdf, 388 KB) 20 Feb 1997 Download ...
http://focus.ti.com/docs/prod/folders/print/tcm29c16.html - 59.37k HTML file

u-law and A-law, 1.536, 1.544, 2.048 MHz - TCM29C13 - TI Product Folder (Obsolete)
... Combined Single-Chip PCM Codec and Filter (Rev. H) (tcm29c13.pdf, 388 KB) 20 Feb 1997 Download ... Combined Single-Chip PCM Codec and Filter (Rev. H) (tcm29c13.pdf, 388 KB) 20 Feb 1997 Download ...
http://focus.ti.com/docs/prod/folders/print/tcm29c13.html - 58.87k HTML file

18-bit Stereo AC97 DSPCodec - TLV320AIC27 - TI Product Folder (Obsolete)
... Stereo Audio Codec (Rev. A) (tlv320aic27.pdf, 732 KB) 27 Sep 2000 Download ... 18-Bit Stereo Codec ...
http://focus.ti.com/docs/prod/folders/print/tlv320aic27.html - 49.58k HTML file

u-law, 2.048 MHz, Interface for DSP - TCM29C18 - TI Product Folder (Obsolete)
... Line Card Codec/Filter Combo System/Design Considerations (slwa006.htm, 8 KB) 05 Dec 1996 Abstract ...
http://focus.ti.com/docs/prod/folders/print/tcm29c18.html - 51.7k HTML file

Single Channel Codec - TLC32047 - TI Product Folder (Obsolete)
... Single Channel Codec - TLC32047 - TI Product Folder (Obsolete) ... TLC32047, Status:OBSOLETE Single Channel Codec ...
http://focus.ti.com/docs/prod/folders/print/tlc32047.html - 41.29k HTML file

20-Bit Stereo Audio Codec, 104 dB SNR - TLC320AD75 - TI Product Folder (Obsolete)
... 20-Bit Stereo Audio Codec, 104 dB SNR - TLC320AD75 - TI Product Folder (Obsolete) ... TLC320AD75, Status:OBSOLETE 20-Bit Stereo Audio Codec, 104 dB SNR ...
http://focus.ti.com/docs/prod/folders/print/tlc320ad75.html - 40k HTML file
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 23 2008, 05:38
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Уважаемые! Прошу прощения, но ненашел на форуме обсуждения реализации строго когерентного выполнения последовательности команд в прерывании по таймеру. ткните пальцем или напомните фразу по которой вести поиск. И еще... немаловажным считается факт легкопродаваемости для первоначального общения, что про некоторые нескажешь.

Сообщение отредактировал Григорий2000 - May 23 2008, 05:51
Go to the top of the page
 
+Quote Post
Rst7
сообщение May 23 2008, 05:45
Сообщение #24


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Ну что-нибудь типа такого
Код
#pragma diag_suppress=Ta006
__interrupt void DoADC(void)
{
  UREG m;
  UREG b;
  asm("MOVW R17:R16,R31:R30");
  asm("IN R30,0x32");
  asm("SUBI R30,0x14");
  asm("ANDI R30,15");
  asm("CLR R31");
  asm("SUBI    R30, LOW((-(NOP_LIST/2) & 0xFFFF))");
  asm("SBCI    R31, (-(NOP_LIST/2) & 0xFFFF) >> 8");
  asm("IJMP");
  asm("NOP_LIST: NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("NOP");
  asm("MOVW R31:R30,R17:R16");
.....
.....
.....
}

#pragma diag_default=Ta006

#pragma vector=TIMER0_COMP_vect
__raw __interrupt void INTERRUPT_DISPATCH(void)
{
  ((void(*)(void))DoADC)();
  if (USART_LOCK) return;
  USART_LOCK=1;
  __enable_interrupt();
  ((void(*)(void))UsartRx)();
  __disable_interrupt();
  USART_LOCK=0;
}


На самом деле можно выбросить код, который для работы со вложенными прерываниями (при этом откорректировав число в asm("SUBI R30,0x14") ). Закопипастил просто с рабочего проекта.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Григорий2000
сообщение May 23 2008, 06:09
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 77
Регистрация: 13-03-06
Пользователь №: 15 210



Ок! Спасибо! Вкурил!
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01628 секунд с 7
ELECTRONIX ©2004-2016