AndreyS 0 29 ноября, 2007 Опубликовано 29 ноября, 2007 · Жалоба Добрый день Возник трабл. Пока глубоко не копал, но с понедельника прийдется этим заняться. Имеем CY7C68013 FX2 в нем 6EP - IN 1EP - OUT Столкнулся с тем что из 100 штук систем (система это чип плюс комп) несколько подвисают в процессе приема данных. Происходит следующее. При передачи данных в комп поток неперерывной вычитки данных из ezusb.sys (драйверок free от кипресса хрен знает какой даты, но он у них не менялся и не обновлялся давно) иногда по непонтяным причинам тупо останавливается в драйвере. В железке заведен таймер, который контроллирует прерывание USb в случае, если более нескольких сек (4 сек) не происходит вычитки считаем что компа нет и перезагружаемся. Соответственно как только железка это засекает и перезагружается, то драйвер отлипает и вываливается с данными. Вопрос. У кого-нибудь подобное происходило??? Повторюсь, что данный трабл происходит всего на нескольких машинах. С понедельника начну копать свою прошивку на предмет зависона, может конечно и прошивка подвисает, но раньше такого небыло. Проявилось на PC с пнем 4 и двойным ядром. На долбаных целеронах все пашет уже нескольок лет и без проблем. По сему и грешу на связку пень 4 Хрюн 2 и драйвер. ПОМОГИТЕ!! Добрый день. Есть что сообщить по данному вопросу. Поясню некоторые моменты. Первое, весь обмен реализован в FX2 софтварно (т.е. не использую FIFO или GPIF). Для ускорения использую AUTOPOINTER. Вот именно с этим и связана была проблемма. Быть может это кому-то поможет. Иногда значение AUTOPTRSETUP изменяется. Это происходит как при перезагрузке (причем цепочка RESET отрабатывает отлично. Все тайминги по сбросу соблюдены). В рабочем режиме я просто установил инициализацию регистра перед использованием соответствующего указателя. Т.е. при запуске значение AUTOPTRSETUP не устанавливается дефолтным. И просто разрешение работы указателей недостаточно (но тут как говорится сам дурак, надо было жестко эту ячейку переинитить со всеми битами). Есть подозрение что и в рабочем режиме это тоже происходит. Так как инициализация ячейки перед использованием соответствующего указателя еще лучше помогла. Вывод таков. Быстро ухожу на FIFO :) Просто реализовал данное чудо 3 года назад и небыло желания что-то координально менять. Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SancheSZ 0 20 мая, 2008 Опубликовано 20 мая, 2008 (изменено) · Жалоба Здравствуйте! Распаял тут cy7c68013a-56pvxc с минмумом необходимого обвеса: резисторы н VCC вместо EEPROM, кварц с двумя конденсаторами по 20pF, WAKEUP - резистор к VCC, RESET - RC цепь, VCC и AVCC - +3.3V, GND и AGND - земля. Все остальное в воздухе. Питание берется с USB и понижается до 3.3 посредством LM2937 (10 мкф электролит на выходе). Тестером мерил - в норме. Девайс подключается и определяется всегда с первого раза, работает пример bulkloop. Но подключается всегда на FULL SPEED (сразу и после перподключения после загрузки bulkloop). Так показавает USBView, а при подключении (и после загрузки примера) винда орет, что устройство может работать быстрее. Пробовал на разных компах, менял кабель. Пробовал подавать питаие от внешнего БП. Сразу скажу: плата в принципе ужасная (не соответствует требоаниям cypress - представляет из себя просто расходящиеся паучком дорожки (~5 см). Пробовал подпаивать USB кабель (обрезал разъем с одной стороны) непосредствеено кдорожкам D+, D- в непосредствеенной близости от ножек чипа и подключать к компу через него (вместо установленного на плте разъема), тем амым изключив 5-сантиметровые отрезки дорожек на плате. Не помогло. Что можно предпринять еще, кроме передеки PCB? Занятие это требуюее некоторого времени и дорогостоящее. Была взята имеющаяся в наличии плата под данный шаг. P.S.: на FULL speed подсоединяется устойчиво и без споев. Изменено 20 мая, 2008 пользователем SancheSZ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 20 мая, 2008 Опубликовано 20 мая, 2008 · Жалоба Здравствуйте! Распаял тут cy7c68013a-56pvxc с минмумом необходимого обвеса: резисторы н VCC вместо EEPROM, кварц с двумя конденсаторами по 20pF, WAKEUP - резистор к VCC, RESET - RC цепь, VCC и AVCC - +3.3V, GND и AGND - земля. Все остальное в воздухе. Надо бы еще Reserved подключить к GND. Девайс подключается и определяется всегда с первого раза, работает пример bulkloop. Но подключается всегда на FULL SPEED (сразу и после перподключения после загрузки bulkloop). Так показавает USBView, а при подключении (и после загрузки примера) винда орет, что устройство может работать быстрее. Проверьте частоту кварцевого резонатора на выходе CLKOUT после подключения. Должно быть 12 МГц±100 ppm. Вообще, требования к кварцевому резонатору, изложенные в "Migrating From EZ-USB FX2™ to EZ-USB FX2LP™" (fx2_to_fx2lp.pdf): • 24 MHz ±100 ppm • Parallel resonant • Fundamental mode • 500 μW drive level • 12-pF (5% tolerance) load cap Ну и перечитайте разделы "2.2 Minimum Reset Time" и "2.3 VCC Ramp Up Time" из этого документа. Если есть возможность, сразу замените кварцевый резонатор на кварцевый генератор, а вместо RC цепи для RESET используйте микросхему монитора питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SancheSZ 0 20 мая, 2008 Опубликовано 20 мая, 2008 · Жалоба Спасибо, вроде бы проблема снята.... Reserved был подключен изначально (забыл написать). Решил зашунтировать электролит по питанию несолькими керамическими кондюками по 0,1 мкф (пвесил в нескольких частях платы, но с учетом моего паучка все они далеко от чипа). Не помогло. Тогда повесил еще один кондюк непосредствеено к дорожкам побиже к чипу на AVCC и AGND. После этого стал определяться как High Speed. Самое забавное, что когда повесил этот кондюк, обнаружил, что AGND на землю я не припаял :). В итоге так оно и работает :) Невероятно - но факт. (конечно припаю позже). На данный момент по крайней мере нормально все определяется в винде. Посмотрим, что будет, когда начну подключать к нему АЦП... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
engineer2 0 2 июня, 2008 Опубликовано 2 июня, 2008 · Жалоба День добрый! Вопрос более от аппаратчика, чем от программера - есть плата, на котрой распаян CY7C68013A-56LFXC. Для проверки качества разводки проводников на плате необходимо убедиться что он безглючно работает в high-speed режиме (т.е. на 480 мбитах). Можно ли это сделать используя только штатные программы от Cypress'а вроде USB Console? Подойдут ли для этой цели уже упоминавшиеся здесь скомпилированные примеры типа bulkloop, streamer и т.п. Не хочется вникать в несвойственну тему - программирование под винду :) В комплекте "USB Dev Studio" нашёл программулину, которая по идее выполняет все эти действия - Streamer.exe (Streaming Demo). Я понимаю, что для её работы в чип необходимо загрузить что-то. А вот что - пока не пойму :) Заранее благодарен. (P.S. Прошу не счесть это рекламой, приаттачена схема и фото печатной платы) cxema.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 3 июня, 2008 Опубликовано 3 июня, 2008 · Жалоба День добрый! Вопрос более от аппаратчика, чем от программера - есть плата, на котрой распаян CY7C68013A-56LFXC. Для проверки качества разводки проводников на плате необходимо убедиться что он безглючно работает в high-speed режиме (т.е. на 480 мбитах). Можно ли это сделать используя только штатные программы от Cypress'а вроде USB Console?... Да, именно с помощью CyConsole (Cypress USB Console) можно проверить работу контроллера. В теме прием данных из АЦП в ПК по USB я выложил Archive.rar. Из папки "\Archive\Firmware" загрузите в Ваш контроллер файл "ADC_to_USB.hex" с помощью CyConsole. А затем проверьте скорость обмена с помощью программы "Test_Exch_VS.exe" из папки "\Archive\Software\Debug". Если будут вопросы, запустите "GPIF Designer_demo.htm" из папки "Archive\GPIF Designer_demo". В этой демонстрации для Вас много лишнего. Но загрузка *.hex файла в контроллер и проверка скорости обмена там есть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
engineer2 0 4 июня, 2008 Опубликовано 4 июня, 2008 · Жалоба Да, именно с помощью CyConsole (Cypress USB Console) можно проверить работу контроллера.... Большое спасибо за ваш пример и тьюториал по работе с GPIF! Всё сразу получилось, 33 метра принимаются за 1.5 секунды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
engineer2 0 5 июня, 2008 Опубликовано 5 июня, 2008 · Жалоба Почему то не получается отредактировать предыдущее сообщение. Что хотел сказать - USB View всё равно показывает, что устройство находится не в High Speed режиме, а в Full. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 5 июня, 2008 Опубликовано 5 июня, 2008 · Жалоба Почему то не получается отредактировать предыдущее сообщение. Что хотел сказать - USB View всё равно показывает, что устройство находится не в High Speed режиме, а в Full. Где-то на форуме уже было сообщение, что "usbview.exe" неправильно показывает режим работы устройств USB. У Microsoft есть программа "UVCView.x86.exe" (USB Video Class descriptor viewer), которая правильно отображает режим работы устройства USB. Для определения в каком режиме находится контроллер FX2LP можно использовать CyConsole. При отключенной (незапрограммированной) EEPROM контроллер будет определяться, как устройство с VID=0x04B4 и PID=0x8613. И, если для установки драйвера Вы использовали "CyUSB.inf" из "Archive.rar", то CyConsole отобразит FX2LP как "Cypress FX2 - No EEPROM (0x8613)". И вот теперь, если в диалоговом окне программы CyConsole в списке "Configuration Interfaces (4)" выбрать строку с "Alt Setting" равным 1, то в списке "Interface Endpoints (6)" будут отображены конфигурации EndPoint-ов для текущего режима работы FX2LP. Если значение "Max Pkt Size" равно 512, то FX2LP работает в режиме High Speed, если 64 - то в режиме Full Speed. UVCView.x86.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
venka3 0 21 июня, 2008 Опубликовано 21 июня, 2008 · Жалоба может не по теме, но мне надо прочитать и перешить cy7c68013-100ac внутрисхемно. где взять программу и схему подключения. я не программист не понял что скачивать с Cypress а старые ссылки не работают Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drfaust 0 8 августа, 2008 Опубликовано 8 августа, 2008 · Жалоба Кто какую скорость выжал из 68013а ? А то у меня никак больше 15 мегов в секунду не выходит и не могу понять то ли винда не тянет больше то ли устройство. Кстати если разводка не очень грамотная, скорость может падать, и как определить в чем проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 9 августа, 2008 Опубликовано 9 августа, 2008 · Жалоба Кто какую скорость выжал из 68013а ? А то у меня никак больше 15 мегов в секунду не выходит и не могу понять то ли винда не тянет больше то ли устройство. Кстати если разводка не очень грамотная, скорость может падать, и как определить в чем проблема? Этот вопрос обсуждается на форуме достаточно часто: страница 2 в этой же теме; CY7C680013A Киньте ссылкой на софт и лит-ру; ЮЗБ вместе с CY7C68013 с CyUSB.sys и screamer, 45 мб/с - при булочной передаче....я долго смеялся:); ответ Serg_Sm в теме прием данных из АЦП в ПК по USB; CY7C68013A bulk и так далее. FX2LP содержит регистры ERRCNTLIM (USB Error Counter Limit), CLRERRCNT (Clear Error Count), USBERRIE (USB Error Interrupt Enables), USBERRIRQ(USB Error Interrupt Request). Эти регистры можно использовать для организации мониторинга ошибок на шине USB. Можно использовать firmware из Archive.rar как Speed Test Bench. Для этого нужно: заменить файл GPIF.c в папке "\Firmware" на одноименный из архива "GPIF.rar", присоединенного к этому сообщению; перекомпилировать firmware и загрузить новый вариант в FX2LP; измерить скорость обмена с помощью утилиты "\Software\Debug\Test_Exch_VS.exe" У меня получилась такая скорость обмена: GPIF.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drfaust 0 9 августа, 2008 Опубликовано 9 августа, 2008 · Жалоба Вашу прошивку не смог запустить, у меня вообще не работает ни одна прошивка на основе фреймворка fx2, что то не так с перечислением, устройство отвечает неправильно или совсем не отвечает. Написал свою тестовую прогу, проверил счетчик ошибок юсб, он все время равен 0, после 600 мегабайт трансфера тоже не изменился. Сделал в программе две точки 2 out и 6 in Прграмма на компе в паралельных потоках читает и пишет в эти точки, скорость получил по 14 мегабайт в секунду, суммарная соотв. 28 мб\сек вроде и неплохо но хочется чтобы такая же была в одну сторону. На днях попробую разобратся почему не работает перечисление и попробую изохронную передачу там и скорость выше должна быть и ошибки, если есть, все вылезут. Если у кого есть мысли по поводу моих проблем, напишите пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Konst_777 0 10 августа, 2008 Опубликовано 10 августа, 2008 · Жалоба Вашу прошивку не смог запустить, у меня вообще не работает ни одна прошивка на основе фреймворка fx2, что то не так с перечислением, устройство отвечает неправильно или совсем не отвечает. Написал свою тестовую прогу, проверил счетчик ошибок юсб, он все время равен 0, после 600 мегабайт трансфера тоже не изменился. Сделал в программе две точки 2 out и 6 in Прграмма на компе в паралельных потоках читает и пишет в эти точки, скорость получил по 14 мегабайт в секунду, суммарная соотв. 28 мб\сек вроде и неплохо но хочется чтобы такая же была в одну сторону.... ... Если у кого есть мысли по поводу моих проблем, напишите пожалуйста. Тогда, если есть желание, выложите исходники Вашей тестовой программы и схему Вашего устройства. ... На днях попробую разобратся почему не работает перечисление и попробую изохронную передачу там и скорость выше должна быть и ошибки, если есть, все вылезут... Максимальная скорость изохронного обмена для одной конечной точки (Endpoint) не превышает 24 МБайт/сек. ("Universal Serial Bus Specification" раздел "5.6.4 Isochronous Transfer Bus Access Constraints"). Это более, чем в два раза меньше по сравнению с Bulk обменом (53 МБайт/сек). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
drfaust 0 10 августа, 2008 Опубликовано 10 августа, 2008 (изменено) · Жалоба Сегодня испробовал все 4 точки в булк режиме две на вход две на выход, получил суммарную скорость около 34 мегабайт в секунду, такое чувство что на одну конечную точку виндовс ограничивает количество запросов в секунду. Такое возможно? Выложил схемку, прошивку, софт (возможна проблема при запуске, после прошивки через cyConsole необходимо выбрать первую альтернативную конфигурацию) FX2.rar Изменено 10 августа, 2008 пользователем DR.FAUST Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться