Давно у мене народилася ідея зробити , проте потреби не було, і ідея спочивала. Както у одного в гостях помітив пару 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.