Эмулятор DS18b20 на ATTiny2313

Мне несколько раз приходилось делать устройства, которые должны были так или иначе реагировать на изменение температуры (а не просто отображать), и пару раз я нарывался на ошибки уже при работе устройства, потому что не достаточно хорошо протестировал работу с температурой при отладке. Поэтому, когда oss попросил меня изобразить волшебную коробочку с кнопками и дисплеем, которая прикидывалась бы градусником, идея пришлась мне по нраву.

Коробочка снабжена индикатором на три разряда, который показывает установленную температуру, двумя кнопками для установки нужного значения и портом 1-wire. Температуру можно выставлять в диапазоне от -55 до +99 градусов. Внутре у ней ATTiny2313.

Так-как задачка полной эмуляции всех фич градусника передо мной не стояла, коробочка обделена многими крутыми штуками. Проще сказать, что она умеет:
— Команду пропуска адреса (Skip ROM)
— Команду чтения адреса (Read ROM)
— … сравнения адреса (Match ROM)
— Чтение памяти (той, где температура)

Иначе говоря, эмулятор покрывает базовый функционал датчика. А вот работать с порогами температуры, командой поиска (Search ROM) и сохранением настроек, он не умеет.

Серийный номер (он-же адрес 1-wire) выставляется при прошивке, и без программатора сменить его нельзя. Это конечно большой минус, но для устройств, в которых всего один термометр, адрес не важен.

Исходники (AVR Studio 4 + WinAVR)
Схема
А под катом, небольшой спич о том, как это работает


Читать дальше
  • +14
  • 12 февраля 2013, 01:23
  • dcoder
  • 2

Эмулятор нажатия клавиш в Win на Com-порту

Недавно понадобилось преобразовывать символы, из COM порта в нажатия клавиш на клавиатуре в Windows. Причем желательно с эмуляцией нажатия Shift для преобразования клавиш в спецсимволы, например вместо 2 надо эмулировать нажатие символа @. Поискал по сети — нужного не обнаружил, либо платное, либо без Shift. Пришлось ваять самому.


Читать дальше

Эмулятор Panasonic CD Changer с встроенным контроллером IDE ATAPI

Данное устройство разрабатывалось как приставка к авто-магнитоле CQ-RG133W производства Panasonic, подключаемая к штатным разъемам CD-C (CD Changer) на задней стенке магнитолы, позволяющая воспроизводить AudioCD диски на компьютерном приводе CD-ROM с интерфейсом IDE.

Наибольшую сложность вызвал сам протокол обмена информацией между головным (магнитола) и подчиненным (CD чейнджер) устройствами. В инете информации по этому поводу не густо, пара ссылок:
www.mictronics.de/projects/cdc-protocols/#Panasonic
q1.se/cdcemu/
причем описание из первой ссылки ссылается на вторую как на первоисточник, а исходники из второй ссылки, написанные на ассемблере для МК PIC Microchip, немного разнятся с описанием протокола с той же страницы, что первоначально поставило под сомнение работоспособность приведенной прошивки (и в чем я, собственно, и убедился в дальнейшем).


Читать дальше