реклама на сайте
подробности

 
 
19 страниц V  « < 15 16 17 18 19 >  
Reply to this topicStart new topic
> USB, EZ-USB FX2
toweroff
сообщение Nov 6 2010, 20:22
Сообщение #241


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Konst_777 @ Nov 6 2010, 20:47) *
То есть, будете использовать для Slave FIFO синхронные чтение и запись. Скорость асинхронного чтения Slave FIFO не более 20 МБайт/с, а записи и того меньше.

ой.. пугаете
откуда у контроллера синхронный интерфейс? асинхронно будет...
А откуда подобные цифры? На каком девайсе производился замер?

Кстати, есть еще один вопрос. Если контроллер занят обработкой полученных данных и не может забрать из full FIFO, FX2 корректно это отработает?
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 7 2010, 08:52
Сообщение #242


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(toweroff @ Nov 6 2010, 23:22) *
...А откуда подобные цифры?...

Из Datasheet. Разделы "10.8 Slave FIFO Asynchronous Read" и "10.10 Slave FIFO Asynchronous Write".

Цитата(toweroff @ Nov 6 2010, 23:22) *
...Кстати, есть еще один вопрос. Если контроллер занят обработкой полученных данных и не может забрать из full FIFO, FX2 корректно это отработает?

FX2 отработает корректно: будет отсылать NAK хост контроллеру USB. Таймауты обмена по USB задает Ваша программа для ПЭВМ.
Go to the top of the page
 
+Quote Post
Qrest
сообщение Nov 7 2010, 10:01
Сообщение #243





Группа: Новичок
Сообщений: 8
Регистрация: 10-10-08
Пользователь №: 40 852



Есть устройство "AD9959/PCB evaluation board" в котором для управления DDS используется CY7C68013. К устройству есть софт для управления по USB. Есть пакеты снятые USB Logger в режиме настройки. Нужно реализовать свою программу управления, которая формирует необходимые пакеты.

- Как лучше подобраться к решению вопроса?
- Можно ли не переделывать драйвер?
- С чего лучше начать?

Есть много ссылок на использование пакета EZ-USB Development Tools V2.61.700, но на сайте Cypress его не нашел. Или может указанный пакет не сильно поможет?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 8 2010, 13:18
Сообщение #244


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Что-то никак не дрыгаются флаги
Отконфигурированы так: EP2 - bulk OUT 512 (x4), EP6 - bulk IN 512 x4, флаги:

PINFLAGSAB = 0xE0; // FLAGB - EP6FF
PINFLAGSCD = 0x08; // FLAGC - EP2EF

в результате флаги не дрыгаются никак (FLAGB - 1, FLAGC - 0). Пробовал отсылать в точку EP2 пакеты и меньше 512 байт, и больше, и забить фсю FIFO - 2048 байт.
Дескриптор точно в порядке, перепроверял не один раз
Драйвер пользуется libusb - может тут что-то не в порядке? Может супресс любит только свой драйвер?

проект для FX2 базируется на этом Manual Mode Operation of EZ-USB FX2LP™ in GPIF and Slave FIFO Configuration
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 8 2010, 18:49
Сообщение #245


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(toweroff @ Nov 8 2010, 16:18) *
Что-то никак не дрыгаются флаги
Отконфигурированы так: EP2 - bulk OUT 512 (x4), EP6 - bulk IN 512 x4, флаги:

PINFLAGSAB = 0xE0; // FLAGB - EP6FF
PINFLAGSCD = 0x08; // FLAGC - EP2EF

в результате флаги не дрыгаются никак (FLAGB - 1, FLAGC - 0). Пробовал отсылать в точку EP2 пакеты и меньше 512 байт, и больше, и забить фсю FIFO - 2048 байт.
Дескриптор точно в порядке, перепроверял не один раз
Драйвер пользуется libusb - может тут что-то не в порядке? Может супресс любит только свой драйвер?

проект для FX2 базируется на этом Manual Mode Operation of EZ-USB FX2LP™ in GPIF and Slave FIFO Configuration


проблема снята - криворукий копипаст называется

Но появился новый проблем. Отсылаю в точку 4 байта. Точка отконфигурирована с WORDWIDE=1, т.е. 16 бит
По идее, я в асинхронном режиме должен забрать эти 4 байта за две шинных операции, однако флаг FIFOEMPTY устанавливается уже после первого чтения FIFO. При этом софт на ПК говорит, что все 4 байта в точку доставлены. Где могут быть грабли?
ЗЫ. Младшая часть U32 с ПК доставлена корректно
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 9 2010, 18:15
Сообщение #246


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



В общем ситуация такая: отправляю 512/1024/... и тд, кратно размеру точки, - все в порядке. Как только меньше - считываю только два байта (при WORDWIDE=1 флаг EPxEF устанавливается после одной шинной операции, при WORDWIDE=0 - после двух)
Так что же теперь - вне зависимости ни от чего гнать 512 байт вместо нужных, например, 16-20? blink.gif
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 9 2010, 19:13
Сообщение #247


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(toweroff @ Nov 9 2010, 21:15) *
...Так что же теперь - вне зависимости ни от чего гнать 512 байт вместо нужных, например, 16-20? blink.gif

Попробуйте выдавать на два байта больше. Или выдавать за коротким пакетом еще и пустой пакет. Ну и "погуглить" в интернете, есть ли какие-то особенности у libusb.sys.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 9 2010, 19:44
Сообщение #248


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Konst_777 @ Nov 9 2010, 22:13) *
Попробуйте выдавать на два байта больше. Или выдавать за коротким пакетом еще и пустой пакет. Ну и "погуглить" в интернете, есть ли какие-то особенности у libusb.sys.

насчет libusb - тот же проект был под внутренний USB модуль LPC2468, все работало как часы
просто захотелось бОльшей скорости, поэтому был выбран интерфейс FX2
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 10 2010, 23:36
Сообщение #249


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Не принимаю данные с точки IN. TraceUSB говорит, что пакет есть, но данных ноль, хотя длина пакета указывается корректно - 0х200
может что наинитил не то...
Код
void TD_Init( void )
{ // Called once at startup

  SYNCDELAY;                    //
  REVCTL=0x03;

  SYNCDELAY;                    //
  CPUCS = 0x10; // CLKSPD[1:0]=10, for 48MHz operation, output CLKOUT

  SYNCDELAY;                    //
  IFCONFIG = 0xCB; // for async

  SYNCDELAY;                    //
  PORTACFG = 0x40;  // FLAGD is /CHIPSELECT


  // EP2 512 BULK OUT 4x
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA0;                // BUF[1:0]=00 for 4x buffering
  
  // EP6 512 BULK IN 4x
  SYNCDELAY;                    //
  EP6CFG = 0xE0;                // BUF[1:0]=00 for 4x buffering
  
  // EP4 and EP8 are not used in this implementation...
  SYNCDELAY;                    //
  EP4CFG = 0x20;                // clear valid bit
  SYNCDELAY;                    //
  EP8CFG = 0x60;                // clear valid bit


  SYNCDELAY;
  FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x82;             // reset, FIFO 2
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x84;             // reset, FIFO 4
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x86;             // reset, FIFO 6
  SYNCDELAY;                    //
  FIFORESET = 0x88;             // reset, FIFO 8
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x00;             // deactivate NAK-ALL

  SYNCDELAY;                    //
  OUTPKTEND = 0x82;
  SYNCDELAY;                    //
  OUTPKTEND = 0x82;
  SYNCDELAY;                    //
  OUTPKTEND = 0x82;
  SYNCDELAY;                    //
  OUTPKTEND = 0x82;


  SYNCDELAY;                    //
  EP2FIFOCFG = 0x11;            // AUTOOUT=1, WORDWIDE=1
  
  SYNCDELAY;                    //
  EP6FIFOCFG = 0x0D;            // AUTOIN=1, WORDWIDE=1

  SYNCDELAY;
  EP6AUTOINLENH = 0x02;
  SYNCDELAY;
  EP6AUTOINLENL = 0x00;


  SYNCDELAY;
  PINFLAGSAB = 0xE0;            // FLAGA - indexed, FLAGB - EP6FF
  SYNCDELAY;
  PINFLAGSCD = 0x08;            // FLAGC - EP2EF, FLAGD - indexed
  SYNCDELAY;

  FIFOPINPOLAR = 0x00;
  SYNCDELAY;

}


с другими объемами передачи то же самое, т.е. в USB Trace показывается длина данных, которая ожидается (1024), а не та, которая передается (2048)
Buffer Size при этом в снифере==0, т.е. ничего не принято

где я накосячил в инициализации? вроде ж все верно...
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 13 2010, 20:59
Сообщение #250


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Переделал вместо фифы6 на фифу8
опа, словил на PC 2 байта.
Но это не 512 точно smile.gif
уже перепробовал замену полностью fw.c на оригинальный (ну.. мало ли что.. я ж не фирмваре пишу, а как slave пользую), соответственно td_init поменялся в конфиге на 8-ю фифу
нихт, точнее - уже что-то начал принимать то, и не то, и не все
Ровно 2 байта, совершенно других
Сигналы /WR, /RD, A, D смотрелись осциллом с полосой 200МГц, нет никаких пертрубаций, иголок точно не увидел
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 15 2010, 17:35
Сообщение #251


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(toweroff @ Nov 14 2010, 00:59) *
...Сигналы /WR, /RD, A, D смотрелись осциллом с полосой 200МГц, нет никаких пертрубаций, иголок точно не увидел

а PKTEND ?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 15 2010, 21:51
Сообщение #252


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(Konst_777 @ Nov 15 2010, 20:35) *
а PKTEND ?

сигнал тоже в порядке. Но, т.к. я пользую AUTO FIFO IN, указываю размер пакета в виде 0x200 и такой же передаю, он, по идее, должен отправляться самостоятельно? Или я неправ?
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 16 2010, 13:25
Сообщение #253


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Подскажите, где найти DC описание параметров фронтов сигналов интерфейса для FX2? Что-то на сайте по всяким запросам типа "rise time" не нашел...
А то уже совсем ничего не понимаю, все делаю как в TRM, перелопатил много буржуйских форумов, пробовал их рекомендации и примеры, но проблема не решается sad.gif
Go to the top of the page
 
+Quote Post
toweroff
сообщение Nov 16 2010, 14:55
Сообщение #254


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Сейчас обнаружил одну вещь - меняю последовательность описания точек в dscr.a51 - все, софт перестает работать даже на отправку в точку OUT
Возможно, тут и порылась проблема... правда, какая - непонятно smile.gif хорошо бы, чтобы временно непонятно smile.gif

все, это клин... девайс был отключен... перекур
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Nov 16 2010, 18:40
Сообщение #255


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(toweroff @ Nov 16 2010, 00:51) *
сигнал тоже в порядке. Но, т.к. я пользую AUTO FIFO IN, указываю размер пакета в виде 0x200 и такой же передаю, он, по идее, должен отправляться самостоятельно? Или я неправ?

Да, в этом случае PKTEND можно не использовать. Важно, чтобы этот сигнал не висел в воздухе и не был в активном состоянии (может быть и "0" и "1" в зависимости от установок регистра FIFOPINPOLAR).


Цитата(toweroff @ Nov 16 2010, 16:25) *
Подскажите, где найти DC описание параметров фронтов сигналов интерфейса для FX2?...

Datasheet для FX2LP. Datasheet для FX2 не смог найти на сайте Cypress. Полагаю, что временные диаграммы одинаковы для FX2 и FX2LP. Но проверять лень. Поэтому выкладываю datasheet для FX2:
Прикрепленные файлы
Прикрепленный файл  cy7c68013_8.7z ( 1.01 мегабайт ) Кол-во скачиваний: 57
 
Go to the top of the page
 
+Quote Post

19 страниц V  « < 15 16 17 18 19 >
Reply to this topicStart new topic
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016