В проекте описывается устройство, позволяющее управлять двумя силовыми розетками через USB-порт компьютера. Естественно, вместо розетки может использоваться любое другое устройство.
USB был выбран потому что, во первых я хотел поэкспериментировать с микроконтроллером PIC18F4550, а во вторых, мощностью USB-порта (500 мА) хватает для питания катушки реле.
Программное обеспечение МК основывается на SIXCA USBDAQ, который в свою очередь базируется на microchip CDC. USBDAQ очень прост в использовании и позволяет посылать ASCII команды для включения/выключения цифровых выходов, которые используются для управления двумя реле. Мне нужно было только установить значение bMaxPower, чтобы можно было использовать ток в 500 мА и поменять данные "vendor ID" и "name".
Внимание! Хотя в устройстве и предусмотрена изоляция низковольтовой и силовой части, всегда есть риск механического и др. повреждений. Поэтому соблюдайте осторожность!
За основу взята схема USBDAQ, добавлены лишь 2 дополнительных каскада для управления реле. В схеме используется составной транзистор BC517 (аналог КТ645А). Схемы управления реле были взяты отсюда: управление реле через COM-порт.
Печатная плата разделена на 3 части. 2 платы управления можно легко поместить в корпус внешней розетки, колодки или удлинителя.
PIC-микропрограмма
Опишу только то, что нужно изменить в оригинальной SIXCA USBDA:
Вначале я установил значение переменной bMaxPower на 250 мА. Файл, который необходимо модифицировать: fw/cdc/autofiles/usbdsc.c:
/* Configuration 1 Descriptor */ CFG01= { /* Configuration Descriptor */ sizeof(USB_CFG_DSC), // Size of this descriptor in bytes DSC_CFG, // CONFIGURATION descriptor type sizeof(cfg01), // Total length of data for this cfg 2, // Number of interfaces in this cfg 1, // Index value of this configuration 0, // Configuration string index _DEFAULT, // Attributes, see usbdefs_std_dsc.h 250, // Max power consumption (2X mA) 250 = 500mA ...
В этом же файле я изменил Vendor ID, Product ID
/* Device Descriptor */ rom USB_DEV_DSC device_dsc= { sizeof(USB_DEV_DSC), // Size of this descriptor in bytes DSC_DEV, // DEVICE descriptor type 0x0200, // USB Spec Release Number in BCD format CDC_DEVICE, // Class Code 0x00, // Subclass code 0x00, // Protocol code EP0_BUFF_SIZE, // Max packet size for EP0, see usbcfg.h 0xAF01, // Vendor ID 0xAF0A, // Product ID: CDC RS-232 Emulation Demo 0x0000, // Device release number in BCD format 0x01, // Manufacturer string index 0x02, // Product string index 0x00, // Device serial number string index 0x01 // Number of possible configurations }; ... rom struct{byte bLength;byte bDscType;word string[16];}sd001={ sizeof(sd001),DSC_STR, 'a','l','f','e','r','s','o','f','t','.', 'c','o','m','.','a','r'}; rom struct{byte bLength;byte bDscType;word string[21];}sd002={ sizeof(sd002),DSC_STR, 'A','l','f','e','r','S','o','f','t',' ', 'U','S','o','c','k','e','t',' ','1','.','0'};
Также отредактировал файл driver/win2k_winxp/mchpcdc.inf, чтобы совпадали данные vendor, product ID и описание:
[DeviceList] %DESCRIPTION%=DriverInstall, USB\VID_AF01&PID_AF0A ... ;------------------------------------------------------------------------------ ; String Definitions ;------------------------------------------------------------------------------ [Strings] MCHP="alfersoft.com.ar" MFGNAME="alfersoft.com.ar" DESCRIPTION="Communications Port" SERVICE="AlferSoft USocket 1.0"
Прошивка PIC
Для программирования PIC я использовал WinPic800. На скриншоте ниже параметры.
Команды
Я не модифицировал какие-либо команды USBDAQ. Они все доступны, но мне необходимы только 4 команды:
*A01 (включить реле 1)
*A00 (выключить реле 1)
*A11 (включить реле 2)
*A10 (выключить реле 2)
После каждой команды возврат каретки (chr(13) or '\n').
Установка ПО под Windows
1. Подключите устройство к USB, Windows должна его определить по иконке в трее:
2. Windows предложит установить драйвера, соединившись с сервисом Windows Update, нажмите "нет" и перейдите к следующему шагу.
3. Выберите пункт "Установка из указанного места" и нажмите Next.
4. Выберите пункт "Включить следующее место поиска" и укажите директорию с .inf файлом driver\win2k_winxp:
5. Windows обнаружит и установит драйвер:
Тестирование (Windows)
1. Откройте диспетчер устройств и посмотрите на какой COM-порт у вас установилось устройство. У меня это был COM10
2. Откройте терминал и задайте имя:
3. Выберите COM-порт:
4. Скорость обмена установите в 115200:
5. Этот шаг необязательный. Для того, чтобы мы видели, что мы набираем, выберите ASCII Setup:
6. Поставьте галочку на опции "Echo typed characters locally".
7. Настройки готовы. Теперь можно соединиться и попробовать подать какую-нибудь команду на наше USB-устройство:
Установка ПО под Linux (Ubuntu)
1. Подключите устройство к компьютеру. Это все! Новое устройство вероятнее всего будет называться /dev/ttyACM0
Тестирование под Linux (Ubuntu)
1. Откройте gtkterm, если у вас этот пакет не установлен, то установите его командой "sudo apt-get install gtkterm"
2. Переходим к Configuration -> Port, устанавливаем порт /dev/ttyACM0, скорость 115200 и нажимаем ОК.
3. Выберите Configuration -> Local echo
4. Теперь можно набирать команды для управления реле.
Фотографии собранного устройства:
Ниже вы можете скачать драйвера, исходники, прошивку, файлы для Eagle
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК PIC 8-бит | PIC18F4550 | 1 | Поиск в магазине Отрон | ||
Q1, Q3 | Биполярный транзистор | BC517 | 2 | КТ645А | Поиск в магазине Отрон | |
Q2 | Кварц | 20 МГц | 1 | Поиск в магазине Отрон | ||
D1-D4 | Выпрямительный диод | 1N4004 | 4 | КД243Г | Поиск в магазине Отрон | |
LED1, LED2 | Светодиод | 2 | Поиск в магазине Отрон | |||
C1, C2 | Конденсатор | 22 пФ | 2 | Поиск в магазине Отрон | ||
C3 | Конденсатор | 470 пФ | 1 | Поиск в магазине Отрон | ||
R1 | Резистор | 4.7 кОм | 1 | Поиск в магазине Отрон | ||
R2 | Резистор | 1 мОм | 1 | Поиск в магазине Отрон | ||
R3, R5 | Резистор | 150 Ом | 2 | Поиск в магазине Отрон | ||
R4, R6 | Резистор | 100 кОм | 2 | Поиск в магазине Отрон | ||
K1, K3 | Реле | FRS1B | 2 | 5 Вольт | Поиск в магазине Отрон | |
X1 | Mini-USB разъем | Type B | 1 | Поиск в магазине Отрон | ||
Скачать список элементов (PDF)
Прикрепленные файлы:
- usocket.zip (324 Кб)
Комментарии (0) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация