Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите USB2.0 контроллер!
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
Kadzak
Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!
Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...
torik
CY7C68013 - там хоть и меньше, но наверное больше и не надо
Stanislav
Цитата(Kadzak @ Mar 3 2006, 13:42) *
Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!
Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...
У Филипса посмотрите. Там есть из чего выбрать...
=AK=
Цитата(Kadzak @ Mar 3 2006, 20:12) *
Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?

Цитата(Kadzak @ Mar 3 2006, 20:12) *
Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.
asdf
Цитата(=AK= @ Mar 5 2006, 06:19) *
Цитата(Kadzak @ Mar 3 2006, 20:12) *

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?

Цитата(Kadzak @ Mar 3 2006, 20:12) *
Пользуем пока FX2 от Cypress, но у него FIFO 4 кбайта...

При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.


Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие (уд. на первый слог) проблемы создает малое количество конечных точек, тип трансфера и поточность обработки в PC.
=AK=
Цитата(asdf @ Mar 5 2006, 18:50) *
Действительно, на C8051F320 получаем свои несколько Мбит/сек имея буфер FIFO всего 64 байта. Большие проблемы (уд. на первый слог) создает малое количество конечных точек, тип трансфера и поточность обработки в PC.

Дык, Цыклон супротив FX2 как плотник супротив столяра (с) biggrin.gif FX2 покрывает USB как никто другой. Это, по сути, просто могучий насос для данных, к которому сбоку прикручен 51-й. На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет.
asdf
Цитата(=AK= @ Mar 5 2006, 12:38) *
На FX с USB1 мы получали 1 Мбайт/сек, а на FX2LP и USB2 планируем поиметь пару десятков Мбайт/сек. И ограничений пока не видать, на что USB способна, то из нее FX2 и выжмет.


Из поста было непонятно USB 2 - full или high spid.
Собираемся осваивать FX2. По Вашему опыту с чего лучше начинать 68013 или более поздних дивайсов (14-16)?
Stanislav
Цитата(=AK= @ Mar 5 2006, 06:19) *
Цитата(Kadzak @ Mar 3 2006, 20:12) *

Подскажите USB2.0 контроллер, с буфером FIFO емкостью не менее 6 кбайт!

Можно спросить, нафиг вам такое чудо?
........................
При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.
Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима. А если труб несколько, и между ними нужно быстро переключаться - тогда как?
v_mirgorodsky
По нашему опыту FX2 CY7C68013 превосходит способности ВСЕХ существующих на сегодняшний день хостов. Фактически он в состоянии "убить" любой USB 2.0 High-speed хост без каких бы то ни было проблем. В нашем случае получилось через USB 2.0 high-speed c использованием CY7C68013 пролить ~46MB/s, однако этот результат относится к разряду экстремальных и достижим только на некоторых материнских платах.
=AK=
Цитата(Stanislav @ Mar 6 2006, 01:01) *
Это не совсем так. Представьте себе, что данные валятся в контроллер с большой скоростью, сравнимой с физической пропускной способностью канала. Двойная буферизация здесь просто необходима.

Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно.

Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие?

Цитата(Stanislav @ Mar 6 2006, 01:01) *
А если труб несколько, и между ними нужно быстро переключаться - тогда как?

Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то?
Stanislav
Цитата(=AK= @ Mar 6 2006, 15:07) *
Не вижу в ней необходимости. И в этом случае буфер (и не двойной, а ФИФО) нужен только затем, чтобы временно накапливать данный пришедшие в те интервалы времени, когда USB занят "служебными" делами и не может гнать данные: передает SOFы, пингует, и т.п. На это 4-х кил достаточно...
Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации? Дело в том, что ФИФО - оно только со стороны внешней шины, а со стороны приемопередатчика - это два или более блока данных, каждый из которых передается за одну транзакцию по USB шине (пакета). Для получения максимальной пропускной способности канала, размер пакета должен быть максимальным (1К). При 4К памяти, следовательно, удается организовать только 2 конечных точки. А этого иногда недостаточно.
PS. Двойной (или более) буфер данных тоже можно интерпретировать, как ФИФО. Только единицей информации будет не байт, а целый пакет. smile.gif

Цитата
...Дополнительная буферизация может понадобиться только если большой поток данных в РС идет не равномерно, а "рывками". Что довольно трудно себе представить, т.к. каждый такой "рывок" должен намного превосходить пропускную способность USB2, т.е. иметь "плотность" в несколько десятков (существенно более 20) мегабайт в секунду. Это что ж за задачи такие?
Да нет, данные могут поступать и непрерывно. Не следует забывать, что передача информации стоновится возможной только по заполнении всего буфера эндпойнта и осуществляется пакетами.

Цитата
Цитата(Stanislav @ Mar 6 2006, 01:01) *

А если труб несколько, и между ними нужно быстро переключаться - тогда как?

Дык, буфера назначаются трубам при конфигурировании. Зачем переключаться-то?
Под "трубой" (pipe) я подразумеваю логическую связь между источником данных и приемником. Которую можно организовать только ассоциировав с каждым из них определенный(е) буфер(а) памяти контроллера. Если источников/приемников данных к контроллеру подключено несколько, и в процессе работы нужно переключать поток данных с одного на другой, с выделением памяти для соотв. эндпойнтов могут возникнуть проблеммы.
PKM
вышел недавно MAX3421E - USB Peripheral/Host Controller with SPI Interface. было бы интересно попробовать. правда, сомневаюсь, что в России его уже достать можно.
=AK=
Цитата(Stanislav @ Mar 7 2006, 16:00) *
Интересно, где Вы видели контроллер с ФИФО без минимум двойной буферизации?

Я всего лишь сказал, что железа, встроенного в FX2, более чем достаточно для большинства практических задач. С чем Вы, как я понял, изволили не согласиться, сославшись на то, что потребуется двойная буферезация. Что я воспринял так, что, по Вашему мнению, средств буферизации FX2 недостаточно, и ему нужен дополнительный внешний буфер. С чем, в свою очередь, уже я соблаговолил не согласиться, приведя свои резоны... biggrin.gif Короче, испорченный телефон какой-то cheers.gif
Kadzak
Поясню причину вопроса.
Есть видео-поток 640х480х3(RGB)х10(bit)х30(кадров/с).
30кадров - желательно, но (пока) не обязательно.

В изохронном режиме (1024) посколько за 1 посылку одной конечной точки (endpoint) отсылается только 3 пакета (max), то при 6 кбайт FIFO остается использовать либо 1 точку с 3-й буферизацией, либо 2 точки с двойной.

Так вот, если бы буфер был хотя бы 6к, то можно было бы использовать 2 точки с 3-й буферизацией, что позволило бы (если я всё до конца и правильно понимаю smile.gif ) приблизиться к максимуму быстродействия.

Нашел контроллер с 8к FIFO - Philips ISP1581.
Что это за чудо? Кто-нить работал с ним?
левша
Цитата(=AK= @ Mar 5 2006, 06:19) *
При пересылке в РС, пока вы в него пихаете свои данные, то что уже запихано раньше - успевает усвистеть по USB.

Скорее наоборот. В соответствии с документацией по FX2 максимально возможная скорость передачи/приёма данных в/из FIFO составляет 96 МБайт/сек, а в соответствии с документацией по USB 2.0 максимально возможная скорость по USB High Speed чуть выше 50 МБайт/сек.
Отсюда вывод что лишний объём FIFO ИМХО может потребоваться если только данные в FIFO поступают окольными путями, например через интерфейс UART или данные передаются с большой "мгновенной скоростью".
Под "мгновенной скоростью" я понимаю скорость передачи одного слова данных.
sergunas
Цитата(Kadzak @ Mar 13 2006, 20:05) *
Нашел контроллер с 8к FIFO - Philips ISP1581.
Что это за чудо? Кто-нить работал с ним?

Ну во-первых, лучше уж тогда Philips ISP1582, а во-вторых я бы не рекомендовал. Очень сложная документация у Philips на эти микросхемы, я можно сказать умер, пока разобрался и то наверное не до конца. Хотя максимальная теоретическая пропускная спопобность у ISP1582 не плохая: 38,15 МБайт/сек.
sergunas
Цитата(v_mirgorodsky @ Mar 6 2006, 14:39) *
По нашему опыту FX2 CY7C68013 превосходит способности ВСЕХ существующих на сегодняшний день хостов. Фактически он в состоянии "убить" любой USB 2.0 High-speed хост без каких бы то ни было проблем. В нашем случае получилось через USB 2.0 high-speed c использованием CY7C68013 пролить ~46MB/s, однако этот результат относится к разряду экстремальных и достижим только на некоторых материнских платах.

Похоже, скорость 46МВ/sec (сам тоже упёрся в эту цифру используя один bulk endpoint out с максимальным размером пакета данных 1024 байта) - это предел отправления данных уже хост контроллера ПК. Так что насчёт превосходства CY7C68013 над современными хостами вы абсолютно правы.
Kadzak
Цитата(sergunas @ Mar 20 2006, 15:00) *
[Похоже, скорость 46МВ/sec (сам тоже упёрся в эту цифру используя один bulk endpoint out с максимальным размером пакета данных 1024 байта) - это предел отправления данных уже хост контроллера ПК.

Один bulk endpoint с пакетом 1024? Это как??? ))
Если имеется ввиду bulk (512) с двойной буферизацией, то почему бы не взять тот же один enpoint, но с 4х-кратной буферизацией? За кадр (фрейм) тогда будут отсылаться 3 (ограничение USB) пакета по 512.
sergunas
Цитата(Kadzak @ Mar 23 2006, 10:53) *
Один bulk endpoint с пакетом 1024? Это как??? ))
Если имеется ввиду bulk (512) с двойной буферизацией...

Сам удивляюсь, но тем не менее именно bulk с длиной одного пакета 1024 + само собой двойная буферизация (получается общий размер буфера на bulk out и bilk in 4КБайта), нормально всё работает.

Цитата(Kadzak @ Mar 23 2006, 10:53) *
... почему бы не взять тот же один enpoint, но с 4х-кратной буферизацией? За кадр (фрейм) тогда будут отсылаться 3 (ограничение USB) пакета по 512.

К сожалению ISP не поддерживает 4-х кратной буфферизации, хотя двойной и так вполне достаточно на мой взгляд. А если бы за кадр отсылалось только 3 пакета по 512, то больше, чем 11,72 МБ/сек Вы бы не получили, обычная арифметика.
Kadzak
2 sergunas:
Т.е. вы выставили для bulk enpoint размер пакета 1024 и система это скушала, да еще и увеличение пропускной способности произошло? blink.gif
sergunas
Цитата(Kadzak @ Mar 24 2006, 12:53) *
2 sergunas:
Т.е. вы выставили для bulk enpoint размер пакета 1024 и система это скушала, да еще и увеличение пропускной способности произошло? blink.gif

ага, сам удивился, правда, когда поставил 2048, ну совсем обнаглев, так сказать, то узнал о новом очень быстром способе перезагрузки системы smile.gif
левша
Цитата(sergunas @ Mar 24 2006, 13:34) *
Сам удивляюсь, но тем не менее именно bulk с длиной одного пакета 1024 + само собой двойная буферизация (получается общий размер буфера на bulk out и bilk in 4КБайта), нормально всё работает.

ХМ..., вы только размер буфера поменяли или данные в дискрипторе конечной точки тоже?

Цитата('sergunas')
ага, сам удивился, правда, когда поставил 2048, ну совсем обнаглев, так сказать, то узнал о новом очень быстром способе перезагрузки системы

А какой драйвер вы используете свои или чейто, если чейто можно ссылку?
Я думую что некоторые нештатные режимы будет полезно узнать в рамках обсуждения данной темы.
sergunas
Цитата(левша @ Mar 27 2006, 18:47) *
ХМ..., вы только размер буфера поменяли или данные в дискрипторе конечной точки тоже?

Последнее

Цитата('sergunas')
А какой драйвер вы используете свои или чейто, если чейто можно ссылку?
Я думую что некоторые нештатные режимы будет полезно узнать в рамках обсуждения данной темы.

Использую драйвер USB_IO от Thesycon, есть на местном ftp. Пробовал Windriver (ссылки у меня нет), тоже всё окей.
левша
Цитата(sergunas @ Mar 28 2006, 09:52) *
Использую драйвер USB_IO от Thesycon, есть на местном ftp. Пробовал Windriver (ссылки у меня нет), тоже всё окей.

Слышал, но не захотел замарачиватся с COM (Common Object Model), у меня всё на CyUSB(от кипариса) прекрасно работает. Мне было интересно какой "подлец" у вас всё "обламывает" делая ребут. smile.gif Сомневаюсь что сигнал сброса генерит железо, остаётся либо цепочка виндовых дров нижнего уровня либо ваш USB_IO.
sergunas
Цитата(левша @ Mar 28 2006, 12:29) *
Слышал, но не захотел замарачиватся с COM (Common Object Model), у меня всё на CyUSB(от кипариса) прекрасно работает. Мне было интересно какой "подлец" у вас всё "обламывает" делая ребут. smile.gif Сомневаюсь что сигнал сброса генерит железо, остаётся либо цепочка виндовых дров нижнего уровня либо ваш USB_IO.

Перезагрузка через "синий экран смерти", так что однозачно либо Host контроллер, либо драйвера. Я особо не исследовал эту проблему, да и зачем, собственно ...
nikavano
Сорри если оффтоп. раз уж зашла речь о USB_IO драйвере. не подкинет ли кто таблетку к онному драйверу версии 2.20 или 2.0. Замучал он меня своими пребованиями поребутиться. Заранее Спасибо. nikavano@newmail.ru
NahaL
Цитата
Собираемся осваивать FX2. По Вашему опыту с чего лучше начинать 68013 или более поздних дивайсов (14-16)?


А они различаются не принципиально, потребление питания, да и одним пином. Вообщем без разницы
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.