Страница 1 из 5
подключение к USB
Добавлено: Вс ноя 04, 2012 08:46:30
PetrB09
Доброго времени суток!
Хочу посоветоваться: необходимо подключить к компьютеру, как USB HID устройство, такой же пульт, но стоящий в кабинете:
http://fotki.yandex.ru/users/tu2-191/view/54588/?page=0 (фотки не мои)
(всего 46 кнопок/переключателей, 11 ламп,1 двигатель (должна быть возможность регулировки оборотов от 0 до номинальных) 4 измерительные головы, 5 электропневматических вентелей, 4 аналоговых датчика давления).
Прочитав вот эти 2 статьи:
http://radiokot.ru/articles/44/
http://radiokot.ru/articles/45/
понял, что оптимальным будет использование С8051. А вот отсюда появились вопросы:
1) правильно ли я понимаю, что для реализации подключения надо 62 входа/выхода, 5 каналов ШИМ, 4 канала АЦП?
2) если первое да, то подходит ли для этого С8051F320 (
http://www.silabs.com/Support%20Documen ... _Short.pdf)?
3) Отличается ли чем то принципиально программирование C8051 от программирования других МК?
P. S. Прошу прощения за, возможно, глупые вопросы, просто я с микроконтроллерами на "Вы" и ничего кроме mega8 в руках не держал

Re: подключение к USB
Добавлено: Вс ноя 04, 2012 09:42:40
ploop
понял, что оптимальным будет использование С8051
Возможно, но кроме этих статей статей вы вряд ли найдёте русскоязычную информацию по работе с ними.
1) правильно ли я понимаю, что для реализации подключения надо 62 входа/выхода, 5 каналов ШИМ, 4 канала АЦП?
Кнопки можно объединить в матрицу, тогда портов надо будет меньше. К примеру, 16ю портами можно опрашивать 64 кнопки.
3) Отличается ли чем то принципиально программирование C8051 от программирования других МК?
Принципиально - нет

Re: подключение к USB
Добавлено: Вс ноя 04, 2012 10:53:59
Полиграф Полиграфыч
PetrB09 писал(а):Доброго времени суток!
Хочу посоветоваться: необходимо подключить к компьютеру, как USB HID устройство, такой же пульт, но стоящий в кабинете:
P. S. Прошу прощения за, возможно, глупые вопросы, просто я с микроконтроллерами на "Вы" и ничего кроме mega8 в руках не держал

Я бы сделал так:
- кнопки подал на регистры типа ИР22, ИР23
- лампочки - на те же регистры, но в другую сторону, и включал через транзисторы
В итоге будет задействована только 8 линий шины и на каждый регистр по линии.
- USB на FT232RL (проще управлять). Правда оно там не USB HID, но проблем с подключением не было
- управление моторами и другой аналоговой техникой - уже на микроконтроллере.
Можно на 8051, но я бы порекомендовал ATMega128 какую-нибудь, чтобы не думать, хватит ли ног/озу/памяти или нет.
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 11:59:41
PetrB09
Большое спасибо за отклики
ploop писал(а):
Кнопки можно объединить в матрицу
Про матрицу я думал, но там тогда придется DLL библиотеку работающую с пультом еще обучать "расшифровывать" приходящие данные.
Про регистры не понял идею...
По поводу USB HID устройства - это достаточно критично по-скольку в противном случае нужны сторонние драйвера, которые, во-первых могут не разрешить поставить, а во-вторых - немного непонятно, как с таким устройством работать, а примеров с HID устройствами в интернете полно.
Еще когда писал первый пост, забыл, что один из тормозных кранов не имеет точных позиций и по этому для него тоже нужен АЦП.
И еще возник вопрос: правильно ли я понимаю, что в одном контроллере только один канал АЦП?
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 12:52:10
ploop
а во-вторых - немного непонятно, как с таким устройством работать
Как с обычным COM-портом. Правда для windows нужны драйвера, под линуксом проблем нет.
И еще возник вопрос: правильно ли я понимаю, что в одном контроллере только один канал АЦП?
Бывает по разному: 1 АЦП (физически) и много входов через мультиплексор. То есть, например, у той же ATmega8 АЦП один, но восемь каналов, т.е. можно поочерёдно измерять 8 аналоговых величин. Учитывая скорость преобразования АЦП порядка 15кГц, можно получить около 2000 измерений в секунду на канал, чего обычно более, чем достаточно.
А может быть физически два и более АЦП (часть встречается у STM32), и каждый мультиплексируется на несколько каналов.
Так что вам подойдёт практически любой контроллер. Если не хотите городить матрицы и усложнять сдвиговыми регистрами, возьмите 100-ногий STM32 (стоит порядка 7-10$), у него и USB есть, и примеров работы полно, и 100 ног вам за глаза хватит.
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 13:02:28
PetrB09
Спасибо за наводку, сейчас буду читать про него

Re: подключение к USB
Добавлено: Вс ноя 04, 2012 13:12:25
ploop
STM32F103VBT6 - 128кБ флеша ($6.32 на ебее с бесплатной доставкой)
STM32F103V8H6 - 64кБ флеша
Есть еще STM32F103VBH6 - тот же STM32F103VBT6, но в BGA-корпусе. Он дешевле, но плату только на заводе заказывать.
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 17:14:13
PetrB09
в результате поисков нашел замечательный сайт
http://www.easystm32.ru, но на нем рассматривается stm32f100, а примеров реализации USB HID на stm32f103 не нашел

, может не там искал?
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 17:47:02
ploop
Примеры в комплекте со всеми библиотеками на сайте производителя - st.com
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 19:26:08
Мурик
Чем не подходит USB HID на обычной меге?
Пример.
http://purebasic.mybb.ru/viewtopic.php?id=211
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 19:46:10
PetrB09
У меги мало портов, а городить 10 контроллеров и огромный хаб не хочется
Re: подключение к USB
Добавлено: Вс ноя 04, 2012 21:13:38
Мурик
Используйте ATmega128.
У нее портов должно хватить. А если не хватит, то ATmega2560.
Re: подключение к USB
Добавлено: Пн ноя 05, 2012 00:48:39
Ser60
PetrB09 - прежде всего спасибо за интерес к моим статьям. Кнопки можно опрашивать и через АЦП. К одному каналу можно смело подключать до 20 кнопок. При подключении 12-ти, потребуется 3 входных канала АЦП. У C8051F320 15 каналов по входу АЦП+, хватит и на обслуживание 4-х датчиков давления. У него также есть 5 каналов ШИМ. Управление лампами я-бы тоже сделал через 4-16 демультиплехор как советовали выше (например, HEF4067) или напрямую через через какой-нибудь 16-канальный драйвер светодиодов с последовательным интерфейсом (SPI или I2C). 16КБ флеша в F320 вполе достаточно для Ваших целей, из них драйвер USB занимает не более 4. Т.е. можно обойтись МК с малым числом выводов и в легко паябельном корпусе TQFP-32. По МК фирмы Silicon Labs имеются книги на русском, да и на этом форуме есть ветки посвященные им.
Re: подключение к USB
Добавлено: Пн ноя 05, 2012 08:45:42
PetrB09
Чего-то я совсем запутался... Я правильно понимаю, что из предложенных вариантов МК, наиболее перспективным и универсальным является STM32? Просто я глубоко в программирование МК не погружался, а здесь, как я понял, без этого никак, и хотелось бы осваивать то, что может пригодится и в дальнейших проектах, даже не связанных с ПК
Re: подключение к USB
Добавлено: Пн ноя 05, 2012 09:25:22
ploop
Чего-то я совсем запутался...
Ну а как вы хотели? Сколько людей, столько и мнений, каждый будет склонять вас на свою сторону.
От себя посоветую потерзать гугл. К чему душа ляжет - на том и делайте. Прежде всего определитесь, и попробуйте раздобыть и запустить контроллер, например помигать светодиодом. Задача у вас простая, и подойдёт любая архитектура.
Re: подключение к USB
Добавлено: Пн ноя 05, 2012 16:40:33
PetrB09
ploop писал(а):Сколько людей, столько и мнений, каждый будет склонять вас на свою сторону
Это точно

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

Re: подключение к USB
Добавлено: Вт ноя 06, 2012 09:29:22
uk8amk
Лучше тогда взять 'мышь' пожирнее - stm32Ldiscovery. Отличия не столь фатальные, зато на борту свой USB device уже есть.
Re: подключение к USB
Добавлено: Сб ноя 17, 2012 14:45:54
PetrB09
Ser60, а на сколько просто организуется usb hid на c8051? Просто про stm32 почти везде пишут, что организация USB на них - дело не для новичков. И еще, через мультиплексор можно одновременно зажечь только один светодиод?
Re: подключение к USB
Добавлено: Сб ноя 17, 2012 19:02:45
Ser60
PetrB09 - вы цитировани 2 мои статьи выше. На мой взгляд все очень просто даже для новичков. Почитайте для начала первую часть статьи хотя-бы бегло. Это самый простой способ организации связи, для него вобще ничего про USB знать не надо. Будут вопросы - отвечу. Зажигать можно сколько угдно светодиодов и тоже про кнопки.
http://radiokot.ru/articles/44/
Re: подключение к USB
Добавлено: Сб ноя 17, 2012 21:32:38
PetrB09
если честно, то про демультиплексор не понял, как мне сказала википедия, он в зависимости от приходящего двоичного числа коммутирует определенный выход, а как он сможет закомутировать несколько выходов одновременно? И не могли бы вы посоветовать литературу на русском про это семейство контроллеров.