Полная версия этой страницы:
USB
Цитата(des00 @ Aug 13 2005, 18:12)
Господа спасибо всем за участие, проблема разрешилась.
Я не знаю почему, но на моем чипе EP8 со своим фифо не работатет.
для выяснения этого я подал на вход чипа (на шину данных) фиксированный код, стрбами рулила фпга, пакеты шли, но с полоной ахинеей.
когда сделал EP6 все стало нормально.
При этом EP8 в режиме не slave fifo работала(пример bulk loop из dev tools).
Почему так не знаю, erata на этот чип я не нашел.
Уфф ну и мозги потрепал мне этот чип

только у моего начальника созрели планы использовать все 4 трубы...
спасибо что вовремя предупредили.
Цитата
Вопрос до конца ещё не понят, по сему буду из далека. Может вы поможете сформулировать вопрос.
Ситуация: есть устройство с USB контроллером cy7c68013. С драйвером EZUSB.sys. До сих пор не замечал такой особенности, но сегодня ночью обнаружилось: при непрерывной передаче данных, если открыть например страничку с кучей фотографий и начать быстро листать фотографии, то происходит срыв передачи данных. А точнее, не отрабатывается WaveForma. Проблемма в принципе решилась поднятием приоритета до уровня "Высокий". Но непонятка всё равно осталась. Почему произошёл разрыв данных?
Ответы типа: "EZUSB - отстой" не принимаются.
а ответы "Windows отстой" принимаються?

Я не системный программист, поэтому не могу сказать на все 100% изза чего, но вроде винды ещё никто не называл ОСРВ, да и протокол USB(кроме изохрона) не гарантирует фиксированой полосы пропускания. Сам щас думаю как можно решить эту проблему более щадящим образом чем поднятие приоритета, но тут похоже выбор не велик: либо приоритет гнать, либо буфер большим делать, либо ось менять.
Немного не по теме но всёже:
Я вот когда делал Capture со своей видиокамеры по FireWire и загрузил другую "жадную" программу то работа пошла смарку.
Trashy
Sep 21 2005, 03:56
Цитата(левша @ Sep 21 2005, 00:20)
только у моего начальника созрели планы использовать все 4 трубы...
спасибо что вовремя предупредили.
Все трубы пашут нормально.
Цитата
а ответы "Windows отстой" принимаються?

Не принимаются. У меня к Винде претензий нет.
Цитата
Я не системный программист, поэтому не могу сказать на все 100% изза чего, но вроде винды ещё никто не называл ОСРВ, да и протокол USB(кроме изохрона) не гарантирует фиксированой полосы пропускания. Сам щас думаю как можно решить эту проблему более щадящим образом чем поднятие приоритета, но тут похоже выбор не велик: либо приоритет гнать, либо буфер большим делать, либо ось менять.
Немного не по теме но всёже:
Я вот когда делал Capture со своей видиокамеры по FireWire и загрузил другую "жадную" программу то работа пошла смарку.
Винда(как и Бил Гейтс) тут не причём. Просто Кипарис не душил поток при переполненнии буфера, хотя в ПДФ сказано, что это всё делается автоматически.
Цитата(Trashy @ Sep 20 2005, 22:56)
Все трубы пашут нормально.
Вам скрин шоты показать ?
Да все они работают нормально, но в режиме slave fifo EP8 на камне что стоит у меня на борде не работает. Причем не работает именно считывание инфы с шины данных.
Trashy
Sep 21 2005, 08:09
Цитата(des00 @ Sep 21 2005, 07:14)
Вам скрин шоты показать ?
Да все они работают нормально, но в режиме slave fifo EP8 на камне что стоит у меня на борде не работает. Причем не работает именно считывание инфы с шины данных.

Это кусок инициализации из моей проги.
От сюда видим, что восьмая и четвёртая труба пользуется в режиме авто!
Восьмая AUTOIN.
Уже 15 приборов продали.
nop
WriteX #EP2FIFOCFG,#00000000b;
nop
WriteX #EP4FIFOCFG,#00010000b;
nop
WriteX #EP6FIFOCFG,#00000000b;
nop
WriteX #EP8FIFOCFG,#00001000b;
Цитата(Trashy @ Sep 21 2005, 03:09)
Это кусок инициализации из моей проги.
От сюда видим, что восьмая и четвёртая труба пользуется в режиме авто!
Восьмая AUTOIN.
Уже 15 приборов продали.
И хорошо что продали

)
Я же не говорю, что все чипы битые, я erratu не нашел,
может быть мне не повезло с кристаллом

)
Trashy
Sep 21 2005, 08:15
Цитата(des00 @ Sep 21 2005, 11:13)
Я же не говорю, что все чипы битые, я erratu не нашел,
может быть мне не повезло с кристаллом

)
Дерьмо случается(ц)Гамп Форест.
Господа,
помогите разрешить проблему. Разрабатываю USB2.0 устройство используя 68001 кристалл. Алгоритм инициализации следующий: дожидаюсь прерывания от кристалла READY, затем записываю нужные мне регистры, затем дескрипторы по адресу 300 (6 байт - VID, PID, DID). Все как описано в "CY3682 Design notes". После этого по идее нужно подключать устройство к usb шине для инициализации, что я и делаю, но винда 2000 вообще никак не реагирует (не видит устройства). В чем может быть проблема? В качестве контроллера использую FPGA.
Trashy
Oct 21 2005, 11:00
Цитата(vad2 @ Oct 21 2005, 12:06)
Господа,
помогите разрешить проблему. Разрабатываю USB2.0 устройство используя 68001 кристалл. Алгоритм инициализации следующий: дожидаюсь прерывания от кристалла READY, затем записываю нужные мне регистры, затем дескрипторы по адресу 300 (6 байт - VID, PID, DID). Все как описано в "CY3682 Design notes". После этого по идее нужно подключать устройство к usb шине для инициализации, что я и делаю, но винда 2000 вообще никак не реагирует (не видит устройства). В чем может быть проблема? В качестве контроллера использую FPGA.
Для начала рекомендую запустить с флешкой с дескрипторами по умолчанию.
И тут есть отдельная тема посвященная запуску SX2
Здравствуйте! Попробую задать свой вопрос тут)
Учусь программировать ezusb.Собрал простенькую програмку,записывающую определенное количество байт в fifo с порта.После загрузки hex'а в железку и перезагрузки железка не определяется виндой.
Исследования показали,что при провлема в ф-ии
void FIFORead(BYTE FIFO_EpNum)
{
while (!(GPIFTRIG &0x080))
{
;
}
GPIFTRIG = GPIFTRIGRD | FIFO_EpNum;
}
потому как без нее устройство определяется и все EP корректно работают.
Может я что-то глубоко не понимаю и надо использовать вэйвформы? В общем голову я уже сломал, помогите советом если не трудно
спасибо
Цитата(ysb @ Nov 3 2005, 17:36)
потому как без нее устройство определяется и все EP корректно работают.
Может я что-то глубоко не понимаю и надо использовать вэйвформы?
Я чёт не понял... Ты пользуешься GPIFом не программируя Вэйвформу?
Или я не понял?
Или ты в режиме Slave-FIFO? Но тогда, код запуска выглядит иначе!
Вообще, есть специальный код сброса фифо:
Код
ResetPipe:
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#80H
movx @dptr,a
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#02H
movx @dptr,a
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#04H
movx @dptr,a
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#06H
movx @dptr,a
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#08H
movx @dptr,a
nop ; just a SYNCDELAY reminder
mov dptr,#FIFORESET
mov a,#00H
movx @dptr,a
ret
Да,пользуюсь. Режим GPIF-master. Slave-FIFO режим это когда управляется внешней логикой? Вроде этот fifo-read вызываю как в мануале сказано.. А как вэйвформу программировать? через gpifdesigner?
а вы всегда на асме пишите? кейлом не пользуетесь?
Цитата(ysb @ Nov 6 2005, 10:52)

Да,пользуюсь. Режим GPIF-master.
GPIF без вэйвформы не пашет.
Цитата(ysb @ Nov 6 2005, 10:52)

Slave-FIFO режим это когда управляется внешней логикой?
Да.
Цитата(ysb @ Nov 6 2005, 10:52)

Вроде этот fifo-read вызываю как в мануале сказано..
Просто я думал, что ты пользуешь Слэйв-ФИФО...
Цитата(ysb @ Nov 6 2005, 10:52)

А как вэйвформу программировать? через gpifdesigner?
В девелопмент кит, есть всё что нужно. Но как оно называется - не знаю, так как я сам писал прогу по составлению WaveForm. И все проги я пишу на асме.
QuadMan
Nov 8 2005, 08:48
Вопрос по драйверу CyUSB.
Не могу найти в нем возможности программно сбросить буфер драйвера. Никто не подскажет, как это сделать?
Я задумал сделать концентратор. Все порты ввода/вывода и звук в USB. Хочу использовать CY7C68013 и ПЛИС. С портами я вроде бы как-то разобрался. Осталось со звуком решить. Встал вопрос с синхронизаций. Помогите кто чем может. Дайте ссылки какие-нибудь. У меня инфы кроме мануала практически нет. С юсб практически не работал. Почитал про него и понял, что надо разбираться с изохронным режимом. Заранее благодарен за помощь.
doppler
Nov 11 2005, 14:10
Помогите решить такую проблему: есть USB устройство подключенное к PC . Требуется переодически делать полный ресет, как при выдергивании и вставке

. Можно ли это сделать программно под Linux??
вопросы,к сожалению, продолжаются(cy7c68013a)
1.Каким образом в режиме GPIF-master запускаются транзакции? WaveData[128] = {...} занесена по адресу 0xE400-0xE47F, GPIF & EPs сконфигурены.
2.Не совсем понимаю ситему буферизации FIFO и передачи пакетов данных. Почему при пересылке из консоли каждый пакет закрывает буфер(т.е. в EP out, double buf возможно передать только 2 пакета независимо от их объема)?
спасибо за помощь
И снова здавствуйте, уважаемые господа. Возникла тут проблема следующего характера: программа работает на редкость нестабильно, т.е. то работает, то после перезагрузки не работает хотя изменений в код не вносится. С чем это может быть связано? Полностью ли очищается память dev kit'а при нажатии ресета или только при отключении питания от шины? Может ли проблема быть связана со случайным размещением программы в памяти железки?
спасибо за внимание
Проблема с CY7C68013A.
При подключениии к PC CY7C68013A то определяется (VID_04B4&PID_8613), то не определяется (VID_0000&PID_0000). На девайсе стоит только CY7C68013A + супервизор, питание от USB. Формировать -Reset для CY7C68013A пробовал с помощью супервизора и с помощью RC цепи.
Кто-нибудь сталкивался с подобным?
dmitry-tomsk
Jan 31 2006, 22:38
Было такое дело при питании от USB на старом PC. Насколько помню, всё дело в питании. В своём проекте от питания USB отказался, от внешнего питания всё гораздо стабильнее работает. Знаю, сейчас ставят фильтры, где-то в форуме есть соответствующий топик.
smilermd
Feb 3 2006, 20:07
Deni dobrii.
Izvinite sto pishu translitom, prosto netu ruskih clavish.
Ispitavaiu bulk transfer na 68013, vot toliko vsegda bolishe 2 bulk-outov ne polucilosi sdelati.
Ispolizoval i CyUSB, i EZUSB, no vsegda taje problema.
Dlia controlera ispolizoval bulkloop is samplov.
Kto-to stalikivalsea s etim? Gde mojet scrivatisia bug?
Spasibo.
Проблема с CY7C68013A.
Кто-нибудь сталкивался с нестабильным стартом контроллера CY7C68013A при питании от USB?
Такое ощущение, что не стартует ядро контроллера. Видно по наличию/отсутствию обращения к eeprom по i2с в момент старта. Есть интересный документ "Migrating From EZ-USB FX2™ to EZ-USB FX2LP™", пишут "Make sure that the VCC ramp-up time is at least 200 μs with a ramp rate of 18V per millisecond" Блин, ну не линии же задержки городить..?
Питание относительно чистое, сброс честный.
Снимаю шляпу!
Дело было не в бобине.
Cypress forever, а вот 8051... :-)
AndreyS
Feb 7 2006, 16:51
Цитата(hard @ Feb 6 2006, 23:39)

Снимаю шляпу!
Дело было не в бобине.
Cypress forever, а вот 8051... :-)
Расскажи, плиз, в чем была проблемма и как от нее избавился???
Просто аналогичный трабл происходит у меня. Причем из 5 плат это происходит на с разной вероятностью на всех. Т.е. иногда при первом запуске все ок. Обычно это вылезает, когда комп перегружается. Т.е. после загрузки не работает. Лечится выкл/вкл питания. Но эта не стаильность просто бесит. Поставил дроссель по питанию. Вроде помогло, но пока не уверен что проблемма исчезла.
Причины моих "проблем" совсем тупые:
1) PIN21 - Reserved. Connect to ground. Слово "Reserved" увидел сразу, а вот "Connect to ground" через некоторое время. После приземления все стало хорошо :-).
2) Хреновый USB конец (якобы "High Speed").
А в Вашем случае проблемы могут быть из-за драйвера.
AndreyS
Mar 8 2006, 09:37
Добрый день.
А какие драйвера используете вы??? Я использую дрова из СДК выкачанной еще в 2002 году версии 1.30.0.0.
Но она явно не устойчиво работает. Во-первых под XP SP2 именно SP2, а не апдейт для SP1. С этой виндой запуск контроллера вообще происходит очень редко. Как правило после прошивки все ендпоинты затыкаются. В общем ядро молчит. Так же эта версия глючно работает по 2000, но там она хоть работает. Под 98 все нормально. На сайте что-то я не нашел новых драйверов. Быть может они в пакете разработчика??? Может у вас есть свежие драйвера??? Желательно чтобы и под SP2 и под 2000 и 98.

Или ссылку на архив. Буду очень признателен.
Для первого включения и прошивки eeprom:
http://www.cypress.com/portal/server.pt?sp...Driver%20v.6.01http://www.cypress.com/portal/server.pt?sp...r%27s%20uStudioА потом уже боевой драйвер с измененными VID/PID и т.д., которые писал другой человек (сам еще не умею).
Да, все это работало под WinXP SP2.
andrey98
Mar 20 2006, 11:01
Цитата
Aga, tak ono i est'. U nas toze est' ustroystvo na USB 2.0 CY7C68013, pishet chto ono full-speed, no rabotaet kak High-Speed. S samopisnim driverom poluchaetsya s nego slivat' poryadka 46MB v sekundu na Intelovskih platah s ICH4-5 Yuznim mostom s integrirovannim USB
А что передавали? Загружались ли данные при этом в CY7C68013 из вне, если да, то каким образом?
Чип CY7C68013 сейчас уже не актуален (не рекомендуется для новых разработок)
Ему на замену выпущен CY7C68023. Кто то пробовал его? Отличия от 13?
grumbler
May 29 2006, 16:06
Цитата(bzx @ May 29 2006, 19:56)

Чип CY7C68013 сейчас уже не актуален (не рекомендуется для новых разработок)
Ему на замену выпущен CY7C68023. Кто то пробовал его? Отличия от 13?
Это совершенно разные чипы. На смену CY7C68013 выпущен CY7C68013а.
wladimiru
Aug 1 2006, 14:54
Цитата(grumbler @ May 29 2006, 20:06)

Это совершенно разные чипы. На смену CY7C68013 выпущен CY7C68013а.
Именно так. И главное отличие CY7C68013а от CY7C68013 поддержка температуры -40 +85 град.
Реализую проект на CY7C68013А от CYPRESS . Имею board с CY7C68013А c чистым EEPROM . Поднял Cypress USB Console. На первой странице вижу Vendor ID и Product Id . С чего начинать учиться писать программы для внутреннего микроконтроллера 8051? Где взять компайлер для С (у меня есть Microsoft Visual Studio 5 ?) ? Где взять образцы простых программ для 8051 и как их запускать (делать Debug) ?
Цитата(AlexSh @ Sep 6 2006, 18:20)

Реализую проект на CY7C68013А от CYPRESS . Имею board с CY7C68013А c чистым EEPROM . Поднял Cypress USB Console. На первой странице вижу Vendor ID и Product Id . С чего начинать учиться писать программы для внутреннего микроконтроллера 8051? Где взять компайлер для С (у меня есть Microsoft Visual Studio 5 ?) ? Где взять образцы простых программ для 8051 и как их запускать (делать Debug) ?
Скачайте с сайта сайпреса EZ-USB (около 63мв) - там все есть.
AlexSh
Sep 10 2006, 13:50
Цитата(Gate @ Sep 6 2006, 16:32)

Цитата(AlexSh @ Sep 6 2006, 18:20)

Реализую проект на CY7C68013А от CYPRESS . Имею board с CY7C68013А c чистым EEPROM . Поднял Cypress USB Console. На первой странице вижу Vendor ID и Product Id . С чего начинать учиться писать программы для внутреннего микроконтроллера 8051? Где взять компайлер для С (у меня есть Microsoft Visual Studio 5 ?) ? Где взять образцы простых программ для 8051 и как их запускать (делать Debug) ?
Скачайте с сайта сайпреса EZ-USB (около 63мв) - там все есть.
Скачал и установил систему для дебага софта С51. Система требует подключить СОМ порт. Вопрос : Для дебага на проверяемом борде обязателен СОМ порт ? Дебагер работает только через СОМ порт ?
MALLOY2
Sep 11 2006, 08:02
Я бы сначала посоветовал потренироваться на кошках, тобиш на голом 51,имхо начинать програмить с ципреса не лучший вариант
TailWind
Sep 11 2006, 11:28
Цитата(hard @ Feb 6 2006, 22:49)

Кто-нибудь сталкивался с нестабильным стартом контроллера CY7C68013A при питании от USB?
У меня так было.
Поменял USB кабель на качественный USB2.0, всё заработало.
grumbler
Sep 11 2006, 11:37
Цитата(TailWind @ Sep 11 2006, 15:28)

Цитата(hard @ Feb 6 2006, 22:49)

Кто-нибудь сталкивался с нестабильным стартом контроллера CY7C68013A при питании от USB?
У меня так было.
Поменял USB кабель на качественный USB2.0, всё заработало.
Проблема знакомая, а где их брать гарантированно качественные ?
Мне такие попадались, с надписью 2.0 , что вообще не работало.
AndreyS
Oct 3 2006, 08:53
Добрый день.
Что-то я запутался окончательно в спецификации USB. На сколько я понял (речь идет о фул спид) то шина поделена на временные интервалы. Период следования 1 мС.
Я передаю на этом чипе в балке с двойной буферизацией по 64 байта на буфер в EP6. на хосте висит только это устройство. Поучается что выше 128 кбайт/сек просто не вытянуть. Как заставить хост использовать всю полосу 12 мбит?? Или около того. Или надо уходить на изохрон с 512 байтами на канал?????
TailWind
Oct 3 2006, 10:39
Вместо:
Код
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
Пиши:
Код
WriteFile(..., 64*4, ...);
listener
Oct 3 2006, 13:18
Цитата(AndreyS @ Oct 3 2006, 12:53)

Добрый день.
Что-то я запутался окончательно в спецификации USB. На сколько я понял (речь идет о фул спид) то шина поделена на временные интервалы. Период следования 1 мС.
Я передаю на этом чипе в балке с двойной буферизацией по 64 байта на буфер в EP6. на хосте висит только это устройство. Поучается что выше 128 кбайт/сек просто не вытянуть. Как заставить хост использовать всю полосу 12 мбит?? Или около того. Или надо уходить на изохрон с 512 байтами на канал?????
Все просто. Трафик бывает с гарантированным и негарантированным временем доставки. bulk - негарантированный. Т.е., сначала идут control, interrupt и isochronous, а потом, все, что осталось, добивается bulk. Все, что не влезло в текущий фрейм, переносится в следующий. Здесь есть некоторые тонкости - но они целиком ложатся на хост. Если на клиенте работать только с bulk - о фреймах можно вообще не задумываться.
Так что, можно передавать блоки любого размера - драйвер должен поделить их на пакеты и корректно передать. Насколько это все правильно работает - зависит от реализации драйверов устройства и хоста. bulkusb из ddk с увеличенным буфером нормально справлялся с 800-900 КБ/с.
Вообще, на эту тему рекомендуется почитать описание работы хоста (UHCI - проще всего), ту главу, где рассказывается про сборку расписания - там есть наглядные схемы.
AndreyS
Oct 3 2006, 14:22
Огромное спасибо за ответы.
Для TailWind:
Я говорил о приеме данных в ХОСТ (о чтении хостом).
Для listener:
Получается что я на процесс повлиять не могу???
На хосте висит только мое устройство на CY7C68013 и передача в обе стороны идет в bulk. Вниз (в чип) идет по EP1OUT, обратно по EP6IN.
listener
Oct 3 2006, 14:55
Цитата(AndreyS @ Oct 3 2006, 18:22)

Получается что я на процесс повлиять не могу???
Да. Весь процесс обмена управляется с хоста.
Я сам с особо большини скоростями в IN не экспериментировал, но проблем быть не должно.
Цитата(AndreyS @ Oct 3 2006, 18:22)

Огромное спасибо за ответы.
Для TailWind:
Я говорил о приеме данных в ХОСТ (о чтении хостом).
Для listener:
Получается что я на процесс повлиять не могу???
На хосте висит только мое устройство на CY7C68013 и передача в обе стороны идет в bulk. Вниз (в чип) идет по EP1OUT, обратно по EP6IN.
А передача идет с использованием встроенного микроконтроллера??? Если так, то высокой скорости Вы не достигните, поскольку микроконтроллер будет явно не успевать писать(читать) данные в(из) буфер(а). Для большой скорости необходимо напрямую с FIFO эндпоинтов общаться по внешнему интерфейсу.
Цитата(listener @ Oct 3 2006, 17:18)

Все просто. Трафик бывает с гарантированным и негарантированным временем доставки. bulk - негарантированный. Т.е., сначала идут control, interrupt и isochronous, а потом, все, что осталось, добивается bulk. Все, что не влезло в текущий фрейм,
Если можно, один трудный (для меня) вопрос.
После нескольких беглых просмотров книжки Агурова по USB я так и не смог понять следующее:
сколько раз в течение одного 1мс-фрейма может меняться направление передачи информации?
(Посылки типа подтверждения приема не считаем).
Другими словаи, интересует реакция системы на базе USB на выдачу информации на периферийное устройство. Если хост что-то скомандовал периферийному устройству, то успеет
ли это устройство пердать ответ на вопрос хоста в том же фрейме или уже только в следующем?
Надеюсь, я понятно спросил

Спасибо.
listener
Oct 3 2006, 17:12
Цитата(SKov @ Oct 3 2006, 19:53)

Если можно, один трудный (для меня) вопрос.
После нескольких беглых просмотров книжки Агурова по USB я так и не смог понять следующее:
сколько раз в течение одного 1мс-фрейма может меняться направление передачи информации?
(Посылки типа подтверждения приема не считаем).
Другими словаи, интересует реакция системы на базе USB на выдачу информации на периферийное устройство. Если хост что-то скомандовал периферийному устройству, то успеет
ли это устройство пердать ответ на вопрос хоста в том же фрейме или уже только в следующем?
Надеюсь, я понятно спросил

Спасибо.
Теоретически, это возможно. Понятия направления для фрейма нет: каждая отдельная команда задает, передаются или принимаются данные. Т.е. читать и писать в одном фрейме - можно.
Можно ли получить ответ в том же фрейме - я сейчас затруднюсь ответить. Теоретически, такое возможно. Точно можно в одном фрейме передать команду и получить ответ на команды переданные в предыдущем фрейме. Разумеется, это только для bulk и время доставки не гарантируется.
AndreyS
Oct 3 2006, 17:40
Цитата(-Al- @ Oct 3 2006, 19:16)

