[an error occurred while processing this directive]
Проблемы с SPI в режиме DMA ADSP-2191 ? (+)
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

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

Отправлено MIR 26 марта 2003 г. 13:09

Случаем никто не использовал subj?

Проблема как переключить корректно передачу на приём для эмулирования обмена с AT45DBxxx?
Например нужно считать состояние устройства (0xD7), на что DataFlash в ответ высылает байт состояния. Делаю так:
1. CS для DataFlash выставляем в ручном режиме...
2. Программируем передачу по DMA 1 байта (0xD7) - байт уходит
3. Стопоримся перепрограммируемся на приём одного байта из DataFlash
4. Заканчиваем приём - снимаем CS
Проблема в том что считывается 0 (хотя реально DataFlash отвечает 0xA4). При увеличении буфера приёма до 2 байт видим что принялось нужное 0xA4, но во второй байт буфера... (первый естественно 0)
В DataSheet по этому поводу следующее:
---------
When changing the direction for SPI port DMA (from TX to RX or vice versa), the program must conclude the DMA in one direction, disable the channel, then start the next DMA in the other direction. TX and RX SPI DMA sequences cannot be chained with descriptors.
---------
Так вот, как перестроить с передачи на приём SPI в режиме DMA так, чтобы DMA начинал заполнять буфер корректно... Например считать только один байт из устройства...
Может кто имел опыт по вышеупомянутой связке и что подскажет...

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru