Jump to content

    
Sign in to follow this  
Pasha_a13

USB Host для подключения FT232

Recommended Posts

Добрый день!

 

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

 

Имеются устройства, в которых USB реализован на FT232. При подключении к компьютеру видно что устройства постоянно выдают пакеты данных на скорости 115200.

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

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

 

Может ли кто-то что-то посоветовать по этому поводу?

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

 

Спасибо!

Share this post


Link to post
Share on other sites

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

 

В простейшем случае, если вы хотите на пк разбирать инфорацию - и если доступен COM порт, судя по тому как вы пишете о скорости 115200, то берете пакеты и работаете с ними))

Share this post


Link to post
Share on other sites

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

Однако возникла необходимость собирать данные с этих устройств без помощи ПК, т.е. рядом с устройством располагать еще одно устройство(микроконтроллер+обвязка), которое будет иметь на борту USB HOST и соответственно как и ПК будет получать данные с устройств через USB.

Edited by Pasha_a13

Share this post


Link to post
Share on other sites

ну здесь необходимо что либо, что умеет работать с ней. Это скорее всего или что то большое на базе какой либо *nix систем. Или возможно поможет реализация USB CDC, но не уверен что заработает. Необходимо думать.

Share this post


Link to post
Share on other sites
плохие обзывы по поводу USB хоста для FT232, пишут что не хочет работать и предлагают уходить от FT232. К сожалению, в данной ситуации нет возможности уйти от FT232, т.к. устройства уже есть и их нужно использовать.

 

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

 

Впрочем, вполне может быть, что в деле замешаны китайцы со своими дешевыми пиратскими копиями FT232. FTDI по этому поводу очень переживает и добавляет в свои чипы и в драйверы какие-то примочки, из-за которых китайские копии чипов с драйверами FTDI не работают или глючат, это факт. Но, как обратная сторона медали, родные FTDI чипы FT232, возможно (тут пошли мои догадки), сами могут глючить, если общаются не с родными FTDI драйверами. В любом случае FTDI хосты обязаны уметь эту проблему решать.

Share this post


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

спасибо, я к этим чипам и пришел.

VNC1L дороговатый. VNC2 больше заинтересовал. Но теперь заказчик чего-то задумался относительно USB и тех изделий :)

Share this post


Link to post
Share on other sites

Продолжаю работу по этому проекту.

Купил платку с VNC2 на борту и платку дебаггера для VNC2

V2DIP1-48_and_debugger-600x600.jpg

Судя по описанию микросхемы 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.

 

Может ли кто-то что-то подсказать по этому поводу?

 

Share this post


Link to post
Share on other sites
Может ли кто-то что-то подсказать по этому поводу?

Для начала подключаете сие устройство с FT232 к PC, запускаете родной FTDшный программатор и убждаетесь в том, что VID и PID не изменены. А изменены они почти наверняка.

 

Share this post


Link to post
Share on other sites
Для начала подключаете сие устройство с FT232 к PC, запускаете родной FTDшный программатор и убждаетесь в том, что VID и PID не изменены. А изменены они почти наверняка.

да вроде бы все нормально с VID и PID:

96751dd84eaf.png

Edited by Pasha_a13

Share this post


Link to post
Share on other sites

Сам сталкивался с такой ситуацией, но решать не стал из-за отсутствия на тот момент необходимости. Очевидно, 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.

Share this post


Link to post
Share on other sites

Да я честно говоря использовать VNC2 потому что бюджет проекта и временные рамки довольно ограничены и браться сейчас за переделывание-адаптацию какого-либо USB стека под FTDI это будет отнють не самое удачное решение.

А особенно если стек еще и платный(имею ввиду Micrium USB Host Stack).

Я думал что VNC2 уберет головную боль касательно USB хоста и позволит заниматься остальной частью проекта, но пока это не так.

Написал в техподдержку FTDI, жду ответа.

Share this post


Link to post
Share on other sites
Да я честно говоря использовать VNC2 потому что бюджет проекта и временные рамки довольно ограничены и браться сейчас за переделывание-адаптацию какого-либо USB стека под FTDI это будет отнють не самое удачное решение.

А особенно если стек еще и платный(имею ввиду Micrium USB Host Stack).

Я думал что VNC2 уберет головную боль касательно USB хоста и позволит заниматься остальной частью проекта, но пока это не так.

Написал в техподдержку FTDI, жду ответа.

Извините, а что в итоге написали из FTDI? Сейчас столкнулся с тем же в отношении прошивки HIDUart Host, тоже вообще не запускается. Но Вашу прошивку тоже пытался запустить с тем же результатом. V2DAP работает при этом, что удивительно. Отладчика нет, поэтому посмотреть, что там чип делает, не могу :(

Share this post


Link to post
Share on other sites

У кого-нибудь заработала эта прошивка? У меня прошивка запустилась (V2DIP2-48) и данные идут в направлении UART => USBhost => FT232 на 9600. В обратную сторону данные - не проходят никак. Судя по отладчику не считываются через USBhost из ft232.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this