[an error occurred while processing this directive]
ADSP-TS101S EZ-KIT Lite - прощу совета по работе с DMA.
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ualina 01 сентября 2003 г. 22:37

В общем, я тока начал заниматься DSP - вторая неделя пошла, так что прошу за тупые вопросы не ругаться ;) И так, суть:
На этом ките и ацп и цап отображаются в память по одному и тому-же адресу, но проблема не в этом, а вот в чем: при работе в dma режиме нам надо выставлять DMARequest каждый раз, когда нам нужна новая пара выборок, при этом, первое чтение или запись после dmareq - будет для левого канала, а второе / чтение запись - для правого. Тоесть можно сделать, например вот - так: Dmareq - читаем левый канал, пишем левый канал, читаем правый канал, пишем правый канал. Как вы знаете, у данного проца (tigersharc) есть DMA Chaining(помойму так ;) ) Суть моей проблемы такова: я хочу в дма режиме считать N выборок с ацп, используя dma chaining, затем получившийся набор выборок обработать, и выплюнуть на цап, при этом параллельно заполняя новый набор выборок с АЦП. Тоесть, для безопасности, можно использовать 4 буфера - 2 на вход, 2 - на выход, хотя, может быть , можно и обойтись двумя буферами, но суть - не в этом. Я делаю так: с помощью dma-chaining постоянно читается то первый буфер, то второй. После заполнения буфера чтения(конец режима dma) - софтовый int, выставляю флаг, вернее переменную, которая означает, какой буфер сейчас заполнен, а программа просто отслеживает эту самую переменную и соответственно считает или первый буфер или второй и в конце подсчета в режиме dma выплевывает буфер на цап. Так вот суть проблемы: даже если выходной буфер=входному, на выходе просто толпы шумов. Насколько я понял, это связано с тем, что я не делаю dmarequest. Но если делать dmareq - то толку от работы dma chaining не будет - придется все время следить за работой дма, постоянно подсовывать ему dmar и т.д. К тому-же (не пинайте меня за столь банальный и дурной вопрос ;) ) что будет, когда по одному дма каналу будет вестись чтение с выставлением dmar через один отсчет, а по другому дма каналу - запись - и тоже - выставление dmar. Вообщем, труба ;) А разобраться все-таки хочется - вот и решил у гуру спросить совета, тока не пинайте, за тупой вопрос.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru