Jump to content

    
Sign in to follow this  
pil123456789

at90USB? выбор контроллера

Recommended Posts

Здравствуйте профессионалы.

Подсоветуйте какой контроллер с USB использовать под следующие задачи:

1. Переходник (Ps/2 mouse + ps/2 kbd + com) <-> USB. При этом все в один конец USB.

Начитавшись ф том числе и на этом форуме, понял что стоит реализовывать составное USB устройство.

2. USB kbd + USB mouse + USB (что то еще, возможно виртуал com). Все устройства могут подключатся поотдельности, а также подсоединятся к USB kbd, как к концентратору.

 

Задачи раздельные, но контроллеры хотелось бы использовать одинаковые, дабы меньше геммороя.

1. Пока выбрал at90usb atmel а. Потянет ли он задачу номер один по ресурсам? или 8ми битами уже не обойтись? или вообще стоит взят что то другое?

2. В задачке 2 как реализовывать концентратор? есть стандартные решения?

 

Ну и вообще у какого какой опыт создание HID клавиатур, мышей, на чем?

а составные USB устроуства?

 

окажите помощь советом=)

 

Share this post


Link to post
Share on other sites
Здравствуйте профессионалы.

Подсоветуйте какой контроллер с USB использовать под следующие задачи:

1. При этом все в один конец USB.

Начитавшись ф том числе и на этом форуме, понял что стоит реализовывать составное USB устройство.

2. ... Все устройства могут подключатся поотдельности.

 

 

Вы видимо что-то не так себе представляете - составное устройство реализуется логически а не на одном чипе - если вам так нажна одна дырка то вам прийдется сначала сделать USB концентратор а потом подключать каждый контроллер со своей реализацией USB устройства к компьютеру. Либо у вас подключаются все устройства совместно, либо это разные устройства подключаемые через USB HUB (ну тогда уж проще купить всё в китае через интернет за 15 баксов с доставкой)

 

Если вы хотите сделать модульную архитектуру , то есть модуль один - одна функция то опять же проще будет взять реализацию с хабом и быстрее и намного проще

Share this post


Link to post
Share on other sites
Задачи раздельные, но контроллеры хотелось бы использовать одинаковые, дабы меньше геммороя.

1. Пока выбрал at90usb atmel а. Потянет ли он задачу номер один по ресурсам? или 8ми битами уже не обойтись? или вообще стоит взят что то другое?

2. В задачке 2 как реализовывать концентратор? есть стандартные решения?

Потянет, конечно. Все эти интерфейсы (Ps/2 mouse + ps/2 kbd + com) медленные, потому даже один МК этого типа справился бы даже одновременно со всеми тремя задачами.

 

Может быть не стоит делать 3 разных устройства, а стоит сделать всего одно - с одним МК и со всеми тремя разъемами? Тогда и концентратор никакой не будет нужен. Потому что, как только вы решитесь делать USB-концентратор на одном из устройств, то придется вам вводить его в HOST-режим, чтобы могло оно командовать теми, что в него втыкаются. А это все достаточно сложно. И опять же разъемы придется делать для взаимной коммуникации модулей.

 

Гораздо проще сделать на устройстве все 3 гнезда (Ps/2 mouse + ps/2 kbd + com), тем самым срастив все три устройства в одно. Тогда и не надо будет мучиться с вопросом, как эти устройства между собой стыковать и что-то там концентрировать. И в производстве будет много дешевле, т.к. на все один корпус, а не три. И по деталям тоже в 3 раза дешевле.

 

А один единственный USB-контроллер (AT90) вполне может выглядеть со стороны компьютера, как несколько устройств, т.к. это не от числа проводов зависит, а от его внутренней программы. Если запрограммируете много "конечных точек", то и будет этот МК трудиться за троих, и комптютер будет видеть его в трех разных лицах.

Share this post


Link to post
Share on other sites

Я тоже думаю что всё на одном чипе будет лучше - но рекомендую не 90USB а всёже u2/u4 (mega32u4 например) - они поновее, подешевле, получше.

Share this post


Link to post
Share on other sites

Так, все меня не очень поняли, значит плохо написал.

В посте описано 2 различных задачи, их хочется реализовать на одном типе контроллера, дабы не разбираться дважды. Итак 2 НЕСВЯЗАННЫЕ ЗАДАЧИ:

1. Составное USB устройство на одном контроллере пока at90usb. посути переходник Переходник (Ps/2 mouse + ps/2 kbd + com) <-> USB.

 

2. А вот тут модульное устройство. Модульность это в ТЗ, от нее никуда. . USB kbd + USB mouse + USB (что то еще, возможно виртуал com). USB kbd ведущее, если оно используется, то два других модуля подключ через него, но они могут быть подключены напрямую.

 

Новый вопрос: а бывают USB-концентратор в виде готового чипа. Т.е. что то типа ftdi, где припаял и пользуеш?

 

mega32u4? а чем его шить? в наличии есть только avrisp. JTAG никак не купить.

 

Xenia, спасибо, только про концентратор как?

 

follow_me, тож спасибо. Нужно и модульное устройство и немодульной, 2 разные задачи. Тут есть мнение, что возня с состаным устройством это неподъемно долго и следует 2 задачи решать одинакого, т.е. 3 usb устройства + hub. В одном случае они в одном корпусе, а в другом модульно. Мне правда дико не импонирует лепить 4 крисала, там где можно один.

 

 

Share this post


Link to post
Share on other sites

TUSB2046 - четырехпортовый USB1.1 хаб. Обвязки минимум - пример включения есть на радиокоте. Два бакса у распоследних спекулянтов. Вообще, поройтесь на ti.com, там их много всяких, можно и семплы заказать. Гнаться за USB2.0 для HID думаю не имеет смысла.

Share this post


Link to post
Share on other sites
ATmega32U4 не понял чем оно лучше?

А вот всего 32кб флеши не нравится никак.

Не ради флеши. Алгоритмически задача пересылки данных проста, и тут много флеши под программу не надо. Проблема в недостатке внутренней ОЗУ, которая тут зовется SRAM. Если вы возьмете AT90USB162, то его 16 К флеша для задачи вполне хватит, но 512 байт SRAM будет маловато.

 

ОЗУ нужна под буфера ввода-вывода. Ведь USB - "одностороний интерфейс", который управляется командами со стороны хоста (здесь персональным комьютером) где-то 1 раз в милисекунду (1000 гц). А при его сильной загруженности и того реже. Поэтому придется накапливать передаваемые байты в каких-то массивах, организуя FIFO, чтобы обеспечить непрерывность работы (копить, пока хост не запросит данные). Причем, очень возможно, что понадобится два отдельных буфера - один на передачу по USB, а другой на передачу по RS-232. Хотя для мышки и клавиатуры второй буфер не актуален.

 

Удобно брать буфер размером в 256 байт, тогда он очень просто сворачивается в кольцо, если для его индекса выбрать однобайтовую переменную или регистр. Но можно сделать и короче - 128 или 64, если при инкрементации индекса занулять старшие биты. Без промежуточного буфера стрёмно прогу написать, потому что те аппаратные буфера, который байты туда-сюда по USB отсылают, задействуются автоматически. И вам придется их наполнять и опустошать сразу по приходу прерывания готовности, а не ожидать пока по байтику перекапаете на медленный UART.

 

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

 

Так вот у AT90USB162 маловато SRAM для буферов, т.к. там еще стеки надо городить, а на это тоже память уходит. А следующим в линейке AT90USB будет уже AT90USB646, который по числу выводов уже монструозный (16х4), хотя SRAM у него достаточно - 4 КБайт. А вот ATmega32U4 по размеру SRAM составляет 2.5 КБайт, что уже вполне достаточно. Возможно, что уже ATmega16U4 вам годится, т.к. там 1.25 КБайт SRAM, т.е. в 2.5 раза больше, чем у AT90USB162.

 

Радует, что ATmega16U4 и ATmega32U4 по корпусам и выводам одинаковые. Поэтому вы можете ориентироваться на ATmega32U4, как вам верно подсказал Dx!, а когда на макете у вас все это нормально заработает, то можно испытать ATmega16U4, уменьшив размеры буферов. Или сразу писать прогу под ATmega16U4, а если не влезете, то впаивать ATmega32U4. В любом случае, вы не потратите лишних сил и времени, т.к. какой-то из этих МК наверняка удовлетворит ваши запросы.

Share this post


Link to post
Share on other sites

спасибо, просто открываешь мне глаза=)

 

Про буферы не очень понятно, что там собственно накапливать?

 

По цене и давнему желанию приобщится к арму теперь смотрим на LPC1343 под те же задачи.

Edited by pil

Share this post


Link to post
Share on other sites
По цене и давнему желанию приобщится к арму теперь смотрим на LPC1343 под те же задачи.

В правильном направлении двигаетесь.

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