Авто-адаптер для ноутбука, новый и улучшенный.
Мой прошлый авто-адаптер все-таки сгорел после нескольких раз практического использования. Пришло время собрать новый. Да и ноутбук уже другой. Одно останется неизменным — гальваническая развязка входа и выхода.
А вот топология будет на этот раз — двухтактный пуш-пулл преобразователь.

Со времен конструирования прошлого преобразователя, я успел немного разобраться в принципах построения преобразователей питания и силовых схем. И теперь могу сказать, что пуш-пулл на низкое напряжение сделать с нуля все-же немного легче, чем флайбек. Особенно это касается расчета и конструкции трансформатора.
Читать дальше
А вот топология будет на этот раз — двухтактный пуш-пулл преобразователь.

Со времен конструирования прошлого преобразователя, я успел немного разобраться в принципах построения преобразователей питания и силовых схем. И теперь могу сказать, что пуш-пулл на низкое напряжение сделать с нуля все-же немного легче, чем флайбек. Особенно это касается расчета и конструкции трансформатора.
Читать дальше
Stm32F0 и 1-wire
Сегодня решил попробовать работу связки STM32F030 и DS18B20 как описал steel_ne здесь. Не получилось определить наличие датчика на OWI по сбросу так, как мне хотелось. Код steel_ne полностью рабочий, за исключением возврата значения функцией OW_Reset при закороченной линии данных. Проблемное место нашел и исправил.
Читать дальше
Читать дальше
Термометр с питанием от солнечных элементов
На базе популярного датчика температуры DS1820, микроконтроллера AtTiny24A, ЖК-индикатора и деталей, добытых из садовых фонариков я собрал несложный термометр, предназначенный для измерения уличной температуры:

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

Читать дальше
Отключение защиты от замерзания электро-котла Protherm Скат

В достаточно неплохой электро-котел встроена защита от замерзания, срабатывающая при достаточно высокой температуре, и которую невозможно отключить.
И если в систему залит антифриз, и планируется периодическое удаленное включение отопления (заранее перед приездом раз в неделю, по праздникам и т.п.), то эта защита может вылиться в копеечку.
Отключаем защиту с помощью навесной схемки на микроконтроллере AVR с цифровым датчиком температуры DS18B20.
Читать дальше
Самодельный термозонд на базе DS18B20

И руки до них особо не доходили, пока не захотел хотя бы попробовать, рабочие они или нет.
Оказались вполне рабочие. Причем, что особенно порадовало — показания у двух датчиков, установленных в одну макетку совпадали друг с другом с расхождением менее, чем в градус, что, для тех же DHT11 и DHT22 мягко говоря не очень характерно.
Тут же появились мысли, что неплохо бы этот градусник приспособить под бытовые нужды — померять температуру на выходе из обычного или автомобильного кондиционера (а не использовать для этого BMP180, как я делал недавно), температуру воды после термостата, температуру теплых полов, температуру внутри холодильника…
Благо, диапазон измерений — от -55 до 125 градус Цельсия — позволяет.
Проблема в одном — голый корпус TO-92 в воду не сунешь. Да и во всякие грязные и пыльные места тоже нежелательно.
Причем понятно, что загнать датчик в термоусадку — скорее всего не выход. Потому что защита датчика должна обеспечивать хороший подвод тепла к нему.
Готовых вариантов на том же ебее — вагон и маленькая тележка. Но стало интересно, а как вообще такие зонды устроены и можно ли сделать их самостоятельно.
Читать дальше
- +2
- 01 ноября 2014, 10:21
- denis_vishniakov
- 149
1-Wire: алгориттма поиска ROM, реверс
Одолела тут детская болезнь — «написать свой 1-Wire с преферансом и куртизанками», точнее с определением количества устройств на шине. Готовые проекты, которые нашёл, не являются библиотеками по принципу «подключил и пользуйся», только как примеры. (Здесь тоже этого нет — возможно, позже). Сам алгоритм описан в AN187.
Читать дальше
Читать дальше
Dowlib update
DOWLIB обновлён.
Bugfix: устранено бесконечное ожидание в Ex_DowRst при коротком замыкании шины. Теперь возвращает CY (нет отклика устройства на сброс)
Bugfix: вызов Ex_DowSkipRom ошибочно возвращал CY. поправлено.
Новая версия в аттаче.
Bugfix: устранено бесконечное ожидание в Ex_DowRst при коротком замыкании шины. Теперь возвращает CY (нет отклика устройства на сброс)
Bugfix: вызов Ex_DowSkipRom ошибочно возвращал CY. поправлено.
Новая версия в аттаче.
Еще раз о STM32 и DS18B20 (подправлено)
Решил подцепить DS18B20 к STM32 по двухпроводной шине. Задача несложная, благо и 1-wire уже не раз ковырял (первый раз лет 15 назад, еще на PIC, цеплял и ключи-идентификаторы и термометр), да и на STM32 тема сейчас избитая, примеров навалом. Прицепил термометр к известной плате STM32 Mini, и, хоть и не люблю копипастить, но все же взял готовую библиотеку от steel_ne из его статьи «Stm32 + 1-wire + DMA» и ее продолжения — мне понравилось это решение. Подправил чуть-чуть на свободный у меня USART3 и, после устранения ВСЕХ моих ошибок )), все заработало, за что автору большое спасибо.
К чему это я? А вот — главной моей ошибкой было то, что цеплял я термометр по двухпроводной схеме. И температура не измерялась, +85 градусов, хоть удавись… У меня термометры уже работают по двухпроводной схеме на AT91SAM7SE512 и раньше на PIC16F84 работали, поэтому вопрос для меня о схеме подключения особо не стоял, в даташиты я на эту тему давно не смотрел и схему автора вышеупомянутой статьи тоже глянул одним глазом. Посмотрел повнимательнее на схему в статье, а там термометр подключен по трем проводам. Подключил и я питание – работает. Проверил на Атмеле – но там несколько тех же DS18B20 на двух проводах стоят и подцеплены резистором 4,7 К к питанию, но правда там к 5 В. Ага, понятно, надо разбираться, ведь работает же оно на 5 вольтах… Вот тут-то и пригодилось свойство альтернативности выводов в STM32.
Читать дальше
К чему это я? А вот — главной моей ошибкой было то, что цеплял я термометр по двухпроводной схеме. И температура не измерялась, +85 градусов, хоть удавись… У меня термометры уже работают по двухпроводной схеме на AT91SAM7SE512 и раньше на PIC16F84 работали, поэтому вопрос для меня о схеме подключения особо не стоял, в даташиты я на эту тему давно не смотрел и схему автора вышеупомянутой статьи тоже глянул одним глазом. Посмотрел повнимательнее на схему в статье, а там термометр подключен по трем проводам. Подключил и я питание – работает. Проверил на Атмеле – но там несколько тех же DS18B20 на двух проводах стоят и подцеплены резистором 4,7 К к питанию, но правда там к 5 В. Ага, понятно, надо разбираться, ведь работает же оно на 5 вольтах… Вот тут-то и пригодилось свойство альтернативности выводов в STM32.
Читать дальше
Эмулятор DS18b20 на ATTiny2313
Мне несколько раз приходилось делать устройства, которые должны были так или иначе реагировать на изменение температуры (а не просто отображать), и пару раз я нарывался на ошибки уже при работе устройства, потому что не достаточно хорошо протестировал работу с температурой при отладке. Поэтому, когда oss попросил меня изобразить волшебную коробочку с кнопками и дисплеем, которая прикидывалась бы градусником, идея пришлась мне по нраву.
Коробочка снабжена индикатором на три разряда, который показывает установленную температуру, двумя кнопками для установки нужного значения и портом 1-wire. Температуру можно выставлять в диапазоне от -55 до +99 градусов. Внутре у ней ATTiny2313.
Так-как задачка полной эмуляции всех фич градусника передо мной не стояла, коробочка обделена многими крутыми штуками. Проще сказать, что она умеет:
— Команду пропуска адреса (Skip ROM)
— Команду чтения адреса (Read ROM)
— … сравнения адреса (Match ROM)
— Чтение памяти (той, где температура)
Иначе говоря, эмулятор покрывает базовый функционал датчика. А вот работать с порогами температуры, командой поиска (Search ROM) и сохранением настроек, он не умеет.
Серийный номер (он-же адрес 1-wire) выставляется при прошивке, и без программатора сменить его нельзя. Это конечно большой минус, но для устройств, в которых всего один термометр, адрес не важен.
Исходники (AVR Studio 4 + WinAVR)
Схема
А под катом, небольшой спич о том, как это работает
Читать дальше
Коробочка снабжена индикатором на три разряда, который показывает установленную температуру, двумя кнопками для установки нужного значения и портом 1-wire. Температуру можно выставлять в диапазоне от -55 до +99 градусов. Внутре у ней ATTiny2313.
Так-как задачка полной эмуляции всех фич градусника передо мной не стояла, коробочка обделена многими крутыми штуками. Проще сказать, что она умеет:
— Команду пропуска адреса (Skip ROM)
— Команду чтения адреса (Read ROM)
— … сравнения адреса (Match ROM)
— Чтение памяти (той, где температура)
Иначе говоря, эмулятор покрывает базовый функционал датчика. А вот работать с порогами температуры, командой поиска (Search ROM) и сохранением настроек, он не умеет.
Серийный номер (он-же адрес 1-wire) выставляется при прошивке, и без программатора сменить его нельзя. Это конечно большой минус, но для устройств, в которых всего один термометр, адрес не важен.
Исходники (AVR Studio 4 + WinAVR)
Схема
А под катом, небольшой спич о том, как это работает
Читать дальше