Программа Сервисный Центр
0

Простая схема для подключения 1-Wire датчика температуры к микроконтроллеру


Устройства, индикацирующие температуру и устройства, использующие данные о температуре вызывают широкий интерес. Есть множество приложений для таких устройств с множеством возможных решений, каждое из которых имеет свои преимущества и недостатки.

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

Простая схема, которую мы рассмотрим, позволяет подключать датчик температуры с интерфейсом 1-Wire DS18S20 к микроконтроллеру компании CypressCY8C26443. Однако, по данной технологии, при минимальной модификации схемы и программного кода, можно подключить любое устройство 1-Wire. Микроконтроллер может быть любым, но автор выбрал программируемую систему-на-кристалле (PSoC), поскольку она обеспечивает гибкость в плане выбора и реализации аппаратных блоков на кристалле. Кроме того, система-на-кристалле предоставляет интерфейс программирования приложений (API), поэтому новички смогут легко освоить работу с ней.

Ассортимент 1-Wire устройств очень широк: датчики температуры, память, устройства идентификации, устройства смешанных сигналов. Обмен данными и питание устройств осуществляется по одному проводу. Они просты в подключении и используются там, где требуется минимальная сложность соединений.

В качестве температурного сенсора был выбран цифровой датчик температуры DS18S20 (DS18B20). Это оптимальный выбор, т.к. он дешев и обеспечивает точность измерений 0.5 °C, но проект в целом предоставляет точность 1 °C из-за погрешности измерения и аппаратных ограничений. Сенсор поддерживает режим паразитного питания, имеет программируемый порог температуры и работает в диапазоне от –55 °C до +125 °C. При некоторой доработке программного кода и аппаратной части интерфейса подключения датчик сможет работать на удалении нескольких метров от микроконтроллера.

При использовании датчика DS18B20 в корпусе TO-92, вывод 1 подключается к «земле», вывод 2 – вывод с открытым стоком интерфейса 1-Wire для ввода/вывода данных и питания, вывод 3 – питание или, в режиме паразитного питания, он подключается к «земле». Для датчика в корпусе SO-8 для поверхностного монтажа, соответствующие выводы это 5, 4 и 3, остальные выводы остаются не подключенными. На Рисунке 1 показана схема подключения датчика к микроконтроллеру CY8C26443. В данном случае не используется режим паразитного питания.

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей
Рисунок 1.Хотя на схеме изображено подключение 1-Wire датчика DS18S20 к микроконтроллеру CY8C26443, разработчики могут легко адаптировать ее для подключения любых 1-Wire устройств к любому микроконтроллеру.

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

Используя программируемую систему-на-кристалле, пользователь может создать экземпляр 1-Wire модуля для обмена данными или же написать свой собственный протокол. Создание экземпляра модуля снижает программную нагрузку, однако автор решил написать свой протокол. Поскольку это привело к увеличению кода, автор старался избежать использования двухпортового вывода, который необходим для модуля PSoC при обмене данными между микроконтроллером с датчиком.

Схема очень простая. Диод CR2 защищает сенсор от скачков напряжения. Резистор R12 в обычном режиме работы не используется. В режиме паразитного питания резистор R12 используется, а резистор R11 и конденсатор С8 исключаются из схемы. Микросхема U2 MAX1232 является внешним сторожевым таймером для микроконтроллера. По линии STROBE микроконтроллер регулярной сбрасывает сторожевой таймер.

Блоки кода для схемы интерфейса доступны для скачивания в секции загрузок. Интегрированная среда разработки доступна для сайте компании Cypress.

Если необходимо использовать датчик температуры на удалении от микроконтроллера, то необходимо использовать схему интерфейса, изображенную на Рисунке 2. Дополнительные элементы схемы гарантируют обеспечение достаточного втекающего и вытекающего тока, поэтому характеристики тайм-слотов протокола 1-Wire сохраняются неизменными.

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей
Рисунок 2.За счет использования дополнительных компонентов, которые обеспечивают достаточный втекающий и вытекающий ток для поддержания тайм-слотов в требуемых пределах, датчик температуры можно использовать на расстоянии до нескольких метров от микроконтроллера.

Датчик температуры преобразовывает и хранит цифровые данные в двух регистрах (Рисунок 3). По большому счету, разрешение выходных данных составляет 9 бит. Младший байт хранит данные о температуре, старший байт хранит знак измерений. В случае, если знак отрицательный (0xFF), данные в младшем бате дополняются до двух. Бит 0 в младшем байте представляет десятичное значение температуры: 0.5 °С для логической 1 и 0 °С для логического 0. В программном коде необходимо учитывать этот момент, чтобы избежать ошибочных измерений.

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей
Рисунок 3.Датчик хранит данные о температуре в двух регистрах. Младший байт хранит данные о температуре, старший байт хранит знак измерений.

Также датчик имеет два байта энергонезависимой памяти (EEPROM) - регистры TH и TL, которые представляют собой температурные пороги, с которыми сравниваются старшие 8 бит каждого измеренного значения температуры. С помощью специальной команды можно организовать сигнализацию выхода температуры за установленные пределы (Рисунок 4). Разрешение регистров TH и TL 8 бит, в отличие от 9-битного регистра преобразования температуры.

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей
Рисунок 4.Если потребуется в приложении, можно использовать регистры EEPROM датчика температуры для хранения пороговых уровней температуры, что позволяет организовать сигнализацию о выходе температуры за заданные параметры.

Общая карта памяти датчика DS18S20 - блокнотная память (ОЗУ) и энергонезависимая память (регистры TH и TL) - изображена на Рисунке 5. Если функция сигнализации не требуется в приложении, то регистры TH и TL могут служить областью энергонезависимой памяти общего назначения.

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей
Рисунок 5.Помимо энергонезависимой памяти (EEPROM) датчик температуры DS18S20 имеет блокнотную память (ОЗУ).

Значение температуры с разрешением более 9 бит может быть вычислено с использованием данных из регистров ОЗУ датчика: регистры данных о температуре (9 битное разрешение), регистр COUNT REMAIN (значение, оставшееся в счетчике в конце измерения), регистр COUNT PER C (количество импульсов на один градус для данной температуры).

Данные подставляются в следующую формулу: 

Denso представляет 10.1-дюймовый автомобильный проекционный дисплей

Загрузки

Схема на Рисунке 1 в PDF - скачать
Схема на Рисунке 2 в PDF - скачать
Исходный код программы микроконтроллера - скачать

electronicdesign.com

 
 
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
 
Обратная связь

Наши партнеры

 

Опросы

Есть ли справедливость в жизни?
Конечно есть, уверен!
Вроде как должна быть, но...
Затрудняюсь ответить...
Какая справедливость? О чем Вы?
Эх.., нет правды на свете!

 

Облако тегов

Требуется для просмотраFlash Player 9 или выше.

Показать все теги
 

Календарь публикаций

«    Декабрь 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
 

Архив новостей

Декабрь 2016 (1)
Ноябрь 2016 (42)
Октябрь 2016 (34)
Сентябрь 2016 (38)
Август 2016 (34)
Июль 2016 (36)
 
Наверх Сервисные мануалы Даташиты Ремонт LCD, ЖК телевизоров LG Samsung Скрипт программы "Сервисный центр"