Юсб модуль своими руками

Добавил пользователь Евгений Кузнецов
Обновлено: 19.09.2024

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

Прежде чем приступить к этому вы должны были в предыдущей статье ознакомится с Управлением машиной и получить знания о том, что такое микроконтроллер AVR. Если этого не было, сделайте это.

Далее нам надо для связи по USB сделать устройство, программу для микроконтроллера AVR и программу для компьютера.

USB управление для своего устройства

Берем кабель USB и с одной стороны срезаем провода, видим 4 провода, которые нам нужны - красный, чёрный, жёлтый (бывает зеленым) и белый. Красный провод - это плюс питания +5V, чёрный провод - это минус питания. Этими проводами запитываем наше устройство. А другие 2 провода - жёлтый D+ и белый D- используются для обмена данными по USB.

Схема USB устройства на микроконтроллере AVR

Красным и чёрным проводом запитываем микроконтроллер - эти линии просто подключаются к VCC и GND. Линии с данными USB - это D+ и D- подключаются к линиям микроконтроллера, не к случайным, а к тем что заданы в программе для микроконтроллера, которую позднее будем делать, сразу скажу что это будут линии PD2 и PD4. Просто так нельзя подключать их, надо на пути поставить резистор на 68 Ом по требованию стандарта USB и еще снизить напряжение на данных линиях с 5V до 3.6V. Для резисторов посчитаем их мощность - ток USB задается в программе для микроконтроллера и мы его зададим на уровне 0.05 A, значит мощность резисторов 0.05 A * 5 V = 0.25 Вт. Такие и берем. Напряжение снижается параллельным подключением дидов Зенера 3V6 как показано на рисунке, эти диоды надо воткнуть правильной стороной, напомню что чёрная полоска на диоде с одной стороны должна быть направлена в сторону линий D+ и D-, а обратная сторона к минусу питания. И последнее, чтобы работало устройство USB, надо резистором в 1.5 кОм указать режим его работы, подключаем его к D-, это означает низкоскоростной режим, который нам нужен, поскольку мы не планируем передавать большие объемы данных, а только будем посылать простые сигналы, низкоскоростной режим нам нужен. Чтобы увидить что наше устройство работает, подключим светодиод к линии PB0, длинной плюсовой стороной к линии, а другой стороной к минусу питания.

Также воспользуемся вспомогательными инструментами для удобства - это зажим на 20 гнезд, чтобы легко извлекать микроконтроллер для перепрограммирования. И это 2 клеммника, чтобы прикрутить провода USB к макетной плате. Вообщем для сборки устройства нам потребуется сделать такой закуп:

ATtiny2313A купить

Диод Зенера 3V6 купить

Резистор 1.5 кОм купить

Кварцевый генератор 12 купить

Конденсатор 20 pF купить

Светодиод купить

Зажим на 20 гнезд купить

Клеммник купить

Кабель USB купить

Макетная плата купить

Проводки купить

Набор проводков купить

Собранное готовое к работе USB устройство выглядит так:

USB устройство своими руками

Программа на микроконтроллер AVR для USB связи

1) Скачиваем исходные коды OpenRoboFW и распакуйте архив на диск C:\, я собрал этот архив из файлов проекта V-USB, настроил их на Attiny2313A и тактовую частоту 12 МГц (эти настройки меняются в файле Makefile, если используется другой микроконтроллер), упростил код для внесения изменений. V-USB дает нам исходники программ с идентификаторами VID и PID, которые нужны для распознания USB устройства компьютером. На всякий случай вот ссылка на проект . После распаковки архива содержимое директории выглядит так:


Назначение важных файлов:
main.c - главный файл программы на языке C, она осуществляет обработку информации, пришедшей по USB, и в ней программируется реакция микроконтроллера на USB пакеты с компьютера
Makefile - параметры сборки, тип микроконтроллера (взяли - attiny2313a), частота, информация по фьюзам для других микроконтроллеров, при использовании другого микроконтроллера, в этом файле его нужно прописать в строке DEVICE (например - atmega16a)
usbconfig.h - параметры USB, порт подкючения линии D-, ток

