Перейти к содержанию
    

Подскажите controller USB 2.0

Со стороны плиса все просто - достаточно ман почитать. На примеры - дольше будете медитировать :) (но если что - обращайтесь можно в личку)

А с программной частью (в т.ч. программой для контроллера) увы помочь не могу

Изменено пользователем Gothard

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Eth PHY не дешевле USB PHY, это раз, для Eth еще транс нужен, это два, а возни с софтом примерно одинаково, если raw сокеты сравнивать с iso transfer. А если углубиться в гарантию доставки и целостности - то USB проще, так как там это на уровне IP-ядра, а не TCP-стека.

На самом деле, на предыдущей работе начальник проекта именно так и зарядил: "хочу USB"...

Кабель только немецкий с золочеными разъемами... Промышленного исполнения - нет...

Дальше 2-х метров никак...

А главная прелесть - уж если сбился и завис... Сам по себе никогда не восстановится. Пока не переткнешь разъем или не перезапустишь сервис...

 

Поэтому трижды подумайте над USB...

А если Ethernet, то посмотрите KSZ8841.

Материалы об этом у меня на сайте и на сайте Элтеха... Там все достаточно подробно.

Удачи!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

,а вот CY7C68013,да, он то,что нужно. У Вас примеры не завалялись,случайно?

Нет, примеров нет, я сразу делал проекты целиком.

А на этот CY7C68013 отладочной платы не продаётся,случайно?чтобы можно было не паять ничего пока, взять готовую платку и попробовать поработать с отладочником на ПЛИС?

Отладочники есть, в т.ч. и у самого цайпреса, но только толку от них IMHO мало. Чтобы начать работу - достаточно просто взять микруху в 56-пиновом корпусе, подать на нее питание, подключить кварц, и все. Даже EEPROM-ина, и та опциональна. На ПЛИС пустить интерфейс Slave FIFO (это почти все оставшиеся I/O ноги), ну и плюс ко всему через эту же микруху можно грузить и саму ПЛИС конфигурацией (данный мост умеет грузить свою программу через USB, чем я всегда пользуюсь).

 

Сам по себе никогда не восстановится. Пока не переткнешь разъем или не перезапустишь сервис...

Ну вот это - заблуждение. "перетыкание" можно инициировать со стороны USB-девайса на раз без физического разъединения в разъеме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возиться вдоволь,как раз не охота,да и по времени,боюсь не успею,по-этому корки не будет,а вот CY7C68013,да, он то,что нужно. У Вас примеры не завалялись,случайно?Буду признателен,если завалялись и если подсобите.

А на этот CY7C68013 отладочной платы не продаётся,случайно?чтобы можно было не паять ничего пока, взять готовую платку и попробовать поработать с отладочником на ПЛИС?

Покопайтесь в разделе по интерфейсам, там CY7C68013A обсуждалась много.

У меня особых проблем небыло, почитав форум и доки без особых проблем всё запустилось.

Всё проблемы и глюки были из-за собственных ошибок. Использовал FIFO режим, 8 бит.

Обратите кстати внимание (а тосам как-то просмотрел, не мог понять что за фигня), что в USB

данные ходят пакетами, а не потоком.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остановлюсь,пожалуй,на USB.

 

to Maverick : к DS-FT2232H ещё и дрова прилагаются?я правильно понял,что в таком случае только клиентское ПО написать остаётся и можно,взяв эту платку и, например,ПЛИС организовать обмен с ПК?

 

to SM : Можете по-подробнее рассказать про загрузку ПЛИС через CY7C68013A?В каких случаях такая конфигурация удобнее, чем прошивка JTAGом?

 

всем:

P.S. Просьба великодушных поделиться фрагментом принципиалки, где ПЛИС с CY7C68013A стыкуются. :rolleyes:

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to SM : Можете по-подробнее рассказать про загрузку ПЛИС через CY7C68013A?В каких случаях такая конфигурация удобнее, чем прошивка JTAGом?

Ну мне это просто для производства удобно. Шью без каких либо доп-приблуд. Плюс места под отдельный разъем для зашивки на плате нет. Как сделал? У меня ПЛИС LatticeXP. Я завел с ног CY на JTAG плисы TMS, TDO, TCK и TDI, и реализовал в CY JTAG-автомат, а на PC SVF-плеер, работающий через этот JTAG-автомат. Из среды разработки ПЛИС я генерирую файл SVF, и своим плеером шью в ПЛИС.

 

Кстати - у цайпреса и дрова прилагаются в комплекте. Через них можно сделать все необходимое, включая загрузку софта с PC через USB. Правда я никогда не занимался оценкой максимальной скорости потока, котрый через этот драйвер можно прогнать

 

P.S. Просьба великодушных поделиться фрагментом принципиалки, где ПЛИС с CY7C68013A стыкуются. :rolleyes:

 

Вот. Главное - IFCLK с CY подать на клоковый вход ПЛИС (у меня заведено на две ноги - не обращать внимание, завести только на одну, являющуюся клоковходом). Других нюансов нет, пожалуй кроме того, что для прошивки ПЛИС я использую те же пины FD, которые в обычном режиме скоростная шина данных. Это сделано за счет того, что сигнал TCK JTAG-а ПЛИС взят с отдельной ноги, не задействованой при передаче данных, и во время нормальной работы там на TCK перепадов нет, соответственно на TMS и TDI можно творить что угодно.

post-2881-1258028776_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остановлюсь,пожалуй,на USB.

 

to Maverick : к DS-FT2232H ещё и дрова прилагаются?я правильно понял,что в таком случае только клиентское ПО написать остаётся и можно,взяв эту платку и, например,ПЛИС организовать обмен с ПК?

 

Да , верно понимаете. FT чипы весьма привлекательные, т.к есть уже добротные дрова.

Правда я не разобрался , какая же у них макс скрость передача потока данных ? (использовал только в низкоскоростных приложениях) .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Варианты от NEC:

UPD78F073x - простой вариант

http://www.eu.necel.com/micro/product/devi...it-USB-AllFlash

и варианты поинтереснее V850ES-USB, V850ES-Ethernet

http://www.eu.necel.com/micro/product/devi...it-USB-AllFlash

http://www.eu.necel.com/micro/product/devi...hernet-AllFlash

можно отлаживатья своими силами или купить комплект

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Остановлюсь,пожалуй,на USB.

 

to Maverick : к DS-FT2232H ещё и дрова прилагаются?я правильно понял,что в таком случае только клиентское ПО написать остаётся и можно,взяв эту платку и, например,ПЛИС организовать обмен с ПК?

 

ДА. Вот ссылки на них

 

Virtual com port drivers

Direct drivers

примеры написания программ под Windows

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У нас стояла точно такая-же задача: с девайса идет поток данных, его необходимо принять на хосте. Нами была разработана плата: прием потока на FPGA, небольшая обработка (можно и без нее), передача с FPGA потока на USB контроллер (Cypress FX2LP), далее передача на хост.

 

Задачу успешно решили. Кабель обычный, не очень хороший. Длина 1.5 метра примерно (для нас и 1 метра достаточно). Поток (полезные данные) 45 МБ/сек, то есть 360 Мбит/с. Это СРЕДНЯЯ скорость! Не пиковая! Запускали непрерывно на 48 часов (несколько раз, разные платы) - средняя скорость именно на таких интервалах. Девиация по скорости не более 1-2%, то есть нет такого что скачет скорость. Запускали много раз - вообще как прихожу на работу с утра так включаю до вечера - молотит :biggrin:

Поток на стороне хоста проверяется на 100% - то есть делаем генератор с известной функцией (скажем счетчик который считает через 7, ну и кучу других тестов) и на хосте проверяем каждый принятый байт - не было ни разу ни одной ошибки и ни одного зависания.

 

У меня комп - двухъядерник - пробовали запускать две копии проги типа burnk7.exe (загрузка проца) - комп шизеет, конечно, от такой нагрузки. Скорость передачи потока проседает до 20 МБ в секунду, но ошибок и сбоев нет ни одной по прежнему.

 

Теоретический предел по скорости - порядка 53 МБ в секунду (я имею в виду "полезную нагрузку"). Пробовали на разных компах - самый быстрый 45.5-45.8 МБ/с - это опять средняя. Я думаю что проблема уже в самом HUB на хосте - кроме того, он также вероятно юсает часть канала (USB потока) для своих нужд.

 

С целью исследований "КПД" передачи написали комплекс "фирмваре-софтваре", которое кидает на хост данные о том, какой фрейм и микрофрейм в данный момент передаются (терминология USB стандарта). Фирмваре по сути взят почти без переделок из примеров от Cypress. А софт на хосте анализирует - насколько эффективно используется канал. Дело в том, что для Bulk передачи (для Iso есть подобные таблицы) в стандарте четко написано, что максимум скорости можно получить при размере блока данных = 512 байт, при этом в пределе в каждый микрофрейм поместится 13 таких блоков данных (13 блоков в микрофрейме, 8 микрофреймов в фрейме, 1 фрейм = 1 миллисекунда, итого 53248000 байт в секунду). Видно, что передач "13 блоков в микрофрейме" не было вообще ни разу (за все время тестирования). Обычно 10-11 блоков в микрофрейме. Ну, реально там гистограммки выводятся у нас - распределение количества блоков в одном микрофрейме. Обычно есть микрофреймы и с 2-3 блоками и с 10-11. На одном компе у нас получилось, что в гистограмме только один пик - 11 (45056000 байт в секунду).

 

Насчет КИТА - на мой взгляд, который разделяют все мои коллеги - КИТ это архинужная вещь. Настоятельно рекомендую прибрести КИТ от Cypress- CY3684 - посмотрите на сайте. Мой опыт работы (не только с USB) показывает, что экономить на таких вещах не просто глупо, но и чревато серьезными системными ошибками.

С помощью КИТа вы сможете проверить кучу режимов, которые в своей схеме вы физически не сможете проверить. Разберетесь с "тонкими" местами и т.п.

Но, подчеркиваю, это мое личное мнение (и моих коллег) - знаю кучу людей, которые работают без КИТов. В общем, вам решать.

 

Насчет FTDI - имхо это "затычка на первое время", ну или если "много не надо, хватит и того что есть" . Функционал сравнивый с тем что дает контроллер типа FX2LP недостижим в принципе. Скорость передачи - насколько я знаю выше 20-25 МБ в секунду стабильно никто не получал.

 

P.S. Еще по поводу зависаний

Хоть нам и не требовалось по условиям задачи, но "для себя" сделали так: идет передача на полной скорости (порядка 360 МБит/c), выдергиваешь кабель из разъема на компе (или из платы) - прога на хосте пишет "Device not detected", втыкаешь кабель обратно - синхнронизируется (я имею в виду наш уровень передачи данных, на уровне USB вообще все четко отрабатывает) и работает дальше без ошибок. Не скажу, что делали такое "вдергивание-выдергивание" тысячи раз, но несколько сотен точно - ни одного зависания не было. Тракт передачи данных восстанавливается за расчетное время (как написана прога на хосте).

Изменено пользователем mikeT

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to mikeT

Не подскажите, какой драйвер использовали, южный мост (чипсет)? В один эндпоинт писали? У меня скорость похуже получилась, максимум было на NVIDIA nForce3 с одноядрным Athlon. На всех современных материнках с 2-4 ядерными процами от Intel и AMD меньше скорость.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

to mikeT

Не подскажите, какой драйвер использовали, южный мост (чипсет)? В один эндпоинт писали? У меня скорость похуже получилась, максимум было на NVIDIA nForce3 с одноядрным Athlon. На всех современных материнках с 2-4 ядерными процами от Intel и AMD меньше скорость.

 

У меня материнка ASUS P5Q (какой там чипсет - не смотрел даже), процессор - Intel Core Duo E8500 3.17ГГц, память - 4ГБ, но реально 3ГБ видно, так как ОС WinXP SP3 (32 bit).

 

Загрузка проца при передаче потока на скорости 45 МБ в секунду (если не делать тотальный контроль всего потока) - не более 5% (точно не помню, но мало).

Программа на хосте при этом принимает блоки данных от драйвера, парсит их в видеофреймы (вообще-то можно проверку и тут тотальную включить, но я пишу про вариант без проверки) и льет на экран диаграмму "КПД" канала - 1040*1000 пикселей. Я делал чисто через GDI - по уму надо юсать DirectX и т.п.

 

Писал в один ендпойнт, причем использую пока тупо дефаултную конфигурацию (FX2LP), которую он имеет при старте. Конкретно юсаю EP6, In, 512 Bulk, 2 буфера (пробовал на 4-х - написал свой конфиг - получается еще быстрее, но пока нам это неактуально). Подключал несколько устройств на один хаб - они честно делят между собой канал - скорость падает есс-но у каждого, но общая такая-же

 

Драйвер использую обычный - CyUSB.sys - так вроде называется.

 

Скорость 44-45.5 достигается на ряде компов которые были "под рукой". Дома на ноутбуке (не бодрый совсем, скорее "середнячок") - скорость порядка 40-41.

На старом компе (9 лет древний - Атлон 1133, нет своего УСБ 2.0, вставил какую-то плату в PCI, шланг до хаба - 1.5 метра, шланг до нашей платы 1.5 метра - скорость в районе 15 МБ в секунду)

 

P.S. Правда, драйвер похоже немного глючный - были проблемы с передачей блоками размера иного чем 64кБ, но это проявлялось на скорости выше 30 МБ в секунду и возможно зависит от того, как организована подсистема (на хосте), которая работает непосредственно с драйвером

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Драйвер использую обычный - CyUSB.sys - так вроде называется.

Может все таки ezusb.sys, который идет в комплекте от самого цайпреса?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может все таки ezusb.sys, который идет в комплекте от самого цайпреса?

 

Нет. посмотрел специально. именно CyUSB.sys. Версия 1.07. Вроде это не самый новый, но я не уверен. Он тоже идет "в комплекте". С китом точно идет. да и без кита тоже добывается "на раз".

Драйвер EzUSB.sys - (он даже вроде бы шел с исходниками) это несколько другая вещь, хотя его тоже можно использовать. Но тут на форуме люди писали, что CySUB.sys получше (стабильность в частности, насчет скорости не знаю). И Cypress что-то похожее писал - я разобрался в этом вопросе, начал юсать CyUSB.sys, но детали к сожалению забыл :rolleyes: (просто сейчас осталось в голове "лучше юсать CyUSB.sys" и все)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...