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

Отправлено SM 28 мая 2002 г. 23:54

1. В описании по периферии бит 10 регистра DMA_CCRn числится как зарезервированный. В даташите - как FIFO FLUSH. Кто знает, что есть правда ?
2. Ситуация такая - на 144 мгц тактовой принимается/передается через MCBSP #1 поток 18 мегабит. Естественно при помощи DMA с автоинитом. Запись 32 байт командами
RPT #31
MOV *ar0+, port(*ar1+)
в буферную память USB приводит к потере пары слов на TX'е сериального порта (туды идет 32-х битная передача из DARAM ).
Кто тормозит? Варианты ответа :))) Я, DMA, USB, или peripheral controller ?

3. Для тех, кто еще не нарвался: DMA контроллер имеет недокументированный в еррате глюк. При 8-битной передаче откуда-либо в пространство ввода-вывода (например в сериальный порт в режиме SPI или в буфера USB контроллера) первый байт теряется напрочь, зато последний - передается два раза... Это не зависит ни от бурстов, ни от паковки данных, ни от режимов синхронизации. Желающие ознакомиться подробнее могут скачать мой тестовый проектик из конфы http://www.dspvillage.ti.com/discuss , в разделе про семейство C5000, про 'problem with 8-bit DMA xfer'
Как лечить - неизвестно. Единственное, что приходит в голову, вычесть единицу из начального адреса, и прибавить двойку к количеству элементов. Правда тем самым засрав последний байт буфера-приемника. И это не пройдет для SPI.

4. Один программист из германии еще сообщил, что при пересылки из EMIF'овского пространства с фиксированного нечетного адреса байтов (тоже кстати 8-битный ДМА) в буфер в DARAM'е передается всегда 0. Но сам я это не проверял, да и импортным программистам не очень-то доверяю по части сообразительности. Он решил проблему просто перепаяв источник данных на младшие шины данных :))) Хотя проблема могла быть и в другом.

5. Ну и пара приколов masm55.exe (даже версия 2.30 глючит):
BCCU label, src RELOP k8 обругивается при k8>=80h (приходится отрицательные числа ставить :))
Попробуйте написать что-то типа ADD T0,*ar0+ - оно не существует в системе команд c55x, получите ADD #<что-то>,*ar0+ - где <что-то> зависит от указанного регистра в операнде-источнике.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru