 Разработка, производство и продажа радиоэлектронной аппаратуры
 |
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
McASP в TMS320C672x, Не могу прочитать данные.
Отправлено
MegaDocent (83.219.6.114) 12 июля 2010, г. 13:40
Добрый день.
Программирую TMS320C6726, разобрался почти во всем, что было нужно, кроме одного момента, на котором уже неделю с лишним сижу. Перерыл все что можно.
Нужно принять поток E1. Для этого подходит McASP, так как имеет возможность работы с тайм слотами и другие возможности. Как я понял, это многие уже реализовывали (встречал упоминания, что и по нескольку потоков принимали), так что ничего невозможного тут нет.
Для этого использую 3 ножки, data, RCLK RFSR.
RHCLK, XHCLK и XCLK генерируются внутренне.
Ниже приведены настройки регистров. (При плясках с бубном перепробовал всевозможные другие настройки, не помогло)
Настраивал согласно spru041j и spru878b. Все, вроде бы, как там написано. GBLCTL корректно записывается и считывается. Однако есть проблема.
Тактовые и синхро импульсы принимаются и корректно распознаются. Также корректно генерируются выходные.
А вот данные приниматься и отправляться не хотят. При считывании RBUF = 0x00000000, хоть ты держи на входе постоянно 1. Если записываю XBUF, то на выходе ничего не появляется, а при считывании выдает 0.
Скорее всего, что-то я упустил, и просто делаю что-то не так. Но вот чтоименно, не могу найти.
Что я делаю не так? =)
P.S. Буду благодарен за любые примеры настройки и работы с McASP не через CSL, независимо, что там делается.
P.P.S. Буду благодарен зя любые мысли вслух вообще.
*(int *)PWRDEMU = 0x00000001;
*(int *)RMASK = 0xffffffff;
*(int *)RFMT = 0x0000A030;
*(int *)AFSRCTL = 0x00001000;
*(int *)ACLKRCTL = 0x0000008F;
*(int *)AHCLKRCTL = 0x00008FFF;
*(int *)RTDM = 0xFFFFFFFF;
*(int *)RINTCTL = 0x00000000;
*(int *)RCLKCHK = 0x00110003;
*(int *)XMASK = 0xffffffff;
*(int *)XFMT = 0x0000A030;
*(int *)AFSXCTL = 0x00001002;
*(int *)ACLKXCTL = 0x000000FF;
*(int *)AHCLKXCTL = 0x00008FFF;
*(int *)XTDM = 0xFFFFFFFF;
*(int *)XINTCTL = 0x00000000;
*(int *)XCLKCHK = 0x00110000;
*(int *)SRCTL0 = 0x00000002;
*(int *)SRCTL1 = 0x00000001;
*(int *)PFUNC = 0x00000000;
*(int *)PDIR = 0x14000002;
*(int *)DITCTL = 0x00000000;
*(int *)DLBCTL = 0x00000000;
*(int *)AMUTE = 0x00000000;
Составить ответ | Вернуться на конференцию
Ответы