|
|
  |
at90USB? выбор контроллера |
|
|
|
Mar 9 2011, 21:59
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
Здравствуйте профессионалы. Подсоветуйте какой контроллер с 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 устроуства?
окажите помощь советом=)
|
|
|
|
|
Mar 9 2011, 23:19
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 4-11-10
Пользователь №: 60 646

|
Цитата(pil @ Mar 9 2011, 23:59)  Здравствуйте профессионалы. Подсоветуйте какой контроллер с USB использовать под следующие задачи: 1. При этом все в один конец USB. Начитавшись ф том числе и на этом форуме, понял что стоит реализовывать составное USB устройство. 2. ... Все устройства могут подключатся поотдельности. Вы видимо что-то не так себе представляете - составное устройство реализуется логически а не на одном чипе - если вам так нажна одна дырка то вам прийдется сначала сделать USB концентратор а потом подключать каждый контроллер со своей реализацией USB устройства к компьютеру. Либо у вас подключаются все устройства совместно, либо это разные устройства подключаемые через USB HUB (ну тогда уж проще купить всё в китае через интернет за 15 баксов с доставкой) Если вы хотите сделать модульную архитектуру , то есть модуль один - одна функция то опять же проще будет взять реализацию с хабом и быстрее и намного проще
|
|
|
|
|
Mar 10 2011, 00:04
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(pil @ Mar 10 2011, 00:59)  Задачи раздельные, но контроллеры хотелось бы использовать одинаковые, дабы меньше геммороя. 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) вполне может выглядеть со стороны компьютера, как несколько устройств, т.к. это не от числа проводов зависит, а от его внутренней программы. Если запрограммируете много "конечных точек", то и будет этот МК трудиться за троих, и комптютер будет видеть его в трех разных лицах.
|
|
|
|
|
Mar 10 2011, 14:26
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
Так, все меня не очень поняли, значит плохо написал. В посте описано 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 крисала, там где можно один.
|
|
|
|
|
Mar 10 2011, 14:48
|
Группа: Новичок
Сообщений: 5
Регистрация: 10-03-11
Пользователь №: 63 503

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

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
спасибо, то что нужно
|
|
|
|
|
Mar 11 2011, 11:52
|
Частый гость
 
Группа: Участник
Сообщений: 108
Регистрация: 6-02-09
Из: Новочеркасск
Пользователь №: 44 469

|
Цитата(pil @ Mar 10 2011, 18:26)  mega32u4? а чем его шить? в наличии есть только avrisp. JTAG никак не купить. Оно - обычный AVR. Чем угодно.
|
|
|
|
|
Mar 11 2011, 17:19
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
ATmega32U4 не понял чем оно лучше? А вот всего 32кб флеши не нравится никак.
|
|
|
|
|
Mar 11 2011, 20:11
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(pil @ Mar 11 2011, 20:19)  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. В любом случае, вы не потратите лишних сил и времени, т.к. какой-то из этих МК наверняка удовлетворит ваши запросы.
|
|
|
|
|
Mar 12 2011, 14:59
|
Участник

Группа: Участник
Сообщений: 33
Регистрация: 15-11-08
Пользователь №: 41 658

|
спасибо, просто открываешь мне глаза=)
Про буферы не очень понятно, что там собственно накапливать?
По цене и давнему желанию приобщится к арму теперь смотрим на LPC1343 под те же задачи.
Сообщение отредактировал pil - Mar 12 2011, 15:00
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|