Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USB Host для подключения FT232
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Pasha_a13
Добрый день!

Прошу совета-помощи по возникшей проблеме.

Имеются устройства, в которых USB реализован на FT232. При подключении к компьютеру видно что устройства постоянно выдают пакеты данных на скорости 115200.
Возникла необходимость разработки хоста, к которому будут подключаться данные устройства и который будет принимать и обрабатывать эти пакеты данных.
Однако, просмотрев зарубежные форумы, встретил плохие обзывы по поводу USB хоста для FT232, пишут что не хочет работать и предлагают уходить от FT232. К сожалению, в данной ситуации нет возможности уйти от FT232, т.к. устройства уже есть и их нужно использовать.

Может ли кто-то что-то посоветовать по этому поводу?
Есть ли у кого-то опыт в подобных вещах?

Спасибо!
Leopoldius
Добрый день. К сожалению телепаты в отпуске. Могли бы вы более подробно описать, что именно вы хотите сделать? Получить информацию со стороны USB? или с другой стороны микросхемы? Если с другой стороны, то для начала необходимо определится с каким интерфейсом имеете дело. Это вы можете сделать при помощи осцилографа и логического анализатора. Далее в зависимости от задачи. smile3046.gif

В простейшем случае, если вы хотите на пк разбирать инфорацию - и если доступен COM порт, судя по тому как вы пишете о скорости 115200, то берете пакеты и работаете с ними))
Pasha_a13
В устройствах микросхема FT232 используется по своему назначению как преобразователь UART-USB. Изначально эти устройства рассчитаны на подключение к ПК через USB. На ПК используется специальный софт, который принимает данные с устройств и отображает информацию о состояниях устройств, пишет логи.
Однако возникла необходимость собирать данные с этих устройств без помощи ПК, т.е. рядом с устройством располагать еще одно устройство(микроконтроллер+обвязка), которое будет иметь на борту USB HOST и соответственно как и ПК будет получать данные с устройств через USB.
Leopoldius
ну здесь необходимо что либо, что умеет работать с ней. Это скорее всего или что то большое на базе какой либо *nix систем. Или возможно поможет реализация USB CDC, но не уверен что заработает. Необходимо думать.
=AK=
Цитата(Pasha_a13 @ Jun 21 2015, 16:09) *
плохие обзывы по поводу USB хоста для FT232, пишут что не хочет работать и предлагают уходить от FT232. К сожалению, в данной ситуации нет возможности уйти от FT232, т.к. устройства уже есть и их нужно использовать.


Наверное, они хосты реализовывали на других чипах, не от FTDI. А вы возьмите VNC1L или VNC2. Невозможно поверить, чтобы у одной фирмы USB хост-чипы плохо работали со своими же USB девайсами.

Впрочем, вполне может быть, что в деле замешаны китайцы со своими дешевыми пиратскими копиями FT232. FTDI по этому поводу очень переживает и добавляет в свои чипы и в драйверы какие-то примочки, из-за которых китайские копии чипов с драйверами FTDI не работают или глючат, это факт. Но, как обратная сторона медали, родные FTDI чипы FT232, возможно (тут пошли мои догадки), сами могут глючить, если общаются не с родными FTDI драйверами. В любом случае FTDI хосты обязаны уметь эту проблему решать.
Pasha_a13
Цитата(=AK= @ Jun 23 2015, 08:19) *
Наверное, они хосты реализовывали на других чипах, не от FTDI. А вы возьмите VNC1L или VNC2. Невозможно поверить, чтобы у одной фирмы USB хост-чипы плохо работали со своими же USB девайсами.

спасибо, я к этим чипам и пришел.
VNC1L дороговатый. VNC2 больше заинтересовал. Но теперь заказчик чего-то задумался относительно USB и тех изделий sm.gif
Pasha_a13
Продолжаю работу по этому проекту.
Купил платку с VNC2 на борту и платку дебаггера для VNC2

Судя по описанию микросхемы VNC2 и широкому ассортименту прошивок, все должно было пройти гладко.
Однако скачал прошивку "UART to FT232 Host Sample Application ROM" c сайта FTDI firmware, прошил ей свой чип VNC2, но он не заработал как было обещано в роли моста.
Тогда пришлось устанавливать среду разработки Vinculum II IDE и лезть в исходник этой прошивки (они есть в примерах идущих вместе со средой разработки).
Запустив это все под дебаггером я увидел что VNC2 (насколько я понимаю) не обнаруживает подключенного чипа FT232:
в функции
Код
VOS_HANDLE ft232_host_attach(VOS_HANDLE hUSB, unsigned char devHostFT232, unsigned char ftport)
{
    usbhost_device_handle_ex ifFT232;
    usbhost_ioctl_cb_t hc_iocb;
    usbhost_ioctl_cb_vid_pid_t hc_iocb_vendor;
    common_ioctl_cb_t ft232_iocb;
    usbhostft232_ioctl_cb_attach_t ft232_att;
    VOS_HANDLE hHostFT232;

    // find FT232 class device
    hc_iocb_vendor.vid = USB_VID_FTDI;
    hc_iocb_vendor.pid = USB_PID_FTDI_FT232;

    // user ioctl to find first FT232 device
    hc_iocb.ioctl_code = VOS_IOCTL_USBHOST_DEVICE_FIND_HANDLE_BY_VID_PID;
    hc_iocb.handle.dif = NULL;
    hc_iocb.set = &hc_iocb_vendor;
    hc_iocb.get = &ifFT232;

    if (vos_dev_ioctl(hUSB, &hc_iocb) != USBHOST_OK)
    {
        return NULL;
    }
       // now we have a device, intialise the FT232 driver for it
    hHostFT232 = vos_dev_open(devHostFT232);
       ...

проверка условия
Код
vos_dev_ioctl(hUSB, &hc_iocb)
всегда возвращает USBHOST_NOT_FOUND.

Может ли кто-то что-то подсказать по этому поводу?
zltigo
QUOTE (Pasha_a13 @ Aug 1 2015, 16:25) *
Может ли кто-то что-то подсказать по этому поводу?

Для начала подключаете сие устройство с FT232 к PC, запускаете родной FTDшный программатор и убждаетесь в том, что VID и PID не изменены. А изменены они почти наверняка.
Pasha_a13
Цитата(zltigo @ Aug 1 2015, 16:49) *
Для начала подключаете сие устройство с FT232 к PC, запускаете родной FTDшный программатор и убждаетесь в том, что VID и PID не изменены. А изменены они почти наверняка.

да вроде бы все нормально с VID и PID:
zltigo
QUOTE (Pasha_a13 @ Aug 1 2015, 17:00) *
да вроде бы все нормально с VID и PID:

Да, стандартные.
OlegH
Сам сталкивался с такой ситуацией, но решать не стал из-за отсутствия на тот момент необходимости. Очевидно, FTDI не соответствует CDC классу. У него собственные соглашения на конечные точки, служебные транзакции и процедуры обмена.
Вот тут немного пишут про это:
http://community.embeddedswstore.com/t5/Mi...B-Host/td-p/668
http://www.microchip.com/forums/m376186.aspx
Думаю, стоило бы поискать исходники Micrium USB Host Stack или ядра Linux для работы с FTDI, посмотрел в чем разница (думаю, для простейшей работы принять/передать разница с CDC минимальна) и добавил бы поддержку в используемый USB стек (если это скажем STM32). Либо напрямую использовал бы Micrium USB Host Stack.
Pasha_a13
Цитата(OlegH @ Aug 1 2015, 18:08) *

Да я честно говоря использовать VNC2 потому что бюджет проекта и временные рамки довольно ограничены и браться сейчас за переделывание-адаптацию какого-либо USB стека под FTDI это будет отнють не самое удачное решение.
А особенно если стек еще и платный(имею ввиду Micrium USB Host Stack).
Я думал что VNC2 уберет головную боль касательно USB хоста и позволит заниматься остальной частью проекта, но пока это не так.
Написал в техподдержку FTDI, жду ответа.
Polaris
Цитата(Pasha_a13 @ Aug 2 2015, 09:12) *
Да я честно говоря использовать VNC2 потому что бюджет проекта и временные рамки довольно ограничены и браться сейчас за переделывание-адаптацию какого-либо USB стека под FTDI это будет отнють не самое удачное решение.
А особенно если стек еще и платный(имею ввиду Micrium USB Host Stack).
Я думал что VNC2 уберет головную боль касательно USB хоста и позволит заниматься остальной частью проекта, но пока это не так.
Написал в техподдержку FTDI, жду ответа.

Извините, а что в итоге написали из FTDI? Сейчас столкнулся с тем же в отношении прошивки HIDUart Host, тоже вообще не запускается. Но Вашу прошивку тоже пытался запустить с тем же результатом. V2DAP работает при этом, что удивительно. Отладчика нет, поэтому посмотреть, что там чип делает, не могу sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.