Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

CY7C68013 FX2 и булочная передача видео в комп

Отправлено Marcefal 05 февраля 2007 г. 16:20


Вопрос к спецам по сайпрасу, помогите разобраться с автоточками и фифо.
Драйвер - CyUSB
компилер - кейл 8
сделано на основе - платы CY3681 и цыфровой камеры OmniVision OV9121.

В моем девайсе сделана точка 86 - IN, Bulk, 512 байт, 4-ёх кратная буферизация. На входы FD0-FD7 (PORTB) контроллера подается параллельный код с цифровой ч/б камеры (каждый байт - пиксель, разрешение 640*480), строб с этой камеры идет на вход SLWR контроллера (передний фронт), FIFOADR1:0 соответственно заданы как 10. Задача - качать этот поток байтов в комп.

Настраиваю ФИФО и точку следущим образом:

CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1);
SYNCDELAY;
IFCONFIG |= 0x4B; //SLAVE FIFO, àñèíõð.
SYNCDELAY;

REVCTL = 0x03; // must set REVCTL.0 and REVCTL.1 to 1
SYNCDELAY;
SYNCDELAY;

EP1OUTCFG = 0x00; //see TRM section 15.14
EP1INCFG = 0xb0;
SYNCDELAY; //in
EP2CFG = 0xA0; //out 4
SYNCDELAY;
EP4CFG = 0x00;
SYNCDELAY;
EP6CFG = 0xE0; //in 4
SYNCDELAY;
EP8CFG = 0x00;

FIFORESET = 0x80; // reset all FIFOs
SYNCDELAY;
FIFORESET = 0x02; // reset EP2
SYNCDELAY;
FIFORESET = 0x04; // reset EP4
SYNCDELAY;
FIFORESET = 0x06; // reset EP6
SYNCDELAY;
FIFORESET = 0x08; // reset EP8
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;

EP2FIFOCFG = 0x0; //ýòè òî÷êè áåç ôèôû
SYNCDELAY;
EP4FIFOCFG = 0x0;
SYNCDELAY;
EP8FIFOCFG = 0x0;
SYNCDELAY;

EP6FIFOCFG = 0x08; //8, àôòàèí,
SYNCDELAY;
EP6AUTOINLENH = 0x02; //512
SYNCDELAY;
EP6AUTOINLENL = 0x00;
SYNCDELAY;

SYNCDELAY;
EP2BCL = 0x80; // arm EP2OUT by writing byte count w/skip.
SYNCDELAY;
EP2BCL = 0x80;
SYNCDELAY;
EP2BCL = 0x80; // arm EP2OUT by writing byte count w/skip.
SYNCDELAY;
EP2BCL = 0x80;
SYNCDELAY;
EP4BCL = 0x80; // arm EP4OUT by writing byte count w/skip.
SYNCDELAY;
EP4BCL = 0x80;
SYNCDELAY;
EP4BCL = 0x80; // arm EP4OUT by writing byte count w/skip.
SYNCDELAY;
EP4BCL = 0x80;

// enable dual autopointer feature
AUTOPTRSETUP |= 0x01;

Чо не так настраиваю? Все время сплошные 0xB5 передаются.
На компе накалякана прога (с примера bulkloop содрана и доделана) и все передачи в ней неправильные. Когда вручную заполняю точку - все работает.
Вообще настроил вроде по мануалу, подозреваю - может прога на компе не справляется с приемом данных?

Но даже если не справляется и перегруз буферов ФИФО идет, разве я не должен через CyConsole хотя бы первае 4 512-ибайтных пакета получить?




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru