.
Представлена схема простого переходника с USB на 1-Wire, на микроконтроллере PIC18F2550.
Устройство, в первую очередь, разработано для тех, кто не "дружит" с электроникой и программированием микроконтроллеров, и кому очень хочется подключить к своему ПК устройства, управляемые по интерфейсу 1-Wire, но умеющим хоть как-нибудь писать софт под ПК.
"Сердцем" устройства является микроконтроллер PIC18F2550 фирмы Microchip, в который зашивается прошивка, лежащая ниже в архиве. Питание берётся с гнезда USB и вполне достаточно для нормальной работы устройства. Светодиод сигнализирует об обмене информации по USB. Когда идёт передача/приём данных, он мигает.
Работа с устройством осуществляется через библиотеку mpusbapi.dll и, специально мной написанные файлы USB.cpp и USB.h, которые необходимо добавить в проект с программой. Файлы писались и тестировались в среде C++Builder 6.
Функции для работы с устройством :
void USB_Dev_Init(void) |
Инициализирует работу с устройством.
|
||||||||||||
unsigned int USB_Get_Device_Count(void) |
Возвращает количество подключенных устройств.
|
||||||||||||
DWORD SendReceivePacket(BYTE *SendData, DWORD SendLength, BYTE *ReceiveData, |
Передаёт в устройство данные и ждёт от него ответа.
|
Управление линией 1-Wire производится с помощью команд. Команда в пакете всегда идёт первым байтом, затем, если необходимо, идут данные, связанные с этой командой.
Команды для работы с линией 1-Wire :
USB_CMD_RESET (0x01) |
Посылает на линию импульс сброса и возвращает факт присутствия сенсоров на линии
|
USB_CMD_SEND_BYTE (0x02) |
Посылает в линию байт данных.
|
USB_CMD_GET_BYTE (0x03) |
Читает байт данных из устройства на линии.
|
USB_CMD_FIRST_SEARCH (0x04) |
Начало поиска устройств на линии.
|
USB_CMD_NEXT_SEARCH (0x05) |
Продолжение поиска устройств на линии. Использовать только если первый поиск был удачным.
|
С печатной платой я особо париться не стал и взял готовую в тритоне - TRT-USB. Она идеально подошла под эту задачу.
Вот, собссно, фотки собранного переходника на этой плате:
Установка драйвера устройства :
Установка данного устройства не сложней установки любого простого USB-устройства.
Вставляем устройство в USB. Вылезет мастер нового оборудования. Указываем папку с драйвером и устройство готово к работе.
В диспетчере устройств должно появится следующее:
Если оно появилось - поздравляю Вас - вы стали счастливым обладателем супер-мега-переходника USB - 1-Wire :)
Демо программка :
Ну и, естественно, я не оставил читателей без "десерта" :)
Подключил к плате датчик температуры DS18B20 и написал небольшу демо-программку, читающую ID датчика и, каждые 1.5 секунды, температуру. Программа с исходниками лежит ниже в архиве.
Скриншоты программы :
Устройство не подключено к USB |
Устройство подключено, но датчик не обнаружен |
Устройство подключено, показан ID датчика, вывод температуры |
![]() |
![]() |
![]() |
И на последок, фото термометра с этой платкой :
Файлы проекта :
Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2021 © ChipMK.ru
![]() |
|