Откройте main.c и обратите внимание на 2 области кода, которые там выделены - программа реакции на USB пакет и настройка портов. В этих областях надо вставлять свой код, остальное можно не трогать. Для примера там уже стоит код, его можно менять. В приходящем пакете USB с компьютера есть 2 параметра - p1 и p2, которые передаются из программы в виде параметров, в зависимости от их значений можно менять состояние линий микроконтроллера (портов) в программе реакции.

2) Скачиваем программу WinAVR и устанавливаем, она нужна для создания HEX-прошивки микроконтроллера AVR, сайт WinAVR

3) Запускаем командную строку Windows, которая находится тут c:\Windows\System32\cmd.exe появляется чёрное окно. В этом окне вводим 2 команды (набираем команду, нажимаем enter):

Подготавливаем программу МК

Также надо прошить fuse-биты настроек микроконтроллера, чтобы изменить его тактовую частоту на совместимую с USB стандартом. Встроенной подходящей частоты нет, поэтому применяется внешний источник тактовой частоты 12 МГц. Для прошивки настроек fuse-битов устройство с программатором надо доработать, подключить к микроконтроллеру внешний кварцевый генератор 12 МГц и 2 конденсатора 20 пФ по схеме как на устройстве USB, т.е. в случае с ATTiny2313A к линиям PA1 и PA0, и также соединить это всё с минусом питания, вообщем как на схеме USB устройства, смотрите на фото ниже как подключено. Это нужно для того, чтобы устройство продолжило работу после установки для него нового источника тактового сигнала, именно этот источник 12 МГц и подключаем. Не забудьте кроме программы также прошить fuse-биты.

Меняем настройки программатором

Программатор USBasp купить

Кварцевый генератор 12 купить

Конденсатор 20 pF купить

Мини макетная плата купить

Зажим на 20 гнезд купить

При этом установите такие биты конфигурации:

Для ATtiny2313A (наш случай):
CKSEL0..3=1111 SUT0..1=10 CKOUT=1 CKDIV=1 RSTDISBL=1 BODLEVEL2..0=101 WDTON=1 SPIEN=0 EESAVE=1 DWEN=1

Установите В справочнике эти fuse-биты и прошейте их в микроконтроллер полученной строкой через программу AVR dude, о том Как прошить тут. Также дам на всякий случай fuse-биты для других микроконтроллеров.

Для ATmega8A:
CKSEL0..3=1111 SUT0..1=10 BODEN=0 BODLEVEL=1 BOOTRST=1 BOOTSZ0..1=00 EESAVE=1 CKOPT=0 SPIEN=0 WDTON=1 RSTDISBL=1

Для ATmega16A:
CKSEL3..0=1111 SUT0..1=10 BODEN=0 BODLEVL=1 BOOTRST=1 BOOTSZ0..1=00 EESAVE=1 CKOPT=0 SPIEN=0 JTAGEN=1 OCDEN=1 LB1..2=00 BLB=0000

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

Программа на компьютер для USB связи

Для начала сделаем простую консольную программу, потом будем делать программу с окнами.

3) Скачиваем программу MinGW, которая нужна для сборки программы из исходника. Устанавливаем. Сайт разработчика MinGW. После установки зайдите в Панель управления, Система, Дополнительные параметры системы, Дополнительно (вкладка), Переменные среды (кнопка), Системные переменные (список), Переменная Path (найти в списке, выделить, нажать кнопку Изменить). Дописываем в поле Значение переменной в конце ;c:\MinGW\bin\ и нажимаем ОК, надеюсь вы установили MinGW в C:\MinGW, иначе надо путь другой прописать.

Настраиваем системную переменную Path для MinGW

Подготовка программы ПК

Изменяем программы под наши нужды

Берём под контроль все порты, прибавляем свои функции. И так, теперь в C:\OpenRobo размещены исходные коды программы для компьютера, а в C:\OpenRoboFW исходные коды программы для микроконтроллера. Их можно изменять, но после каждого изменения надо их занова пересобирать (и перепрошивать микроконтроллер), делать это теперь вы умеете - см. выше пример - пересобрать обе программы можно 4-мя командами в cmd:

Изменение программы для микроконтроллера

1) Открываем файл C:\OpenRoboFW\main.c, находим там область кода, обозначенную как настройка портов, надо установить все свободные порты на вывод командами DDR, меняем содержимое области на следующий код. Код для main.c:

2) Открываем файл C:\OpenRoboFW\main.c, находим область кода, обозначенную как программа реакции на USB пакет, сделаем, чтобы по команде зажигались светодиоды на всех свободных линиях. Меняем содержимое области на. Код для main.c

К тому же неплохо бы научится вставлять свои функции, которые будут выполняться по вашим командам, пока есть только on, off, status, нужно добавить еще команд, например добавим команду discoteka, по которой будет вызываться какая-нибудь наша функция в микроконтроллере, например - светодиоды горят через один на порте B. Добавим в микроконтроллере обработку дополнительных кодов, пусть это будет код 2, т.к. 1 и 0 уже используются для функций on и off, из программы для компьютера будем посылать потом микроконтроллеру код 2 функцией, вызываемой по команде discoteka. Опять меняем файл C:\OpenRoboFW\main.c, область реакции. Код для main.c

Изменение программы для компьютера

1) Открываем файл C:\OpenRobo\set-led.c

3) Редактируем файл set-led.c вставляем сверху от строчки

Обратите внимание на функцию usb_control_msg, в ней можно передать 2 изменяемых параметра (в первом у нас передаётся 2 или переменная isOn, которая равна 1 или 0), следующее число (там стоит 0) может передать еще 1 значение, например, 1 переменная может быть всё также быть изначальной командой на on или off, а второй переменной можно передать, например, номер порта, который следует включить. Получить доступ к этим параметрам в программе для микроконтроллера можно по именам p1 и p2, для этого примера p1=2, p2=0.

Как сделать программу для Windows

1) Заходим на сайт, выбираем русский язык, нажимаем INSTALL NOW.
2) После установки запускаем, нажимаем Создать проект. Для начала создадим простую программу с 1 кнопкой - нажимаем эту кнопку, текст в ней меняется.
3) Выбираем шаблон Приложение Windows Forms, внизу вводим название программы, нажимаем OK.
4) Перетаскиваем справа элемент Button на центральное окно с формой и оставляем его внутри формы.
5) Кликаем на форму и на кнопку, при этом справа внизу есть окно Свойства, его содержимое меняется. В этом окне задаём необходимые свойства элементов - текст кнопки и окна. Редактируем свойство Text, пишем там любой текст, например, Моя кнопка. Текст на кнопке меняется, это видно на форме в центральном окне.
6) Теперь сделаем так, чтобы при нажатии на эту кнопку, ее свойство, которое определяет текст на ней менялось на другое. Так же можно менять любые другие свойства.
7) Делаем двойной клик на кнопке Моя кнопка, которая находится в форме в центральном окне, попадаем в файл кода Form.h (его можно выбрать в любое время слева в меню). В этом файле после двойного клика была создана функций button1_Click (остальной код автоматом был создан по шаблону при создании проекта), курсор находится внутри нее, нажмите Enter, чтобы создать пустую строку, куда и будем писать код.
8) Как можно видеть в этом же файле чуть повыше есть разделы - button1 и form1, там заданы начальные установки для элементов - кнопки и формы. Воспользуемся ими, скопируем внутрь нашей функции клика по кнопке (это место отмечено красной стрелкой) строчку, где устанавливается название кнопки, а именно this->button1->Text = L"Моя кнопка"; Только текст Моя кнопка изменим на Работает!
9) Нажимаем на кнопку с зеленым треугольником, через некоторое время наша программа запустится (если вы не совершили ошибок) и при нажатии на кнопку, текст внутри меняется с Моя кнопка на Работает!
10) Забрать готовую программу (файл .exe) можно в директории текущего пользователя
Весь процесс показан на картинках.

Приветствую тебя, читатель!
Что нам пригодится для того, чтобы сделать USB папа - папа (male - male) своими руками?
1) Паяльник;
2) Немного припоя (любой, самый популярный и дешевый - ПОС-60);
3) Канифоль (для удаления окислов);

У меня в ящике давно валялся старый USB - micro USB кабель от телефона и "битый" провод от старой USB мышки, от которой мне нужен только USB разъем.
Думаю, что у Вас тоже могут быть подобные, не очень нужные, провода (должны подойти любые кабели с USB, кроме самых дешевых китайских, которые вряд ли подойдут для передачи данных по кабелю).




Отрезав всё необходимое, оставив небольшой запас проводов для пайки и убрав изоляцию с проводов, можно приступать.



Сначала, как и полагается, окунаем провода в канифоль разогретым жалом паяльника, чтобы убрать окислы с их поверхности. Затем припаиваем их согласно распиновке (ориентируйтесь по цвету проводов).

На скорую руку получилось не очень красиво, но зато надежно! "Прозвонил" выводы USB с помощью мультиметра, на всякий случай - "обрывов" не выявил.

Как сделать USB Wi-Fi-адаптер, пошаговая инструкция

Сделать вай фай адаптер своими руками с подключением по USB интерфейсу можно сразу несколькими способами, которые, в свою очередь, можно поделить на два метода:

  1. С разборкой устройства, из которого можно достать модуль беспроводной связи;
  2. Непосредственно подключив устройство, в котором есть WiFi-модуль.

Второй вариант будет подробнее рассмотрен ниже, здесь же приводится пошаговое руководство, как сделать USB Wi-Fi-адаптер из модуля от вышедшего из строя планшета.

Wi-fi модуль на планшете

Обратите внимание! Подобное оборудование от ноутбука не подойдет, поскольку для его подключения используется разъем mini PCI-E. На самом деле из него можно сделать адаптер, но для этого необходимо использовать специальный переходник mini PCIe – PCIe, покупной или изготовленный самостоятельно.

Итак, для изготовления портативного устройства, предназначенного для подключения к беспроводной WiFi-сети через USB-порт, понадобится выполнить следующие шаги:

Проверка на компьютере

  • После того как распайка осуществлена, можно проверить работоспособность устройства, подключив его к компьютеру. Если все функционирует, и модуль определяется в диспетчере устройств, можно производить компоновку сборки в удобном для использования корпусе.

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

Wi-fi модуль в корпусе

Из чего можно сделать вай фай адаптер

Планшет или телефон

Помимо описанного выше способа, когда используется только беспроводной модуль от нерабочего устройства, можно применить планшет в качестве WiFi точки доступа. Вообще, это можно сделать с любым устройством, работающим под управлением ОС Android (смартфоном, умной телеприставкой и т. д.). Осуществляется это следующим способом:

USB-модем

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

Кстати! Если это необходимо, WiFi-адаптер для телевизора своими руками можно изготовить точно так же, как и для других цифровых устройств. Формат передачи беспроводных данных для многих ОС является стандартизированным и поэтому универсальным.

Схема изготовления

Как изготовить WiFi-адаптер из рабочего модуля от нерабочего планшета, рассказывалось выше. Здесь следует заметить, что для персонального компьютера WiFi-модуль своими руками можно изготовить из аналогичного устройства от ноутбука. Для этого понадобится:

  • открыть крышку ноутбука, открутить крепление модуля, отсоединить антенны и достать его;
  • в заранее купленный или изготовленный самостоятельно переходник miniPCIe – PCIe установить извлеченную плату, зафиксировать крепежом;
  • установить переходник в разъем PCIe, предварительно соединив антенны при помощи соответствующего кабеля и разъемов (при отсутствии кабеля его можно взять из старого ноутбука, откуда был извлечен модуль и припаять к штырьковым антеннам);
  • включить ПК и настроить оборудование путем установки необходимого программного обеспечения.

Для самостоятельного изготовления адаптера понадобится некоторый набор инструментов и материалов, а пошаговая инструкция будет иметь следующий вид:

  1. из материалов – текстолит, металлизированный с одной стороны, глянцевая бумага (рекламный буклет формата А4 от любой компании), набор радиокомпонентов, а также олово, паяльная кислота и канифоль, ацетон, тряпочка, хлорное железо;
  2. из инструментов – паяльник, мини-дрель, сверла от 0,7 до 1 мм, надфиль плоский, шкурка с абразивным номером менее 800, утюг;
  3. из программного обеспечения и периферии – Sprinter Layout и лазерный принтер; архив, в котором находится схема с печатной платой, и при помощи лазерного принтера перенести рисунок на глянцевую бумагу;
  4. текстолит обрезать по размеру, края обработать надфилем, шкуркой очистить медную поверхность от оксида, обезжирить тряпочкой, смоченной ацетоном;
  5. положить бумагу с распечаткой рисунком вниз на плату, установленную на негорючую, ровную поверхность, и хорошо прогреть утюгом (суть процесса в том, что при температуре тонер плавится и прилипает к поверхности металла, после остывания он вновь отвердевает – получается примитивная маска);
  6. получившейся заготовке дать хорошо остыть и положить ее в емкость с холодной водой, по прошествии получаса бумага должна легко отойти, а рисунок, нанесенный тонером, остаться на плате;
  7. при помощи хлорного железа вытравить плату, при этом руководствоваться инструкцией, прилагаемой к препарату (качество железа и его дозировки сильно зависят от производителя);
  8. по намеченным точкам произвести сверловку падов (отверстий для установки радиокомпонентов);
  9. у элементов залудить ножки, установить их в свои посадочные места и припаять.

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

Преимущества и недостатки самодельного вай фай адаптера

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

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

Технический эксперт

Подгорнов Илья Владимирович Всё статьи нашего сайта проходят аудит технического консультанта. Если у Вас остались вопросы, Вы всегда их можете задать на его странице.

USB проигрыватель — это по сути дела внешняя USB звуковая карта. Многие используют компьютер для воспроизведения музыки, но качество воспроизведения, особенно встроенных звуковых карт оставляет желать лучшего.

Звуковая карта хорошего качества стоит дорого.

А почему бы не сделать свой USB проигрыватель?

Поможет нам в этом микросхема PCM2902 — 16-ти битном дельта — сигма АЦП-ЦАП.

Основные технические характеристики

Характеристики при VBUS= 4.84 V, VCCCI = 3.5 V:

ЦАП

Частота дискретизации — 32, 44.1, 48 KHz
Потребляемый ток — 90 мA
Номинальное выходное напряжение — (0 dB) 1,1В RMS
Верхний предел диапазона — (-3 dB) 22.7 kHz (fs = 48 kHz)
Частота среза пост-фильтра — 28 kHz
Выходное сопротивление – 100 Ом
Отношение сигнал/шум > 95 dBA
КНИ + шум — (1 kHz) 0.005% (B = 22 kHz)
Разделение каналов > 99 dB (1 kHz), при > 76 dB (20 kHz)

АЦП

Блок-схема PCM2902

2909

2909_3

Схема включения PCM2902

2909_2

Этот кодек кроме аналогового входа и выхода имеет так же и цифровой S/PDIF вход-выход. Полная поддержка USB 1.1. Работает в дуплексном режиме.

PCM2902 имеет интересный собственный контроль за уровнем громкости HID (Human Interface Device), кнопками, которые подключены к входам HID0, HID1, HID2 можно, соответственно, управлять режимами ТИХО, ГРОМКОСТЬ + и ГРОМКОСТЬ –, что исключает необходимость двигать ползунки в микшере на ПК.

Принципиальная схема

Подключаем USB провод к ПК.

Хорошо, что драйвера для этой микросхемы уже есть в Windows. По крайней мере в Windows 7 точно есть. PCM2902 определяется как USB Audio codec.

Чтоб это проверить — заходим в Диспетчер устройств и находим:

USB audio CODEC и USB — устройство ввода

Далее настраиваем наш плеер.

Заходим в панель управления — оборудование и звук — звук.

Наш USB Audio codec должен быть устройством по умолчанию, если нет, то это делаем. А также отключаем встроенную звуковую карту.

Теперь нажимаем на кнопочку Свойства. Появляется меню Свойства. Заходим на вкладку дополнительно и выставляем 2 канала 16bit, 48000Гц.

usb_player_4

Далее переходим на вкладку Запись.
Выбираем микрофон USB Audio codec по умолчанию и нажимаем кнопку свойства.

Выбираем вкладку Прослушать:

usb_player_3

Теперь заходим в вкладку Дополнительно и выставляем 2 канала 16bit, 48000Гц.

Читайте также: