USB термометр

30-04-2013, 21:23 От: admin Посмотрели: 4880

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

USB термометр

 

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

USB термометр

USB термометр

 

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

USB термометр

 

Программа для МК разработана в среде 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, на других ОС программу не пробывал.

USB термометр

 

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


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

USB термометр

USB термометр

 


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


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

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

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


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления USB термометр все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба

Добавление комментария

Ваше имя:*
E-Mail:*
Текст:
Вопрос:
Решите уравнения x+2x=789
Ответ:*
Введите два слова, показанных на изображении:



Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930