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

 
 
19 страниц V  « < 11 12 13 14 15 > »   
Reply to this topicStart new topic
> USB, EZ-USB FX2
DR.FAUST
сообщение Aug 10 2008, 12:31
Сообщение #181





Группа: Новичок
Сообщений: 7
Регистрация: 30-08-07
Пользователь №: 30 159



Цитата(DR.FAUST @ Aug 10 2008, 15:04) *
Сегодня испробовал все 4 точки в булк режиме две на вход две на выход, получил суммарную скорость около 34 мегабайт в секунду, такое чувство что на одну конечную точку виндовс ограничивает количество запросов в секунду. Такое возможно? Выложил схемку, прошивку, софт (возможна проблема при запуске, после прошивки через cyConsole необходимо выбрать первую альтернативную конфигурацию)


Нашел причину заниженной скорости, надо было указать SetXferSize (размер пакета, передаваемого драйвером CyUsb к хост драйверу). Получил такие параметры (все скорости как в так и из устройства получаются почти одинаковые): 1 точка - 28 МБ\сек, 2 точки на чтение - 35 МБ\сек, все 4 точки - 40 МБ\сек. Дальше возможно ограничивает драйвер, попробую на досуге свой драйвер, хотя и 28 мегабайт уже совсем неплохо. Надеюсь что с перечислением разберусь, если что буду спрашивать smile.gif Кстате спасибо за ответы.

Сообщение отредактировал DR.FAUST - Aug 10 2008, 12:32
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 13 2008, 16:49
Сообщение #182


Знающий
****

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



Цитата(DR.FAUST @ Aug 10 2008, 00:38) *
Вашу прошивку не смог запустить, у меня вообще не работает ни одна прошивка на основе фреймворка fx2, что то не так с перечислением, устройство отвечает неправильно или совсем не отвечает...

Проверьте:
  • правильность формирования сигнала Reset ;
  • скорость наростания Vcc после подачи питания (раздел 2.3 в файле "fx2_to_fx2lp.pdf").
Go to the top of the page
 
+Quote Post
DR.FAUST
сообщение Aug 15 2008, 10:05
Сообщение #183





Группа: Новичок
Сообщений: 7
Регистрация: 30-08-07
Пользователь №: 30 159



Да действительно ресет у меня сейчас подается мгновенно, это будет исправлено, просто у меня на плате конденсатор от ресета соединен с землей на втором слое через разьем а разьем еще не установлен. Но ведь процессор стартует, и работает нормально, как ресет может влиять на перечисление?
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Aug 15 2008, 10:33
Сообщение #184


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(DR.FAUST @ Aug 15 2008, 14:05) *
Да действительно ресет у меня сейчас подается мгновенно, это будет исправлено, просто у меня на плате конденсатор от ресета соединен с землей на втором слое через разьем а разьем еще не установлен. Но ведь процессор стартует, и работает нормально, как ресет может влиять на перечисление?



Добрый день.

Ресет влияет на правильный запуск всех частей микросхемы CY7C68013. В частности на SIE (ядро USB). Ядро 8051 при этом не зависит о запуска SIE.


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
DR.FAUST
сообщение Aug 15 2008, 12:31
Сообщение #185





Группа: Новичок
Сообщений: 7
Регистрация: 30-08-07
Пользователь №: 30 159



Тоесть при неправильном запуске Sie может работать но не совсм корректно? У меня данные передаются, а вот перечисление глючит. Скоро куплю разьем тогда точно проверю, спасибо что подсказали.
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 15 2008, 17:50
Сообщение #186


Знающий
****

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



Цитата(DR.FAUST @ Aug 15 2008, 13:05) *
... Но ведь процессор стартует, и работает нормально, как ресет может влиять на перечисление?

FX2LP состоит из двух устройств, имеющих доступ к SIE (USB):
  • The Default USB Device - цифрового автомата;
  • улучшенного (расширенного) контроллера 8051.

The Default USB Device управляет SIE пока управление не переходит к 8051. Если не обеспечен нормальный аппаратный сброс 8051 после включения питания, то управление SIE никогда не перейдет к 8051, так как сам 8051 не будет нормально функционировать. Как следствие - не будет работать перечисление, предусмотренное Вашей программой.

Нельзя надеяться на нормальную работу FX2LP, если не выполнять требования, изложенные в Datasheet и EZ-USB® Technical Reference Manual.
Go to the top of the page
 
+Quote Post
DR.FAUST
сообщение Aug 16 2008, 12:08
Сообщение #187





Группа: Новичок
Сообщений: 7
Регистрация: 30-08-07
Пользователь №: 30 159



Полностью согласен что правила надо соблюдать. НО сегодня сделал ресет Резистор 100К конденсатор 100 нФ. Если девайс долго лежит на полке то не хочет потом обнаруживатся виндой, только раза с 4 находится. Если его отключить - подключить в течении 1 минуты, все ок и кнопка ресет пашет вроде нормально. Но когда конденсатор с ресета не был подключен на землю, все работало отлично smile.gif. А теперь о перечислении. Отлаживал код BulkLoop выяснил что:
В коде fw.c в главном цикле вызивается TD_POOL а за ним, если пришел пакет от компа то и SetupCommand. Но у меня POOL срабатывал а SetupCommand - нет, хотя прерывание Sudav срабатывает. Ради теста, закомментировал код отвечающий за переход в режим сна

if (Sleep)
{
IOB|=0x20;
if(TD_Suspend())
{
Sleep = FALSE; // Clear the "go to sleep" flag. Do it here to prevent any race condition between wakeup and the next sleep.
do
{
EZUSB_Susp(); // Place processor in idle mode.
}
while(!Rwuen && EZUSB_EXTWAKEUP());
// above. Must continue to go back into suspend if the host has disabled remote wakeup
// *and* the wakeup was caused by the external wakeup pin.

// 8051 activity will resume here due to USB bus or Wakeup# pin activity.
EZUSB_Resume(); // If source is the Wakeup# pin, signal the host to Resume.
TD_Resume();
}
И все заработало отлично девайс определился и программа заработала как надо.
Что можете сказать по этому поводу? У меня пока нет мыслей почему он засыпает, и собственно чем это мешает? Он не может проснутся или как?
Да и Konst_777, я запустил таки вашу прошивку, 27 мб\сек, в ней , насколько я покал нет функций связанных со сном.

Сообщение отредактировал DR.FAUST - Aug 16 2008, 12:17
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 18 2008, 17:21
Сообщение #188


Знающий
****

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



Цитата(DR.FAUST @ Aug 16 2008, 15:08) *
... Он не может проснутся или как?...

Да, это видно из исходников BulkLoop и EZUSB.LIB (\Cypress\USB\Target\Lib\LP\resume.c).
Go to the top of the page
 
+Quote Post
Artkop
сообщение Sep 4 2008, 13:28
Сообщение #189


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-06-08
Пользователь №: 38 217



Добрый вечер!
Прошу прояснить следующий момент. Когда настроен режим Slave FIFO и передача идет напрямую с USB в FIFO, то информацию из буферов конечных точек читает и пишет внешный мастер? (ПЛИС) Пришли данные по USB, их автоматом перекинуло в фифо. Как микроконтроллер сможет мастеру сказать, что пришли данные? Посмотрел временные диаграммы и пины, нет такого флага. AUTOIN и AUTOOUT здесь уже не пройдет(
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Sep 4 2008, 17:47
Сообщение #190


Знающий
****

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



Цитата(Artkop @ Sep 4 2008, 16:28) *
Добрый вечер!
Прошу прояснить следующий момент. Когда настроен режим Slave FIFO и передача идет напрямую с USB в FIFO, то информацию из буферов конечных точек читает и пишет внешный мастер? (ПЛИС) Пришли данные по USB, их автоматом перекинуло в фифо. Как микроконтроллер сможет мастеру сказать, что пришли данные? Посмотрел временные диаграммы и пины, нет такого флага. AUTOIN и AUTOOUT здесь уже не пройдет(

В режиме Slave FIFOs выводы контроллера "CTL0 or FLAGA", "CTL1 or FLAGB", "CTL2 or FLAGC", "PA7 or FLAGD or SLCS#" конфигурируются как "FLAGA", "FLAGB", "FLAGC" и, по желанию, "FLAGD". Флаги сообщают о состоянии четырех FIFO контроллера. Причем, не только о состоянии "FIFO пусто" или "FIFO заполнено", но и об заданном уровне заполнения FIFO. Все это неплохо описано в разделе "9.Slave FIFOs" в EZ-USB® Technical Reference Manual ("EZ-USB_TRM.pdf")
Go to the top of the page
 
+Quote Post
Artkop
сообщение Sep 5 2008, 05:52
Сообщение #191


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-06-08
Пользователь №: 38 217



Цитата(Konst_777 @ Sep 4 2008, 21:47) *
В режиме Slave FIFOs выводы контроллера "CTL0 or FLAGA", "CTL1 or FLAGB", "CTL2 or FLAGC", "PA7 or FLAGD or SLCS#" конфигурируются как "FLAGA", "FLAGB", "FLAGC" и, по желанию, "FLAGD". Флаги сообщают о состоянии четырех FIFO контроллера. Причем, не только о состоянии "FIFO пусто" или "FIFO заполнено", но и об заданном уровне заполнения FIFO. Все это неплохо описано в разделе "9.Slave FIFOs" в EZ-USB® Technical Reference Manual ("EZ-USB_TRM.pdf")


Про этот раздел я и говорю. Там есть временная диаграмма чтения из FIFO мастером и описание.

IDLE: When read event occurs, transition to State 1.
STATE 1: Point to OUT FIFO, assert FIFOADR[1:0], transition to State 2.
STATE 2: Assert SLOE. If FIFO-Empty flag is false (FIFO not empty), transition to State 3 else
remain in State 2.
STATE 3: Sample data on the bus, increment pointer by asserting SLRD for one IFCLK, de-assert
SLOE, transition to State 4.
STATE 4: If more data to read, transition to State 2 else transition to IDLE.

STATE 1 как начнется? По выставленному флагу FLAGC (FIFO-Empty flag)? В мк приходят данные, он выставляет FIFO-Empty flag (Не пустой). Пусть ПЛИС реагирует на FIFO-Empty flag, выставляет SLOE, SLRD и читает. Так? smile.gif
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Sep 5 2008, 09:11
Сообщение #192


Знающий
****

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



Цитата(Artkop @ Sep 5 2008, 09:52) *
...Пусть ПЛИС реагирует на FIFO-Empty flag, выставляет SLOE, SLRD и читает. Так? smile.gif

Да, можно и так.
Go to the top of the page
 
+Quote Post
Artkop
сообщение Oct 4 2008, 10:38
Сообщение #193


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 11-06-08
Пользователь №: 38 217



Всем доброго дня!
Вот такой вот вопрос:
Имеется конечная точка EP2, настроенная в режим Slave FIFO AUTOOUT.
void TD_Init(void)
{
CPUCS = ((CPUCS & bmCLKSPD) | ~bmCLKSPD1) ;

EP1OUTCFG = 0xA0;
EP1INCFG = 0xA0;
SYNCDELAY;

REVCTL = bmNOAUTOARM && bmSKIPCOMMIT;
SYNCDELAY;
FIFORESET = 0x80; // reset all FIFOs
SYNCDELAY;
FIFORESET = 0x02;
SYNCDELAY;
FIFORESET = 0x00;
SYNCDELAY;
IFCONFIG = 0x03; //
EP2CFG = 0xA2;
SYNCDELAY;
EP2FIFOCFG = 0x10;
SYNCDELAY;
OUTPKTEND = 0x82;
SYNCDELAY;
OUTPKTEND = 0x82;
SYNCDELAY;

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

Rwuen = TRUE;
}

Какое состояние регистра EP2CS должно быть при включении питания? Дело в том, что при таком конфигурировании у меня EP2CS = 28 (То есть фифо FULL) Но ведь по включении там должно быть EP2CS = 04. (То есть EMPTY = 1) Или нет? Откуда там данные то возьмутся..
Go to the top of the page
 
+Quote Post
AutoSerg
сообщение Nov 5 2008, 21:21
Сообщение #194





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



Опять вопрос! smile.gif
С какой максимальной частотой может работать таймер cy7c68013? зафиксирует ли длительность импульса с точностью порядка 5ns?
И совсем тупой вопрос: есть ли микросхемы таймеров такой точности, если да, то какие.
Go to the top of the page
 
+Quote Post
dinam
сообщение Nov 6 2008, 07:10
Сообщение #195


Профессионал
*****

Группа: Свой
Сообщений: 1 415
Регистрация: 10-06-05
Из: Наукоград Кольцово(Новосибирск)
Пользователь №: 5 898



Совсем не понятно что вам надо, поподробнее можно? В Technical Reference Manual конкретно написано, что максимальная частота таймеров CLKOUT/4, т.е. 12 МГц.
Go to the top of the page
 
+Quote Post

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

 


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


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