[an error occurred while processing this directive]
Ответ: Вот так делаю. Чего неправильно?
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено Log 24 февраля 2004 г. 16:11
В ответ на: Если цепочная передача - надо следить за адресом след. дескриптора. Возможно, не сброшено прерывание обмена. После остановки обмена "запуск" через запись в регистры контроллера, а не через память. И еще - если дескриптор один, обязательно следует дождаться освобождения внутреннего FIFO прежде чем останавливать контроллер DMA канала. отправлено Чайник 24 февраля 2004 г. 11:42

Сначала инициализирую порт. (При одиночных передачах он точно работает).

Потом инициализирую контроллер DMA:

InitSPORT1_RX_DMA:

IOPG = SPORT1_Controller_Page;

// В памяти создаю дескриптор по адресу RX_DMA_Descr0.
// RX_DMA_Descr1 - пустой.
ar=0;
dm(RX_DMA_Descr1)=ar;

// Устанавливаю направление передачи, очищаю буфер DMA
ar= 0x0082;
io(SP1DR_CFG) = ar;
// Инициализирую дескриптор RX_DMA_Descr0
// Указатель на следующий пустой дескриптор
ar = RX_DMA_Descr1;
dm(RX_DMA_Descr0 + 4) = ar;
// Размер приемного буфера
ar = LENGTH(Mem_Buf);
dm(RX_DMA_Descr0 + 3) = ar;
// Адрес приемного буфера
ar = Mem_Buf;
dm(RX_DMA_Descr0 + 2) = ar;
// Страница буфера - 0
ar = 0;
dm(RX_DMA_Descr0 + 1) = ar;
// Управляющее слово
ar = 0x8007;
dm(RX_DMA_Descr0) = ar;
// Загружаем адрес дескриптора в регистр SP1DR_CP
ar = RX_DMA_Descr0;
io(SP1DR_CP) = ar;
// Ставим, что дескриптор готов
ar=0x0001;
io(SP1DR_CPR) = ar; // DMA Descriptor Ready
// Запускаем передачу
ar = 0x0003;
io(SP1DR_CFG) = ar; // Run transfer
RTS;

После этого запускаю SPORT1.
Передача данных не идет, в регистре SP1DR_CFG - 0x0024 - совсем непонятное значение.

Кто-нибудь, скажите, что я делаю не так?
Или пример рабочего куска программы.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru