PDA

Просмотр полной версии : Универсальный USB контроллер



RN6LKU
17.12.2009, 10:25
Предлагаю Вашему вниманию проект программируемого универсального контроллера USB.

Схема и PCB выполнены в PCAD-2006. Разведено в
TopoR: http://www.toporouter.com/; http://www.eltm.ru/topor

Библиотеки по программированию -
http://www.fourwalledcubicl e.com/LUFA.php

Проверенный в работе вариант.

RN6LKU
17.12.2009, 10:48
Продолжение.

Плата изготовлена в http://pselectro.ru/

RN6LKU
21.12.2009, 10:39
Продолжение.

Datasheet на микроконтроллер

UB4HAB
20.05.2011, 17:48
Предлагаю Вашему вниманию проект программируемого универсального контроллера USB.

Схема и PCB выполнены в PCAD-2006. Разведено в
TopoR: http://www.toporouter.com/; http://www.eltm.ru/topor

Библиотеки по программированию -
http://www.fourwalledcubicl e.com/LUFA.php

Проверенный в работе вариант.

подробней можно? на чем проверено? с какой программой работает?
для чего контроллер?

ut1wpr
20.05.2011, 20:11
Предлагаю Вашему вниманию проект программируемого универсального контроллера USB.Проверенный в работе вариант.Не озвучена цена.

RN6LKU
20.05.2011, 21:20
Это не предназначено на продажу. Делалось на работе для задела на будующее, когда поняли, ячтто этот узелок постоянно повторяется.

Оказалось - сьели всё, когда раскушали. У меня мой экземпляр ушёл в дело, а собирался применить дома. Стоит вопрос о произволстве ещё партии на будующее.

ut1wpr
20.05.2011, 21:45
Это не предназначено на продажу. Делалось на работе для задела на будующее.Т.е. каждому из нас предлагается изготовить это самостоятельно?
Никак не могу въехать что нам предложено?
Ну разводка, ну ссылки на библиотеки, ну.. А дальше что? Каждому повторить путь "делалось на работе для задела на будующее" ?
Все-таки, какая-то цель преследовалась в открытии этой темы, кроме как "подтолкнуть в направлении AVR USB"?
Почему именно "затухающей" AVR? Какие преимущества перед остальными производителями? Какова доступность предлагаемого?
Приношу извинения за столько вопросов сразу. Но это вопросы, кому же их задавать, как не автору темы?

RN6LKU
20.05.2011, 21:51
Я думал поделиться идеей удобного "функционального кубика". Никто не поинтересовался.

UN7RX
20.05.2011, 21:53
Это не предназначено на продажу. Делалось на работе для задела на будующее.
Цель публикации ЗДЕСЬ, на форуме?
Пока писал ответ уже прозвучал. Это чисто "теория", без прошивки?

RN6LKU
20.05.2011, 21:54
В том числе и прощупать спрос. Его на тот момент не было.

Всё работает без нареканий. Прошивка м.б. любая, под задачу.


подробней можно? на чем проверено? с какой программой работает?

Можно прошить под любую.

Название темы - Универсальный USB контроллер

Georgi
21.05.2011, 00:01
У меня мой экземпляр ушёл в дело, а собирался применить дома. Стоит вопрос о произволстве ещё партии на будующее.
Валерий! На какое дело ? Приведите хоть один пример...на будующее

RN6LKU
21.05.2011, 01:49
Валерий! На какое дело ? Приведите хоть один пример...на будующее

Что тут может быть неясного?

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

Применительно к нашей тематике - например контроллер управления трансивером с синтезатором на DDS или SI570 с возможностью управления остальными узлами трансивера. Или USB звучку, заточенную под SDR.

Я приобрёл si570 и контроллер пришлось купить на atmega168. См. http://www.cqham.ru/forum/showthread.php?t=164 36&p=508809&viewfull=1#post50880 9 . Таких распаянных как раз не было. Но скоро могут появиться. Можно попробовать передать код заказа на ПП. Если они принимают по коду. Изготовитель - в начале темы. Изготовить по нему плату будет дёшево (см. калькулято на их сайте), т.к. подготовка и проверка уже оплачена. Процессор тоже недорогой.


Валерий! На какое дело ? Приведите хоть один пример...на будующее

Это не интересно - не из нашей тематики. Тренажеры. Но 20 комлектов "шевелят поршнями" в разных устройствах. И быстро разрабатывалось т.к. есть готовый узел - осталось только запрограммировать.


Все-таки, какая-то цель преследовалась в открытии этой темы,

Мне кажется, обьяснил.

Фома
21.05.2011, 07:41
Здравствуйте Все! Любой микропроцессор AVR лежащий дома в коробочке это задел на будущее. А работа такого устройства без нареканий как раз и зависит от правильно написанного программного обеспечения. Даже я, тупой в этом деле, понимаю. Это нечто для большинства радиолюбителей без ПО просто красивая железяка, не больше. Или как?

ut1wpr
21.05.2011, 09:16
Не спорю, сделано профессионально, просматриваются возможности разработчика. Увы они есть не у всех.
Тема применения HID-устройства давно отслеживается на просторах радиолюбительства. Особо нового не предложено. Был бы благодарен автору за более подробные данные (если он ими располагает) указывающие и объясняющие почему именно Атмел? На сегодня есть ряд других производителей MCU с лучшими характеристиками как по функционалу, так и по ценам.
Я пошёл по направлению, предложенному Мелкочипом (хотя по правде Атмел мне был ближе. До недавних пор и по известной причине). Они гораздо раньше предложили свои решения со встроенным USB и великолепными примерами использования USB стека под разнообразнейшие задачи. Естественно джойстики меня мало интересовали, в нашем применении (сбор и передача данных и управление) HID-устройства наиболее предпочтительны, как не требующие дополнительных драйверов и дополнительных микросхем. Да и скорости трансферинга на версии 2.0 повыше, чем эмуляция СОМ-портов.
Я сейчас заканчиваю (вообще-то только с самообразовательной целью :) ) небольшой проектик. Был в наличии DDS AD9854, решил использовать как управляющий PIC18F4550 с его USB и многоногостью для параллельного интерфейса MCU-DDS (согласен, это тоже не первой свежести камушек, но Мелкочип как-то постабильнее выглядит в плане поддержки старых чипов в свете последних событий с Атмелом :) ). В аттачменте снимок платки всей системы в сборе вместе с выходным усилителем и фильтром НЧ. Встроенных делителей решил не делать. Входные детекторы доделаю за выходные на отдельной платке. Ставить ли ее "вторым этажом" в зоне входов АЦП или использовать, как внешнюю головку пока не решил. Пока работой этой связки очень доволен. Стек от Мелкочипа после сборки оказался очень компактным, остается много места для пользовательской части. Ужиматься не приходится, следовательно время трачу (ох как его мало у того, кто на пенсии, да еще и рабтает...) в основном на обдумывание "что надо сделать". "Как это сделать" особо не напрягает. До момента, когда придется заниматься оптимизацией еще очень далеко.
Вот и хотелось бы услышать от автора на каком-нибудь конкретном примере что-нибудь для сравнения. Хотя понимаю, это непросто. Пока что-то конкретное не сделаешь, говорить о цифрах почти невозможно. Теоретические предположения можно сделать ознакомившись с докой на чип и тщательным изучением предлагаемого ПО. А познакомится - потратить время. Тратить чтобы потом понять, что не годится, времени жалко. Вот и ищу того, кто с опытом сравнивания... :)

RN6LKU
21.05.2011, 14:14
Вот и хотелось бы услышать от автора на каком-нибудь конкретном примере что-нибудь для сравнения

Естественно джойстики меня мало интересовали

Конкретные примеры - извиняюсь, как раз джойстик. В том числе. Так его прозвали за схожесть. Это имитатор управления серьёзным аппаратом.

Но я вообще не об этом. А о "лего-кубиках" в техническом творчестве. В том числе и в нашем хобби.

Вот один пример о использовании такого кубика на ПЛИС: http://www.cqham.ru/forum/showthread.php?t=173 63&p=512764&viewfull=1#post51276 4
От идеи до реализации - минимум времени. То есть освобождаем время для вопроса "что надо сделать"

А вопрос, что лучше - MicroChip или Atmel такого же рода, как вопрос, с какого конца очищать яйца - с тупого или острого. Дело привычек или вкуса.


Атмел мне был ближе. До недавних пор и по известной причине

Не в курсе.

ut1wpr
21.05.2011, 15:40
Конкретные примеры - извиняюсь, как раз джойстик. В том числе. Так его прозвали за схожесть. Это имитатор управления серьёзным аппаратом.Жаль, что только управлять. Все данные от датчиков только в одну сторону. Оси и баттоны.

Но я вообще не об этом. А о "лего-кубиках" в техническом творчестве. В том числе и в нашем хобби.
Вот один пример о использовании такого кубика на ПЛИС: http://www.cqham.ru/forum/showthread.php?t=173 63&p=512764&viewfull=1#post51276 4
От идеи до реализации - минимум времени. То есть освобождаем время для вопроса "что надо сделать"Да никто и не спорит, что наличие под руками макетов "на все случаи жизни" есть плохо. Это всегда есть хорошо :)

А вопрос, что лучше - MicroChip или Atmel такого же рода, как вопрос, с какого конца очищать яйца - с тупого или острого. Дело привычек или вкуса.Вы заметили этот вопрос? Где? Видимо, недостаточно точно высказался. Я сам не люблю применять сравнение "лучше" v "хуже". Важнее "оптимальнее в применении". Впрочем, это опять толчок к холивару, можно спокойно отойти в сторону. :)

Не в курсе.Вы счастливый человек. С неплохим запасом МК на долгие годы. Некоторые "изменения" на рынке с поставками и ценами на продукцию Атмел (МК) вас обошли стороной. Или вы просто их не покупаете на радиорынках. Мне приходится.

ps
Валерий. Если вы действительно собираете информацию по спросу, добавьте, пожалуйста и меня в список желающих иметь такой кубик "под рукой". Судя по вашим возможностям, много времени это не займет. Вопрос цены и оплаты согласуем. Я редко торгуюсь, на хорошее и нужное денег не жалко. :)

RN6LKU
21.05.2011, 22:56
Жаль, что только управлять. Все данные от датчиков только в одну сторону. Оси и баттоны.

Нет, как раз в обе стороны. Кроме задания от джойстика оператора ещё и ответы по положению от датчиков исполнительного механизма. Джостик пропорциональный. АЦП задействовано. Система управления - программная часть в компьтере.
Ещё пример - у сына на компьтере - индикатор загрузки ядер на стрелочных индикаторах в ретро стиле. Баловство, но красиво. Творчество сына. Завтра постараюсь не забыть сделать фотографии. Или сегодня поищу в интернете, он где-то вывешивал.


Вы счастливый человек. С неплохим запасом МК на долгие годы. Некоторые "изменения" на рынке с поставками и ценами на продукцию Атмел (МК) вас обошли стороной. Или вы просто их не покупаете на радиорынках. Мне приходится.

Да, меня не коснулось непосредственно, но слышал. Продажа-покупка и модернизация фабрик и, как следствие, - приостановка производства. Связано с версиями "А" - с широким диапазоном питания 1,8...5,5. И это не в первый раз. Уже всё в норме.

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

Только Вам пришлю при возможности плату и камень. Свяжемся. Коммерческие цели уже не преследуются. Но и быстро не обещаю.

ut1wpr
22.05.2011, 00:01
Нет, как раз в обе стороны. Кроме задания от джойстика оператора ещё и ответы по положению от датчиков исполнительного механизма.Прежде. чем начать работать со стеком Микрочипа, я внимательно почитал описания дексрипторов различных HID устройств. Да и парочку джойстиков делал тоже. В свое время я довольно тесно контактировал с Игорем Цеско, еще на фазе первых его эмуляторов USB на AT90S2313. Никак не могу вспомнить, какие же данные и какая программа ОТПРАВЛЯЕТ в джойстик. Спору нет, принимает хост много данных. И от АЦП в том числе. Но все это происходит по поллингу, пакетами, где каждый блок данных (кнопки, оси) имеют свое описание в дескрипторе и хост прекрасно с этим разбирается. Но чтобы хост слал данные в джойстик... Не припоминаю. Хотя, может это моя ошибка, где-то недочитал...
Вот описательная часть дескриптора тестового джойстика на ограниченное к-во осей и кнопок.

ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={{
0x05,0x01, //USAGE_PAGE (Generic Desktop)
0x09,0x05, //USAGE (Game Pad)
0xA1,0x01, //COLLECTION (Application)
0x15,0x00, // LOGICAL_MINIMUM(0)
0x25,0x01, // LOGICAL_MAXIMUM(1)
0x35,0x00, // PHYSICAL_MINIMUM(0)
0x45,0x01, // PHYSICAL_MAXIMUM(1)
0x75,0x01, // REPORT_SIZE(1)
0x95,0x0D, // REPORT_COUNT(13)
0x05,0x09, // USAGE_PAGE(Button)
0x19,0x01, // USAGE_MINIMUM(Button 1)
0x29,0x0D, // USAGE_MAXIMUM(Button 13)
0x81,0x02, // INPUT(Data,Var,Abs)
0x95,0x03, // REPORT_COUNT(3)
0x81,0x01, // INPUT(Cnst,Ary,Abs)
0x05,0x01, // USAGE_PAGE(Generic Desktop)
0x25,0x07, // LOGICAL_MAXIMUM(7)
0x46,0x3B,0x01, // PHYSICAL_MAXIMUM(315 )
0x75,0x04, // REPORT_SIZE(4)
0x95,0x01, // REPORT_COUNT(1)
0x65,0x14, // UNIT(Eng Rot:Angular Pos)
0x09,0x39, // USAGE(Hat Switch)
0x81,0x42, // INPUT(Data,Var,Abs,N ull)
0x65,0x00, // UNIT(None)
0x95,0x01, // REPORT_COUNT(1)
0x81,0x01, // INPUT(Cnst,Ary,Abs)
0x26,0xFF,0x00, // LOGICAL_MAXIMUM(255)
0x46,0xFF,0x00, // PHYSICAL_MAXIMUM(255 )
0x09,0x30, // USAGE(X)
0x09,0x31, // USAGE(Y)
0x09,0x32, // USAGE(Z)
0x09,0x35, // USAGE(Rz)
0x75,0x08, // REPORT_SIZE(8)
0x95,0x04, // REPORT_COUNT(4)
0x81,0x02, // INPUT(Data,Var,Abs)
0xC0 //END_COLLECTION
}
};
В нем нет места для передаваемых от хоста данных. Для этих целей я использовал HID-custom.

Только Вам пришлю при возможности плату и камень. Свяжемся. Коммерческие цели уже не преследуются. Но и быстро не обещаю.
Мне немножко неловко за такую свою исключительность. Этот МК я могу купить в Харькове на Космодроме. Цена практически идентична цене PIC18F4550 на Гамме в Днепропетровске.
А вот за плату будет отдельное и большое спасибо. На фотке видна достаточно грамотная разводка с соблюдением всех правил изоляций питания и земель. В наколенном варианте обычно стараешься от этого уходить в ущерб качеству работы. :(

RN6LKU
22.05.2011, 23:14
Вот пример устройства с USВ, отправляющего данные от компьютера к устройству (фотография ниже). Сын говорит, что с этим никаких проблем. Я с железно-связанными, эмбедерскими делами слегка связан и очень давно, но USB - тёмный лес. Тем более, что особой нужды нет - есть кому заняться. Хотя лучше бы знать.

Не вижу особого смысла в фотографиях, тем более качества не получилось почему-то, но выкладываю.

ut1wpr
23.05.2011, 07:30
Вот пример устройства с USВ, отправляющего данные от компьютера к устройству (фотография ниже). Сын говорит, что с этим никаких проблем.С этим действительно нет проблем. Но не по протоколу получения данных от джойстика, я об этом...

Я с железно-связанными, эмбедерскими делами слегка связан и очень давно, но USB - тёмный лес. Тем более, что особой нужды нет - есть кому заняться. Хотя лучше бы знать.Как же так? Суд по разработанному, изготовленному и проверенному (вы же писали - "проверено") модулю, вы его, как минимум, включали? Или это делал сын или коллеги по работе?

Не вижу особого смысла в фотографиях, тем более качества не получилось почему-то, но выкладываю.Ну почему, всегда лучше один раз увидеть, чем сто раз услышать...
Судя по фото, ваш сын использовал стрелочные приборы для индикации чего-то там? Это что, фрагмент моддинга компа? Если так - то довольно оригинально. Только почему все приборы одинаковую величину показывают? Это простое человеческое любопытство. :)

vadim_d
23.05.2011, 08:53
С этим действительно нет проблем. Но не по протоколу получения данных от джойстика
Виктор, я после Вашей мысли о том, что на ПИКе все делается легко и просто, нашел давно скачанные материалы лабораторных работ http://pe.ece.olin.edu/ece/projects.html , и сделал на PIC18F2455 работу номер 1, то есть управление светодиодом по USB. Поскольку мысль была о каком-нибудь измерительном приборе, то более интересна передача данных в комп, поэтому собираюсь сделать и работу номер 3. Но USB после этого все равно остается темным лесом :smile:

RN6LKU
23.05.2011, 11:41
Или это делал сын или коллеги по работе?

И то, и другое. Конкретно это - сын. Сам не занимался. И потом попался - пришлось покупать контроллер на 168 для si570, потому что понял, что меня кормят завтраками, хотя и обещали помочь. Если бы хоть начали, я бы дальше сам разбирался. Есть желание заняться и самому с нуля, но по причине плохой самоорганизованности не приступил до сих пор. Начинал читать - и только пугался сложностей. Хотя и осознаю, что без практики с реальной задачей не освоишь.


Судя по фото, ваш сын использовал стрелочные приборы для индикации чего-то там? Это что, фрагмент моддинга компа? Если так - то довольно оригинально. Только почему все приборы одинаковую величину показывают? Это простое человеческое любопытство.

Я писал, что это индикатор загрузки ядер компа (процессор 4-х ядерный). Такова была загрузка на момент сьёмки. Делалось сыном с целью набить руку в освоении USB и только. Кроме того, это ещё и красиво.

ut1wpr
23.05.2011, 12:33
И то, и другое. Конкретно это - сын. Сам не занимался. И потом попался - пришлось покупать контроллер на 168 для si570, потому что понял, что меня кормят завтраками, хотя и обещали помочь. Если бы хоть начали, я бы дальше сам разбирался. Есть желание заняться и самому с нуля, но по причине плохой самоорганизованности не приступил до сих пор. Начинал читать - и только пугался сложностей. Хотя и осознаю, что без практики с реальной задачей не освоишь.Не уверен, что существующие программы, под которые "заточен" si570 поддержат HID-протокол. Но могу и ошибаться. Тот Tiny45, который стоит в "родном" контроллере и стыкуется с главными SDR программами реализован на софтовой реализации СОМ-USB. Давно было, сейчас не помню, посему могу и ошибаться. Неохота пыль сдувать с SDR трансивера, заброшен он у меня уже несколько лет. Надо бы погуглить на сочетание слов HID SDR control. Мне неинтересно стало, почему-то. Но модуль по прежнему мною востребован, из списка не вычеркивать! :)


Я писал, что это индикатор загрузки ядер компа (процессор 4-х ядерный). Такова была загрузка на момент сьёмки. Делалось сыном с целью набить руку в освоении USB и только. Кроме того, это ещё и красиво.Да уж. Я всегда говорил, что красота - понятие не абсолютное. У каждого свое восприятие. :)

uu5jkb
26.05.2011, 10:28
С этим действительно нет проблем. Но не по протоколу получения данных от джойстика, я об этом...

Пример пересылки данных из и в HID устройство на сайте Atmel есть, например здесь http://www.atmel.com/dyn/products/product_docs.asp?cat egory_id=163&family_id=607&subfamily_id=760&part_id=4096 по ссылке на AVR328: USB Generic HID Implementation on megaAVR devices. Пробовал пример для at90usb82/162. В примере передается 8 байт в одну сторону и 8 в другую. Время опроса задается в дескрипторах конечных точек, формат данных (длина) - в дескрипторе репорта. В Вашем случае дескрипторы можно скопировать и использовать их с PIC'ом

ut1wpr
26.05.2011, 12:21
Пример пересылки данных из и в HID устройство на сайте Atmel есть, например здесь http://www.atmel.com/dyn/products/product_docs.asp?cat egory_id=163&family_id=607&subfamily_id=760&part_id=4096 по ссылке на AVR328: USB Generic HID Implementation on megaAVR devices. Пробовал пример для at90usb82/162. В примере передается 8 байт в одну сторону и 8 в другую. Время опроса задается в дескрипторах конечных точек, формат данных (длина) - в дескрипторе репорта. В Вашем случае дескрипторы можно скопировать и использовать их с PIC'омЭто "не мой" случай. В "моем случае" вопросов нет. У меня в обе стороны передаются блоки по 64 байта. Работаю именно с PIC18F4550. С дескрипторами тоже нет проблем. У мелкочипа есть утилита, позволяющая генерировать дескрипторы под любой тип HID. Лично я применил именно Generic HID, как наиболее подходящий под мою задачу. Приспосабливать HID Joystick под двустороннюю пересылку данных, наверное можно, но зачем?

Genadi Zawidowski
26.05.2011, 20:19
У мелкочипа есть утилита, позволяющая генерировать дескрипторы под любой тип HID
Можно ссылочку на утилиту или в комплекте с чем идёт?
На сайте продаётся за 600 долларов...
http://www.microchipdirect. com/productsearch.aspx?K eywords=SW500050

ut1wpr
26.05.2011, 21:49
Можно ссылочку на утилиту или в комплекте с чем идёт?
На сайте продаётся за 600 долларов...
http://www.microchipdirect. com/productsearch.aspx?K eywords=SW500050
Наверное, этот не такой навороченный. Но я им основной дескриптор сгенерировал - вроде, без проблем.