А передача идет с использованием встроенного микроконтроллера??? Если так, то высокой скорости Вы не достигните, поскольку микроконтроллер будет явно не успевать писать(читать) данные в(из) буфер(а). Для большой скорости необходимо напрямую с FIFO эндпоинтов общаться по внешнему интерфейсу.
Да, передача формируется процом. Скорее всего вы правы. Большое спасибо за отрезвляющий ответ ;). Скорее всего я не там копаю. И до вопросов передачи в булк по УСБи обращаться еще рано.
Тогда вопрос.
Кто какую скорость выжимал на фулспиде при формировании передачи из ядра??
Цитата(AndreyS @ Oct 3 2006, 21:40)

Да, передача формируется процом. Скорее всего вы правы. Большое спасибо за отрезвляющий ответ

. Скорее всего я не там копаю. И до вопросов передачи в булк по УСБи обращаться еще рано.
Тогда вопрос.
Кто какую скорость выжимал на фулспиде при формировании передачи из ядра??
Ядром не пробовал, а вот при прямой работе с FIFO на FS у меня получалось 1Мбайт/сек, в принципе предельная скорость на FS.
Цитата(listener @ Oct 3 2006, 21:12)

Теоретически, это возможно. Понятия направления для фрейма нет: каждая отдельная команда задает, передаются или принимаются данные. Т.е. читать и писать в одном фрейме - можно.
Осталось только понять, от чего это зависит

От драйвера?
У меня чисто практическая задача. Связь МК с РС через CP2102 через VCP-драйвер.
Пишу на MSVC запись в файл (COM-port) 20тыс байт (по одному байту за одно обращение к WriteFile). Замеряю время - 20 сек. Т.е. передается по одному байту за фрейм.
Затем после каждой записи байта добавляю чтение одного байта (у CP2102 выход заведен на вход).
Получаю те же 20 сек! Получается, что в одном фрейме у меня идет и прием и передача.
Далее, ззаменяю 20тыс обращений к сом-порту по одному байту на 20 тыс обращений по 10 байт (запись - чтение). Получаю те же 20 сек! Это значит, что пакет может быть и не один байт без потери скорости обмена. Однако, уже при увеличении пакета около 50 байт происходит резкое увеличение (удвоение) времени обмена. Видимо, в один фрейм уже все не влезает и требуется два фрейма на один Write/Read. И окончателно все запутывает то, что отключение чтения из файла-СОМ-порта (только запись) не уменьшает время передачи. А вот если взять 2тыс записей по 500 байт (без чтения), то время опять получаем 20сек!! Ничего не понимаю! Да, забыл сказать, что скорость СОМ-порта 2Mbit, так что ограничения связаны только с USB-вопросами.
Остается вопрос : это все - свойства драйвера VCP ? особенностей реализации CP2102 ?
Или еще что-то? (Про причину - недостаток знаний у разработчика - я уже и сам догадался

)
AndreyS
Oct 4 2006, 11:05
Добрый день ВСЕМ!!!
Извиняюсь что не в тему, но вопрос связан в первую очередь с FX2.
Сколько времен на выполнение одной команды (51 ядра) на частоте ядра 48 МГц??????
По доке получается 4 цикла на команду (этоне касается настраиваемой команды MOVX). Получается, скажем скорость ядра, 12 МГц. Ставлю вывод на ножку 1 перед
6 командами PUSH и вывод 0 после них.
Делаю нескольких выполнений этого куска и замеряю на осце величину импульса. Делю время импульса на длительность одной команды (несущая 48 МГц длительность однй команды обратная величина 12 МГц) и получаю что должно было выполниться 13 команд при такой частоте (а я то выполнял 6 команд).

Ну думаю ядро не на 48 работает. Вывожу на 1 ножку проца (CLKout) частоту ядра (делители отключены) и наблюдаю 48 МГц.
Появляется логичный вопрос так сколько тактов на команду у проца?????
AndreyS
Oct 4 2006, 12:34
Черт.
Блин. Разобрался. 4 такта на цикл команды. И от 1 до 5 циклов на команду. Все сошлось.

Обидно
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.