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

Помогите советом.

Есть USB устройство класса CDC, которое управляется от PC как Virtual COM Port, нужно управлять им от контроллера AT91SAM7X256. Протокол простой. Пакет отпровил, ответ принял, как я понимаю через 2 и 3 endpoint.

1. Можно ли запрограммировать данный контроллер для этих целей, или нужен другой с функциями HOST USB.

2.Что нужно знать, чтобы его грамотно запрограмировать.

3.Если можно то дайте ссылки на примеры.

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


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

1. Нельзя, нужен контроллер с host-портом (например, LPC23xx/24xx).

2. В идеале - знать спецификацию USB и CDC.

3. У NXP есть ну очень простой пример для работы с USB-флеш. Можно взять его за основу.

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


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

1. Нельзя, нужен контроллер с host-портом (например, LPC23xx/24xx).

2. В идеале - знать спецификацию USB и CDC.

3. У NXP есть ну очень простой пример для работы с USB-флеш. Можно взять его за основу.

Контроллер с host-портом - это обязательно? Мне не нужно реализовывать все его функции. Мне нужно назначить устройству адрес, и далее через 2 и 3 точку обмениваться данными, или я не прав? (пока только начал разбираться)

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


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

Контроллер с host-портом - это обязательно?

Обязательно. Хост и устройство - принципиально различные вещи.

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


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

Обязательно. Хост и устройство - принципиально различные вещи.

А в кратце, что нельзя принципиально сделать? Пока про HOST не читал.

Я можно ли USB завести на како-нибудь FTDI конвертор и работать через UART?

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


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

А в кратце, что нельзя принципиально сделать? Пока про HOST не читал.

Вкратце уже написал выше.

 

Я можно ли USB завести на како-нибудь FTDI конвертор и работать через UART?

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

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


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

Поставлю вопрос по другому.

Куплено устройство (не дешёвое) с единственным USB можно ли его как нибудь подключить к контроллеру без USB Hosta?

Какие ещё есть контроллеры с USB HOST кроме LPC?

 

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

А как это устройство должно дружить с FTDI чипами?

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


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

Куплено устройство (не дешёвое) с единственным USB можно ли его как нибудь подключить к контроллеру без USB Hosta?

У FTDI есть продукт под названием Vinculum. Это маленький контроллер с USB-хостом и UART/SPI для связи с внешним миром. Есть поддерживающие CDC.

 

Какие ещё есть контроллеры с USB HOST кроме LPC?

Их много и разных, в том числе и у Атмела.

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


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

У FTDI есть продукт под названием Vinculum. Это маленький контроллер с USB-хостом и UART/SPI для связи с внешним миром. Есть поддерживающие CDC.

Спасибо за Vinculum. Буду смотреть.

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


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

Vinculum IMHO не особо рассчитан на работу с CDC. Вот [видимо] под флешки -- да, а CDC под него приходится писать руками, в случае если дескрипторы Вашего устройства в точности не совпадают с приведенными в документации от FTDI. Протокол общения КРАЙНЕ неудобный. Цена одного кристалла на уровне мелкого арма с USB хостом. И, еще такая мелочь, у меня не вышло опрашивать interrupt endpoint. Вообще. Не то что с заданной периодичностью ( с чем кстати тоже проблемы, так как временные интервалы опроса Interrupt EP обычно маленькие, а UART штука медленная, да плюс еще чудо-протокол от Vinculum ), а вообще что-либо получить от него не удается. В общем о Vinculum остались тяжелые воспоминания.

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


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

Vinculum IMHO не особо рассчитан на работу с CDC. Вот [видимо] под флешки -- да, а CDC под него приходится писать руками, в случае если дескрипторы Вашего устройства в точности не совпадают с приведенными в документации от FTDI.

Я пока что ещё читаю. Мне не понятно что значит "приходится писать руками", это что написать полностью программу USB hosta и залить свою прошивку в Vinculum. Я этого совсем не хочу.

И 2 вопрос - если можно ссылку на дискрипторы с которыми должно совпадать моё устройство.

Дело в том, что я даже не знаю к какому классу оно относится. Производитель не предлагает программы работы с ним. Общение идет через Hyperterminal посредством простых команд. Как мне определить класс данного устройства. Оно видится в PC как виртуальный КОМ порт, и работает через стандартный драйвер usbser.sys. Может там вообще стоит мост USB-XXXX от FTDI? И к какому классу оно относится в таком варианте?

Кто нибудь работал с VDRIVE2 модулем. Мне представляется следующее: вставляем устройство в порт 2 оно как то определяется, затем переводим в Data Mode и шлём команды (данные) непосредственно в устройство. Поправьте если я не прав.

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


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

Я пока что ещё читаю. Мне не понятно что значит "приходится писать руками", это что написать полностью программу USB hosta и залить свою прошивку в Vinculum. Я этого совсем не хочу.

Вы слышали про программу usbview.exe? Она вам поможет понять, что с ЮСБ ничего по простому не делается. Вам надо не посто всю программу хоста, еще и весь набор драйверов к этому устройству. А чем вы замените "стандартный драйвер usbser.sys"? Если там фтди, то можно портировать кусок линуксового драйвера.... В общем перед вами огромный фронт работы при любом раскладе...

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


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

Нет, не при любом раскладе. Если чтобы работало абы как - то расклад может уменьшиться. (Взять хотя бы HostLite от NXP)

А если чтобы все работало и было устойчиво к сбоям - то работы действительно туча!

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


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

Вы слышали про программу usbview.exe? Она вам поможет понять, что с ЮСБ ничего по простому не делается. Вам надо не посто всю программу хоста, еще и весь набор драйверов к этому устройству. А чем вы замените "стандартный драйвер usbser.sys"? Если там фтди, то можно портировать кусок линуксового драйвера.... В общем перед вами огромный фронт работы при любом раскладе...

Я спрашивал несколько другие вещи. Я естественно не хочу ничего этого писать, ни программу hosta ни драйверов. Я просто хочу разобраться можно ли использовать для этого Vinculum. Тем более производитель данного устройства такой возможности не даёт, а предлагает готовые прошивки, годные, как он утверждает, на все случаи жизни. Вот из DS - "General Purpose USB peripherals include Printers, Communication Class Devices, Human Interface Devices, FTDI USB Serial Devices, and USB Hubs. USB peripherals can be accessed using command monitor commands to send SETUP, DATA IN and DATA OUT packets."

Вот я и спрашиваю у тех кто имеет опыт работы с Vinculum, возможно ли организовать простой обмен данными с моим устройством, что я о нём знаю, я уже написал. Ведь DATA IN and DATA OUT packets можно посылать...

 

Нет, не при любом раскладе. Если чтобы работало абы как - то расклад может уменьшиться. (Взять хотя бы HostLite от NXP)

А если чтобы все работало и было устойчиво к сбоям - то работы действительно туча!

Это как я понимаю для контроллеров LP23/24, а я говорю о Vinculum. Ни объемы, ни скорости мне не нужны.

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


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

Я спрашивал несколько другие вещи. Я естественно не хочу ничего этого писать, ни программу hosta ни драйверов. Я просто хочу разобраться можно ли использовать для этого Vinculum. Тем более производитель данного устройства такой возможности не даёт, а предлагает готовые прошивки, годные, как он утверждает, на все случаи жизни.

файл UM_VinculumFirmware_V205.pdf, chapter 9.2.4, CDC device support -- рассказывает какие именно дескрипторы должны быть у Вашего CDC устройства. Посмотреть какие они есть можно с помощью уже рекомендованной тулзы UsbView, есть еще триально-доступный USBLyzer, который эту же информацию показывает в более доступном виде. Вы можете подключить Ваше устройство к PC и посмотреть его дескрипторы. В случае если это FTDI переходник -- у Вас скорее всего не будет проблем с Vinculum, см например пункт 4.2.1 этого же документа. Так как FTDI переходники -- это "родные" для Vinculum устройства.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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