USB термометр

October 20, 2012 by admin Комментировать »

Давно у меня родилась идея сделать , однако нужды не
было, и идея покоилась. Както у друга в гостях заметил пару USB флешек. Одна
была дохлая и досталась мне нахаляву. С недавнего времени постоянно за ними
охочусь, т.к. в большинстве случаев сгорает контроллер, а NAND flash живая + SMD
кварц. А такое на дороге не валяется.
Так вот, с этой флешки я поимел: SMD
кварц на 12 МГц, USB штекер на плату и маленький корпус, а также развитие идеи
а.

В течении недели были разработаны:
1. Схема устройства;
2. Разводка
печатной платы под имеющийся корпус;
3. Программа для МК ATtiny45;
4.
Программа-хост (даллее просто хост) для приема данных от МК.

Как видно из схемы, основа устроуства – МК ATtiny45. Его выбор обуславливается
необходимостью минимизировать размеры печатной платы и наличием у него 4 Кбайт
флеш памяти, нужных для реализации USB и работы с DS18B20.
Датчик (DS18B20)
работает в режиме паразитного питания, т.е. не требует отдельного подвода
питания, а подключается к устройству 2 проводами. Входная цепь USB –
стандартная, рекомендованная разработчиками avrusb, за исключением того, что
подтягивающие резисторы в моем варианте включены после защитных на 68 Ом.

Программа для МК разработана в среде AVR Studio с использованием
GCC на основе библиотеки avrusb и исходников некоего Martin’a Thomas’a для
DS18B20 (времени не было самому писать). Спопсоб взаимодействия хоста с
устройством реализован в виде отправки устройству условного кода (в соответствии
с которым устройство будет выполнять требуемые операции), а также запроса пакета
данных со значением текущей температуры. Так как размер отправляемых и
принимаемых данных мал, то был выбран future репорт (тип пакета данных) ввиду
простоты работы с ним.
Если вы захотите исправить программу для МК,
пожалуйста, перед этим внимательно прочтите документ USBID-License.txt,
находящийся в папке usbdrv.
Там содержится ряд правил и ограничений по
использованию библиотеки avrusb.
Программа-хост написана в Borland Delphi 7
с использованием библиотеки компонентов JEDI-VCL, в состав которой входит
компонент TJvHidDeviceController, реализующий просой доступ к HID совместимым
USB устройствам. Чтобы сделать использование устройства максимально удобным было
решено реализовать хост в виде значка со значением температуры в ситемном трее
(возле часов) без какого-либо графического интерфейса, за исключением
контекстрого меню по нажатию правой кнопки мыши по значку в трее.
У меня
WinXP SP3, на других ОС программу не пробывал. 

В общем, хост работет по следующему алгоритму:
1. По таймеру
(раз в 2 секунды) запускаем поиск нашего девайса. Критерии поиска – текстовые
имена производителя (vendor) и устройства (product);
2. Принимаем информацию
от устройства с многочисленными проверками на ошибки. Если таковые возникают –
ставим значек “NA” – no access;
3. Отдаем команду чтения температуры из
датчика. Ждем;
4. Отдаем команду начала измерения температуры;
5. Возврат
к пункту 1 через 2 сек.
Вроде бы все сказал… ах вот, это устройство я
преподнес в виде подарка на день рождения тому самому другу, у которого схалявил
дохлую флешку.
Вот несколько фото готового устройства.

Автор устройства (схемы): Петр Елисеев

Связь с автором: Нет данных

Веб сайт автора: Нет данных

Источник: http://radiokot.ru

Доп материалы, файлы к устройству (схеме):

Прошивка МК с исходниками

Программа-хост для компостера, тоже с исходниками

Печатная плата в формате SL 5.0.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты