Pic18 Lab. Experiment #5. USB

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

Я во время изучения вопроса если честно неплохо так удивился, насколько умные люди тогда придумали как это сорганизовать и поставить на рельсы, а еще больше удивился когда увидел расценки на использование USB вашей компанией – Vendor ID стоит 5к долларов в год, хотите лого еще 6к надо бы, а ну и раз вы наше лого используете пришлите ка нам ваш девайс и мы его тестанем за н сумму денег еще… А список компаний которые используют Vendor ID можно найти на сайте www.usb.org (USB Implementers Forum – USB-IF), можно еще посчитать сколько там компаний и прикинуть прибыль этого сообщества чисто на этой подписке (читай охренеть). Но как я уже заметил люди это придумали очень умные, подсадили всех на иглу и грамотно этим пользуются.

Продолжаем дальше подсаживаться на иглу, добавляя USB и в свои проекты 🙂

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

usb_title
Читать далее

Поддержка USB в VirtualBox SUSE 11.4

Те у кого стоит виртуальная машина VirtualBox знают, что не так просто заставить это чудо работать. Небольшой мануал:

1. Устанавливаем нужное дополнение прямо из графического интерфейса, здесь никаких сложностей нет.

2. Редактируем файл /etc/fstab, вместо строки

usbfs /proc/bus/usb usbfs auto 0 0

прописываем следующее:

none /proc/bus/usb usbfs auto,busgid=112,busmode=0775,devgid=123,devmode=664 0 0

где devgid – id группы vboxusers, будьте осторожными, ваш может отличаться от моего

3. И финальная самая важная часть, без которой под сусей работать один фиг ничего не будет: редактируем содержимое файла /etc/udev/rules.d/60-vboxdrv.rules, заменяя все его содержимое на следующие строки:

KERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
#these two lines give access permission to vboxusers to properly work with usb nodes, this could be security risk (bnc#664520) !!
SUBSYSTEM=="usb_device", ATTR{devnum}=="?*", ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}", GROUP="vboxusers"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTR{devnum}=="?*", ATTR{busnum}=="?*",SYMLINK+="vboxusb/$attr{busnum}/$attr{devnum}", GROUP="vboxusers"

И вот после этого, все начинает работать.

Усилитель с мозгами на tda7294

Немного предыстории: Приобрел я тут на днях себе колонки вега 25AC-109 (которые поновее и 8 Ом), подключил их к своему самодельному усилку на tda7294, запихнутому в корпус от старого комповского БП (правда с оговоркой, что трансформатор находится вне корпуса), меня вроде как и звучание вполне устраивает, но хочется чего то эстетически выдержанного, ну и плюс заодно научиться работать с некоторой периферией.

Итак, что же необходимо сделать:

  1. Собственно два усилителя на два канала на tda7294 с аудиопроцессором (управление как минимум громкостью + режим Mute по шине I2C).
  2. Два блока питания: один для питания цифры и кулера(ов), второй мощный с двумя выходными напряжениями для питания усилителя.
  3. Мозг усилителя, в первом приближение плата с PIC16f877a + DS1307 + DS18b20 на борту и выводами на все порты ввода/вывода для дальнейшего использования с чем угодно.
  4. Модуль радиоприемника+радиопередатчика для беспроводной передачи звука на усилитель.
  5. Модуль интернет-радио (если хватит на это терпения).
  6. GUI для управления через USB.
  7. ЖК дисплей + кнопки железного управления.
  8. Управление через ИК.
  9. Регулировка громкости и управление меню с помощью энкодера.
  10. Корпус (чувствую будет самым геморным пунктом).
  11. Меню для ЖК дисплея.
  12. Low VDD Detector.

[Проект находится в стадии разработки и периодически данная статья будет дополняться]

Наглядная структурная схема

update#1: мозги готовы в таком виде, в котором и планировались, ссылка в пункте 3. Следующим этапом пойдет подключение LCD и вывод на него времени и температуры.

update#2: добавлено подключение LCD + функции вывода температуры и времени на него.

update#3: добавлены процедуры обработки вращения энкодера.

update#4: обновлены процедуры обработки вращения энкодера.

update#5: создал меню для ЖК дисплея.

update#6: внедрил ИК управление в девайс.

update#7: готов источник питания цифры и кулеров.

update#8: готов источник питания для усилков.

update#9: готовы сами усилители на tda7294.

update#10: готова плата с аудиопроцессором tda8425

update#11: готов Low Vdd Detector

USB to RS-232 – FT232RL

По этому поводу есть куча статей, но я решил все-таки выбросить и свой вариант, надо же блог наполнять 🙂

3d

Читать далее