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

 
 
19 страниц V  « < 8 9 10 11 12 > »   
Reply to this topicStart new topic
> USB, EZ-USB FX2
TailWind
сообщение Sep 11 2006, 11:28
Сообщение #136


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 15-11-04
Пользователь №: 1 135



Цитата(hard @ Feb 6 2006, 22:49) *
Кто-нибудь сталкивался с нестабильным стартом контроллера CY7C68013A при питании от USB?


У меня так было.
Поменял USB кабель на качественный USB2.0, всё заработало.
Go to the top of the page
 
+Quote Post
grumbler
сообщение Sep 11 2006, 11:37
Сообщение #137


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 10-07-04
Из: Зеленоград
Пользователь №: 310



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


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

Проблема знакомая, а где их брать гарантированно качественные ?
Мне такие попадались, с надписью 2.0 , что вообще не работало.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Oct 3 2006, 08:53
Сообщение #138


Местный
***

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



Добрый день.

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


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
TailWind
сообщение Oct 3 2006, 10:39
Сообщение #139


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 15-11-04
Пользователь №: 1 135



Вместо:
Код
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);
WriteFile(..., 64, ...);


Пиши:
Код
WriteFile(..., 64*4, ...);
Go to the top of the page
 
+Quote Post
listener
сообщение Oct 3 2006, 13:18
Сообщение #140





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



Цитата(AndreyS @ Oct 3 2006, 12:53) *
Добрый день.

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


Все просто. Трафик бывает с гарантированным и негарантированным временем доставки. bulk - негарантированный. Т.е., сначала идут control, interrupt и isochronous, а потом, все, что осталось, добивается bulk. Все, что не влезло в текущий фрейм, переносится в следующий. Здесь есть некоторые тонкости - но они целиком ложатся на хост. Если на клиенте работать только с bulk - о фреймах можно вообще не задумываться.

Так что, можно передавать блоки любого размера - драйвер должен поделить их на пакеты и корректно передать. Насколько это все правильно работает - зависит от реализации драйверов устройства и хоста. bulkusb из ddk с увеличенным буфером нормально справлялся с 800-900 КБ/с.

Вообще, на эту тему рекомендуется почитать описание работы хоста (UHCI - проще всего), ту главу, где рассказывается про сборку расписания - там есть наглядные схемы.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Oct 3 2006, 14:22
Сообщение #141


Местный
***

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



Огромное спасибо за ответы.

Для TailWind:

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

Для listener:

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

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


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
listener
сообщение Oct 3 2006, 14:55
Сообщение #142





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



Цитата(AndreyS @ Oct 3 2006, 18:22) *
Получается что я на процесс повлиять не могу???


Да. Весь процесс обмена управляется с хоста.
Я сам с особо большини скоростями в IN не экспериментировал, но проблем быть не должно.
Go to the top of the page
 
+Quote Post
-Al-
сообщение Oct 3 2006, 15:16
Сообщение #143


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



Цитата(AndreyS @ Oct 3 2006, 18:22) *
Огромное спасибо за ответы.

Для TailWind:

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

Для listener:

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

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

А передача идет с использованием встроенного микроконтроллера??? Если так, то высокой скорости Вы не достигните, поскольку микроконтроллер будет явно не успевать писать(читать) данные в(из) буфер(а). Для большой скорости необходимо напрямую с FIFO эндпоинтов общаться по внешнему интерфейсу.
Go to the top of the page
 
+Quote Post
SKov
сообщение Oct 3 2006, 15:53
Сообщение #144


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



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


Если можно, один трудный (для меня) вопрос.
После нескольких беглых просмотров книжки Агурова по USB я так и не смог понять следующее:
сколько раз в течение одного 1мс-фрейма может меняться направление передачи информации?
(Посылки типа подтверждения приема не считаем).
Другими словаи, интересует реакция системы на базе USB на выдачу информации на периферийное устройство. Если хост что-то скомандовал периферийному устройству, то успеет
ли это устройство пердать ответ на вопрос хоста в том же фрейме или уже только в следующем?
Надеюсь, я понятно спросил wink.gif
Спасибо.
Go to the top of the page
 
+Quote Post
listener
сообщение Oct 3 2006, 17:12
Сообщение #145





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



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

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

Можно ли получить ответ в том же фрейме - я сейчас затруднюсь ответить. Теоретически, такое возможно. Точно можно в одном фрейме передать команду и получить ответ на команды переданные в предыдущем фрейме. Разумеется, это только для bulk и время доставки не гарантируется.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Oct 3 2006, 17:40
Сообщение #146


Местный
***

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



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



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

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

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


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
-Al-
сообщение Oct 3 2006, 17:56
Сообщение #147


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 10-06-05
Из: Россия, Москва
Пользователь №: 5 894



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

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

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

Ядром не пробовал, а вот при прямой работе с FIFO на FS у меня получалось 1Мбайт/сек, в принципе предельная скорость на FS.
Go to the top of the page
 
+Quote Post
SKov
сообщение Oct 4 2006, 09:35
Сообщение #148


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(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)
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Oct 4 2006, 11:05
Сообщение #149


Местный
***

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



Добрый день ВСЕМ!!!

Извиняюсь что не в тему, но вопрос связан в первую очередь с 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


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Oct 4 2006, 12:34
Сообщение #150


Местный
***

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



Черт.


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

Обидно sad.gif


--------------------
Удачи.
Go to the top of the page
 
+Quote Post

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

 


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


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