Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > RS232/LPT/USB/PCMCIA/FireWire
Страницы: 1, 2, 3, 4, 5, 6
левша
Цитата(des00 @ Aug 13 2005, 18:12)
Господа спасибо всем за участие, проблема разрешилась.
Я не знаю почему, но на моем чипе EP8 со своим фифо не работатет.
sad.gif
для выяснения этого я подал на вход чипа (на шину данных) фиксированный код, стрбами рулила фпга, пакеты шли, но с полоной ахинеей.
когда сделал EP6 все стало нормально.
При этом EP8 в режиме не slave fifo работала(пример bulk loop из dev tools).
Почему так не знаю, erata на этот чип я не нашел.

Уфф ну и мозги потрепал мне этот чип  cranky.gif
*

только у моего начальника созрели планы использовать все 4 трубы...
спасибо что вовремя предупредили.

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

а ответы "Windows отстой" принимаються? smile.gif Я не системный программист, поэтому не могу сказать на все 100% изза чего, но вроде винды ещё никто не называл ОСРВ, да и протокол USB(кроме изохрона) не гарантирует фиксированой полосы пропускания. Сам щас думаю как можно решить эту проблему более щадящим образом чем поднятие приоритета, но тут похоже выбор не велик: либо приоритет гнать, либо буфер большим делать, либо ось менять.

Немного не по теме но всёже:
Я вот когда делал Capture со своей видиокамеры по FireWire и загрузил другую "жадную" программу то работа пошла смарку.
Trashy
Цитата(левша @ Sep 21 2005, 00:20)
только у моего начальника созрели планы использовать все 4 трубы...
спасибо что вовремя предупредили.


Все трубы пашут нормально.

Цитата
а ответы "Windows отстой" принимаються? smile.gif

Не принимаются. У меня к Винде претензий нет.
Цитата
Я не системный программист, поэтому не могу сказать на все 100% изза чего, но вроде винды ещё никто не называл ОСРВ, да и протокол USB(кроме изохрона) не гарантирует фиксированой полосы пропускания. Сам щас думаю как можно решить эту проблему более щадящим образом чем поднятие приоритета, но тут похоже выбор не велик: либо приоритет гнать, либо буфер большим делать, либо ось менять.
Немного не по теме но всёже:
Я вот когда делал Capture со своей видиокамеры по FireWire и загрузил другую  "жадную" программу то работа пошла смарку.

Винда(как и Бил Гейтс) тут не причём. Просто Кипарис не душил поток при переполненнии буфера, хотя в ПДФ сказано, что это всё делается автоматически.
des00
Цитата(Trashy @ Sep 20 2005, 22:56)
Все трубы пашут нормально.


Вам скрин шоты показать ?
Да все они работают нормально, но в режиме slave fifo EP8 на камне что стоит у меня на борде не работает. Причем не работает именно считывание инфы с шины данных.

smile.gif
Trashy
Цитата(des00 @ Sep 21 2005, 07:14)
Вам скрин шоты показать ?
Да все они работают нормально, но в режиме slave fifo EP8 на камне что стоит у меня на борде не работает. Причем не работает именно считывание инфы с шины данных.

smile.gif
*

Это кусок инициализации из моей проги.
От сюда видим, что восьмая и четвёртая труба пользуется в режиме авто!
Восьмая AUTOIN.
Уже 15 приборов продали.

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


И хорошо что продали smile.gif)

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


Дерьмо случается(ц)Гамп Форест. smile.gif
vad2
Господа,
помогите разрешить проблему. Разрабатываю USB2.0 устройство используя 68001 кристалл. Алгоритм инициализации следующий: дожидаюсь прерывания от кристалла READY, затем записываю нужные мне регистры, затем дескрипторы по адресу 300 (6 байт - VID, PID, DID). Все как описано в "CY3682 Design notes". После этого по идее нужно подключать устройство к usb шине для инициализации, что я и делаю, но винда 2000 вообще никак не реагирует (не видит устройства). В чем может быть проблема? В качестве контроллера использую FPGA.
Trashy
Цитата(vad2 @ Oct 21 2005, 12:06)
Господа,
помогите разрешить проблему. Разрабатываю USB2.0 устройство используя 68001 кристалл. Алгоритм инициализации следующий: дожидаюсь прерывания от кристалла READY, затем записываю нужные мне регистры, затем дескрипторы по адресу 300 (6 байт - VID, PID, DID). Все как описано в "CY3682 Design notes". После этого по идее нужно подключать устройство к usb шине для инициализации, что я и делаю, но винда 2000 вообще никак не реагирует (не видит устройства). В чем может быть проблема? В качестве контроллера использую FPGA.
*

Для начала рекомендую запустить с флешкой с дескрипторами по умолчанию.
И тут есть отдельная тема посвященная запуску SX2
ysb
Здравствуйте! Попробую задать свой вопрос тут)
Учусь программировать ezusb.Собрал простенькую програмку,записывающую определенное количество байт в fifo с порта.После загрузки hex'а в железку и перезагрузки железка не определяется виндой.
Исследования показали,что при провлема в ф-ии
void FIFORead(BYTE FIFO_EpNum)
{
while (!(GPIFTRIG &0x080))
{
;
}
GPIFTRIG = GPIFTRIGRD | FIFO_EpNum;
}
потому как без нее устройство определяется и все EP корректно работают.
Может я что-то глубоко не понимаю и надо использовать вэйвформы? В общем голову я уже сломал, помогите советом если не трудно
спасибо
Trashy
Цитата(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
ysb
Да,пользуюсь. Режим GPIF-master. Slave-FIFO режим это когда управляется внешней логикой? Вроде этот fifo-read вызываю как в мануале сказано.. А как вэйвформу программировать? через gpifdesigner?
ysb
а вы всегда на асме пишите? кейлом не пользуетесь?
Trashy
Цитата(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
Вопрос по драйверу CyUSB.
Не могу найти в нем возможности программно сбросить буфер драйвера. Никто не подскажет, как это сделать?
Kenav
Я задумал сделать концентратор. Все порты ввода/вывода и звук в USB. Хочу использовать CY7C68013 и ПЛИС. С портами я вроде бы как-то разобрался. Осталось со звуком решить. Встал вопрос с синхронизаций. Помогите кто чем может. Дайте ссылки какие-нибудь. У меня инфы кроме мануала практически нет. С юсб практически не работал. Почитал про него и понял, что надо разбираться с изохронным режимом. Заранее благодарен за помощь. cranky.gif
doppler
Помогите решить такую проблему: есть USB устройство подключенное к PC . Требуется переодически делать полный ресет, как при выдергивании и вставке smile.gif. Можно ли это сделать программно под Linux??
ysb
вопросы,к сожалению, продолжаются(cy7c68013a)
1.Каким образом в режиме GPIF-master запускаются транзакции? WaveData[128] = {...} занесена по адресу 0xE400-0xE47F, GPIF & EPs сконфигурены.
2.Не совсем понимаю ситему буферизации FIFO и передачи пакетов данных. Почему при пересылке из консоли каждый пакет закрывает буфер(т.е. в EP out, double buf возможно передать только 2 пакета независимо от их объема)?
спасибо за помощь
ysb
И снова здавствуйте, уважаемые господа. Возникла тут проблема следующего характера: программа работает на редкость нестабильно, т.е. то работает, то после перезагрузки не работает хотя изменений в код не вносится. С чем это может быть связано? Полностью ли очищается память dev kit'а при нажатии ресета или только при отключении питания от шины? Может ли проблема быть связана со случайным размещением программы в памяти железки?
спасибо за внимание
hard
Проблема с CY7C68013A.
При подключениии к PC CY7C68013A то определяется (VID_04B4&PID_8613), то не определяется (VID_0000&PID_0000). На девайсе стоит только CY7C68013A + супервизор, питание от USB. Формировать -Reset для CY7C68013A пробовал с помощью супервизора и с помощью RC цепи.
Кто-нибудь сталкивался с подобным?
dmitry-tomsk
Было такое дело при питании от USB на старом PC. Насколько помню, всё дело в питании. В своём проекте от питания USB отказался, от внешнего питания всё гораздо стабильнее работает. Знаю, сейчас ставят фильтры, где-то в форуме есть соответствующий топик.
smilermd
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.
hard
Проблема с 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" Блин, ну не линии же задержки городить..?
Питание относительно чистое, сброс честный.
hard
Снимаю шляпу!
Дело было не в бобине.
Cypress forever, а вот 8051... :-)
AndreyS
Цитата(hard @ Feb 6 2006, 23:39) *
Снимаю шляпу!
Дело было не в бобине.
Cypress forever, а вот 8051... :-)


Расскажи, плиз, в чем была проблемма и как от нее избавился???

Просто аналогичный трабл происходит у меня. Причем из 5 плат это происходит на с разной вероятностью на всех. Т.е. иногда при первом запуске все ок. Обычно это вылезает, когда комп перегружается. Т.е. после загрузки не работает. Лечится выкл/вкл питания. Но эта не стаильность просто бесит. Поставил дроссель по питанию. Вроде помогло, но пока не уверен что проблемма исчезла.
hard
Причины моих "проблем" совсем тупые:
1) PIN21 - Reserved. Connect to ground. Слово "Reserved" увидел сразу, а вот "Connect to ground" через некоторое время. После приземления все стало хорошо :-).
2) Хреновый USB конец (якобы "High Speed").
А в Вашем случае проблемы могут быть из-за драйвера.
AndreyS
Добрый день.
А какие драйвера используете вы??? Я использую дрова из СДК выкачанной еще в 2002 году версии 1.30.0.0.
Но она явно не устойчиво работает. Во-первых под XP SP2 именно SP2, а не апдейт для SP1. С этой виндой запуск контроллера вообще происходит очень редко. Как правило после прошивки все ендпоинты затыкаются. В общем ядро молчит. Так же эта версия глючно работает по 2000, но там она хоть работает. Под 98 все нормально. На сайте что-то я не нашел новых драйверов. Быть может они в пакете разработчика??? Может у вас есть свежие драйвера??? Желательно чтобы и под SP2 и под 2000 и 98. wink.gif Или ссылку на архив. Буду очень признателен.
hard
Для первого включения и прошивки eeprom:
http://www.cypress.com/portal/server.pt?sp...Driver%20v.6.01
http://www.cypress.com/portal/server.pt?sp...r%27s%20uStudio
А потом уже боевой драйвер с измененными VID/PID и т.д., которые писал другой человек (сам еще не умею).
Да, все это работало под WinXP SP2.
andrey98
Цитата
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 из вне, если да, то каким образом?
bzx
Чип CY7C68013 сейчас уже не актуален (не рекомендуется для новых разработок)
Ему на замену выпущен CY7C68023. Кто то пробовал его? Отличия от 13?
grumbler
Цитата(bzx @ May 29 2006, 19:56) *
Чип CY7C68013 сейчас уже не актуален (не рекомендуется для новых разработок)
Ему на замену выпущен CY7C68023. Кто то пробовал его? Отличия от 13?

Это совершенно разные чипы. На смену CY7C68013 выпущен CY7C68013а.
wladimiru
Цитата(grumbler @ May 29 2006, 20:06) *
Это совершенно разные чипы. На смену CY7C68013 выпущен CY7C68013а.

Именно так. И главное отличие CY7C68013а от CY7C68013 поддержка температуры -40 +85 град.
AlexSh
Реализую проект на CY7C68013А от CYPRESS . Имею board с CY7C68013А c чистым EEPROM . Поднял Cypress USB Console. На первой странице вижу Vendor ID и Product Id . С чего начинать учиться писать программы для внутреннего микроконтроллера 8051? Где взять компайлер для С (у меня есть Microsoft Visual Studio 5 ?) ? Где взять образцы простых программ для 8051 и как их запускать (делать Debug) ?
Gate
Цитата(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
Цитата(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
Я бы сначала посоветовал потренироваться на кошках, тобиш на голом 51,имхо начинать програмить с ципреса не лучший вариант
TailWind
Цитата(hard @ Feb 6 2006, 22:49) *
Кто-нибудь сталкивался с нестабильным стартом контроллера CY7C68013A при питании от USB?


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


У меня так было.
Поменял USB кабель на качественный USB2.0, всё заработало.

Проблема знакомая, а где их брать гарантированно качественные ?
Мне такие попадались, с надписью 2.0 , что вообще не работало.
AndreyS
Добрый день.

Что-то я запутался окончательно в спецификации USB. На сколько я понял (речь идет о фул спид) то шина поделена на временные интервалы. Период следования 1 мС.
Я передаю на этом чипе в балке с двойной буферизацией по 64 байта на буфер в EP6. на хосте висит только это устройство. Поучается что выше 128 кбайт/сек просто не вытянуть. Как заставить хост использовать всю полосу 12 мбит?? Или около того. Или надо уходить на изохрон с 512 байтами на канал?????
TailWind
Вместо:
Код
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);


Пиши:
Код
WriteFile(..., 64*4, ...);
listener
Цитата(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
Огромное спасибо за ответы.

Для TailWind:

Я говорил о приеме данных в ХОСТ (о чтении хостом).

Для listener:

Получается что я на процесс повлиять не могу???

На хосте висит только мое устройство на CY7C68013 и передача в обе стороны идет в bulk. Вниз (в чип) идет по EP1OUT, обратно по EP6IN.
listener
Цитата(AndreyS @ Oct 3 2006, 18:22) *
Получается что я на процесс повлиять не могу???


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

Для TailWind:

Я говорил о приеме данных в ХОСТ (о чтении хостом).

Для listener:

Получается что я на процесс повлиять не могу???

На хосте висит только мое устройство на CY7C68013 и передача в обе стороны идет в bulk. Вниз (в чип) идет по EP1OUT, обратно по EP6IN.

А передача идет с использованием встроенного микроконтроллера??? Если так, то высокой скорости Вы не достигните, поскольку микроконтроллер будет явно не успевать писать(читать) данные в(из) буфер(а). Для большой скорости необходимо напрямую с FIFO эндпоинтов общаться по внешнему интерфейсу.
SKov
Цитата(listener @ Oct 3 2006, 17:18) *
Все просто. Трафик бывает с гарантированным и негарантированным временем доставки. bulk - негарантированный. Т.е., сначала идут control, interrupt и isochronous, а потом, все, что осталось, добивается bulk. Все, что не влезло в текущий фрейм,


Если можно, один трудный (для меня) вопрос.
После нескольких беглых просмотров книжки Агурова по USB я так и не смог понять следующее:
сколько раз в течение одного 1мс-фрейма может меняться направление передачи информации?
(Посылки типа подтверждения приема не считаем).
Другими словаи, интересует реакция системы на базе USB на выдачу информации на периферийное устройство. Если хост что-то скомандовал периферийному устройству, то успеет
ли это устройство пердать ответ на вопрос хоста в том же фрейме или уже только в следующем?
Надеюсь, я понятно спросил wink.gif
Спасибо.
listener
Цитата(SKov @ Oct 3 2006, 19:53) *
Если можно, один трудный (для меня) вопрос.
После нескольких беглых просмотров книжки Агурова по USB я так и не смог понять следующее:
сколько раз в течение одного 1мс-фрейма может меняться направление передачи информации?
(Посылки типа подтверждения приема не считаем).
Другими словаи, интересует реакция системы на базе USB на выдачу информации на периферийное устройство. Если хост что-то скомандовал периферийному устройству, то успеет
ли это устройство пердать ответ на вопрос хоста в том же фрейме или уже только в следующем?
Надеюсь, я понятно спросил wink.gif
Спасибо.

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

Можно ли получить ответ в том же фрейме - я сейчас затруднюсь ответить. Теоретически, такое возможно. Точно можно в одном фрейме передать команду и получить ответ на команды переданные в предыдущем фрейме. Разумеется, это только для bulk и время доставки не гарантируется.
AndreyS
Цитата(-Al- @ Oct 3 2006, 19:16) *
А передача идет с использованием встроенного микроконтроллера??? Если так, то высокой скорости Вы не достигните, поскольку микроконтроллер будет явно не успевать писать(читать) данные в(из) буфер(а). Для большой скорости необходимо напрямую с FIFO эндпоинтов общаться по внешнему интерфейсу.



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

Тогда вопрос.

Кто какую скорость выжимал на фулспиде при формировании передачи из ядра??
-Al-
Цитата(AndreyS @ Oct 3 2006, 21:40) *
Да, передача формируется процом. Скорее всего вы правы. Большое спасибо за отрезвляющий ответ wink.gif. Скорее всего я не там копаю. И до вопросов передачи в булк по УСБи обращаться еще рано.

Тогда вопрос.

Кто какую скорость выжимал на фулспиде при формировании передачи из ядра??

Ядром не пробовал, а вот при прямой работе с FIFO на FS у меня получалось 1Мбайт/сек, в принципе предельная скорость на FS.
SKov
Цитата(listener @ Oct 3 2006, 21:12) *
Теоретически, это возможно. Понятия направления для фрейма нет: каждая отдельная команда задает, передаются или принимаются данные. Т.е. читать и писать в одном фрейме - можно.

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

Извиняюсь что не в тему, но вопрос связан в первую очередь с FX2.

Сколько времен на выполнение одной команды (51 ядра) на частоте ядра 48 МГц??????

По доке получается 4 цикла на команду (этоне касается настраиваемой команды MOVX). Получается, скажем скорость ядра, 12 МГц. Ставлю вывод на ножку 1 перед 6 командами PUSH и вывод 0 после них.
Делаю нескольких выполнений этого куска и замеряю на осце величину импульса. Делю время импульса на длительность одной команды (несущая 48 МГц длительность однй команды обратная величина 12 МГц) и получаю что должно было выполниться 13 команд при такой частоте (а я то выполнял 6 команд). huh.gif wacko.gif Ну думаю ядро не на 48 работает. Вывожу на 1 ножку проца (CLKout) частоту ядра (делители отключены) и наблюдаю 48 МГц. huh.gif wacko.gif

Появляется логичный вопрос так сколько тактов на команду у проца????? sad.gif
AndreyS
Черт.


Блин. Разобрался. 4 такта на цикл команды. И от 1 до 5 циклов на команду. Все сошлось. smile.gif

Обидно sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.