Оглавление:
- Шаг 1. Обзор дизайна
- Шаг 2: Прошивка
- Шаг 3: Тестирование устройства
- Шаг 4: Что еще он может сделать?
Видео: USB-термометр для дома / улицы (или «Мое первое USB-устройство»): 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Это простой дизайн, демонстрирующий периферийное устройство USB на PIC 18F. В сети есть множество примеров 40-контактных микросхем 18F4550, эта конструкция демонстрирует меньшую 28-контактную версию 18F2550. На печатной плате используются детали для поверхностного монтажа, но все компоненты доступны в версиях со сквозным отверстием. Я использую детали для поверхностного монтажа, потому что быстрее сделать плату без сверления отверстий. Конечным результатом является небольшое периферийное USB-устройство, которое измеряет температуру в помещении / на улице. Данные доступны для ПК через виртуальный последовательный порт. В примере используются датчики температуры, но могут быть добавлены другие аналоговые датчики. PS См. Живой график данных с моего регистратора здесь: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = график
Шаг 1. Обзор дизайна
Обязательные компоненты PIC
Это периферийное USB-устройство основано на 28-контактном PIC 18F2550. В этом чипе есть все необходимое для полноценного USB-интерфейса. Конденсатор 0,1 мкФ между питанием и землей отделяет PIC от источника питания. Кристалл 20 МГц (используется для генерации внутренних часов 48 МГц) и два конденсатора 27 пФ. Резистор 10 кОм от питания к выводу MCLR. Я добавил диод, эквивалентный 1n4148, между резистором и питанием, чтобы напряжение 13 + В, подаваемое на MCLR во время программирования, не повредило другие компоненты на печатной плате. Заголовок ICSP (5 контактов) используется для программирования и отладки устройства. Требуемые USB-устройства. Гнездо USB типа «B». Для внутреннего стабилизатора напряжения USB требуется емкость 220nf-440nf. Я без проблем использую два конденсатора 0,1 мкФ (такие же, как для развязки). Светодиод с токоограничивающим резистором 330 Ом используется для отображения состояния USB-подключения. Необходимые датчики В качестве датчика температуры в помещении я использовал датчик температуры на микросхеме TC1047A. Он физически припаян к плате - из-за этого он нагревается на несколько градусов выше комнатной температуры. Разъем используется для подключения датчика температуры наружного воздуха (версия TO-92 TC1047a). Дополнительный конденсатор 0,1 мкФ помогает отделить длинный провод от остальной части платы. Уровни напряжения USB недостаточно согласованы для точного измерения и вычисления температуры с помощью аналоговых датчиков. Используется внешний источник опорного напряжения (MCP1525, 2,5 В). Для опорного напряжения требуется конденсатор на выходе от 1 мкФ до 10 мкФ. Без этого конденсатора опорное напряжение работать не будет.
Шаг 2: Прошивка
Прошивка использует класс CDC USB для имитации последовательного порта. Устройство будет отображаться как виртуальный COM-порт на ПК. Прошивка разбита на три раздела: 1. Драйвер USB выполняет перечисление устройств на ПК и эмуляцию COM-порта. 2. Программа обслуживания поочередно считывает значения температуры и преобразует их в читаемый формат. Выполнение обеих этих операций одновременно привело к потере соединения USB-устройства с ПК (потеря времени). Преобразование значений с плавающей запятой в строку в цикле обслуживания после преобразования устранило проблему подключения. * 3. Наконец, основная процедура принимает байты, отправленные с ПК, и возвращает запрошенные измерения. Множественные меры разделяются запятой, строки заканчиваются нулевым символом (шестнадцатеричный 0x00) Демонстрационная прошивка принимает следующие команды: шестнадцатеричное значение Возвращает 0x00 Температура в помещении (встроенный датчик) 0x01 Температура наружного воздуха (внешний заголовок) 0x02 Обе температуры (запятая отдельно) Температура рассчитывается на основе опорного напряжения 2,5 В, смещения и наклона Microchip TC1047A. Другие датчики температуры могут иметь другие характеристики. Техническое описание TC1047A доступно здесь: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Прошивка написана в MPLAB с демонстрационным компилятором PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Фактическая прошивка USB предоставляется Microchip. Исходная среда доступна здесь: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Для редактирования прошивки: извлеките всю структуру каталогов исходного кода в корневой каталог (c: / MCHPFSUSB). Затем вы можете загрузить файл рабочей области в MPLAB. * Подпрограмма с плавающей точкой в строку - это ресурсоемкая процедура. Чтобы обойти проблему с подключением, служебная подпрограмма USB вызывается в различных точках подпрограммы float2string. Лучше всего это исправить, обслуживая периферийное устройство USB по прерыванию. Я использовал хак, чтобы прошивка оставалась максимально приближенной к эталонной версии.
Шаг 3: Тестирование устройства
Инструкции для Windows, но устройство может быть подключено ко всему, что имеет драйверы эмуляции последовательного порта CDC.
Запрограммируйте устройство прошивкой. Все биты конфигурации должны быть правильно установлены в прошивке. Подключите устройство к USB-порту. Windows обнаружит это и предложит выбрать драйвер. ОБЯЗАТЕЛЬНО НАЖМИТЕ «ПРОСМОТР ПОЛЬЗОВАТЕЛЯ». Перейдите к расположению файла.inf, включенного в архив проекта (driver-win2k_winxp). Windows будет использовать этот файл для установки устройства. * Примечание о драйвере CDC - драйвер эмуляции последовательного порта CDC входит в состав Windows. Файл.inf (предоставленный Microchip) просто сообщает Windows о необходимости подключения этих драйверов к устройству. Чтобы узнать, какой COM-порт назначен устройству, выполните следующие действия: Перейдите в панель управления (пуск-> настройки-> панель управления). Дважды щелкните «система». Щелкните вкладку «Оборудование». Нажмите «Диспетчер устройств». Нажмите «+» рядом с портами. Отображается список COM-портов в системе. Я видел, что устройство отображается как COM 3 и 4, но это зависит от системы. Если не очевидно, какой порт новый, попробуйте следующее: отключите устройство от порта USB. Один из портов исчезнет. Это номер COM-порта устройства. Подключите устройство снова, порт снова появится. Небольшое приложение VB (исходный код включен) можно использовать для тестирования устройства. Введите команду для отправки, нажмите «Старт». Ответ будет показан в окне.
Шаг 4: Что еще он может сделать?
Эта демонстрационная плата является хорошей отправной точкой для небольшой домашней метеостанции: добавьте датчик влажности HIH3160 или замените аналоговый датчик температуры высокоточным последовательным датчиком температуры и влажности Sensiron HT74. Добавьте датчик давления Freescale MPX (a) 4115 к измерить атмосферное давление. Хотите опубликовать эти данные в Интернете? Включить его на свой веб-сайт, просмотреть в Google Earth или получать обновления в своем RSS-канале? См. Инструкции по интеграции этого устройства с веб-сервером SyndicIT.com:
Рекомендуемые:
Автоматизированная садовая система, построенная на Raspberry Pi для улицы или дома - MudPi: 16 шагов (с изображениями)
Автоматизированная садовая система, построенная на Raspberry Pi для улицы или дома - MudPi: Вы любите садоводство, но не можете найти время для его ухода? Возможно, у вас есть комнатные растения, которые немного хотят пить или вам нужен способ автоматизировать гидропонику? В этом проекте мы решим эти проблемы и изучим основы
Мое первое приложение Java: 6 шагов
Мое первое Java-приложение: Вы по-прежнему хотите создать собственное Java-приложение, но по какой-то причине откладываете его? Вы слышите, как вы говорите: «Завтра, наконец, я сделаю это»? Но этого завтра никогда не наступит. Итак, вам нужно начать прямо сейчас. Пришло время взять хан
Мое первое умное зеркало: 8 шагов
Мое первое умное зеркало: Мы все знаем эту проблему, мы слишком поздно встаем утром, поэтому нам нужно очень быстро подготовиться. А это значит, что у вас нет времени посмотреть, какая будет погода. Но на что у вас наверняка есть время, так это на то, чтобы посмотреть в зеркало. Что, если мы сможем
Крутая модификация USB-накопителя (мое первое руководство): 4 шага
Классная модификация USB-накопителя (My First Instructable): это классная модификация, использующая пачку карт, немного поролона и, конечно же, USB-накопитель. Хотя это немного громоздко, ваши коллеги все равно будут думать, что это довольно круто
Управляемая светодиодная система RGB для вашего дома или офиса: 5 шагов (с изображениями)
Управляемая светодиодная система RGB для вашего дома или офиса: вам скучно светить в вашем доме или на рабочем месте? Вы хотите добавить в свою комнату немного энергии или настроения? В этом руководстве показано, как создать управляемую светодиодную матрицу RGB для использования в вашем доме или офисе. Ваш красный, зеленый, синий светодиод d