Добрый день всем.
У кого-либо работает McASP порт по DMA у Am1705? Что-то не удается его запустить никак.
Полинг порта работает нормально. Все передается и все принимается. При попытке перейти к DMA передаче возникают чудеса. Передача завершеается мгновенно (должна идти почти секунду). Порт выставляет ошибку Undeflow.
Изменения (по сравнению с полингом) такие: Адрес приема/передачи перенесен в DMA область (0x01D06004) Шина DMA вместо CPU (XFMT = 0x000180B0)
PaRAM использую следующий:
opt 0x00103008 // TCINTEN+MCASP1_TX_EVENT + STATIC src_addr 0xC0017AD0 // указывает на мой буфер для передачи a_cnt 0x0004 b_cnt 8192 dst_addr 0x01D06004 // в области DMA мой порт src_b_idx 0x0004 dst_b_idx 0x0000 link_addr 0xFFFF b_cnt_reload 8192 src_c_idx 0x0000 dst_c_idx 0x0000 c_cnt 0x0001 reserved 0x0000 opt 0x00103008 srcAddr 0xC0010000 aCnt 0x0004 bCnt 0x2000 destAddr 0x01D06004 srcBIdx 0x0000 destBIdx 0x0000 linkAddr 0xFFFF bCntReload 0x2000 srcCIdx 0x0000 destCIdx 0x0000 cCnt 0x0001
На самом деле пробовал всякие варианты. Результат всегда один и тот же. Порт выставляет ошибку Data Underflow. У порта FIFO - включено. Все Event-ы у EDMA отмапированы на нулевой канал. DRA регионы - все в FFFFFFFF. EER = 0x0000000C (использую событие 0x04 + 0x08)
Удивительно то, что при инициализации порта явно виден первый трансфер. Далее, после запуска порта (XSMRST+XFRST), практически сразу валят ошибки.
P.S. Ошибся при копировании PaRAM. Поправил.
Сообщение отредактировал _sv_ - Jan 31 2012, 16:57
|