1-Wire. Работа с DS18B20. Часть 2
23/01/2011 - 21:11
Pavel Bobkov
Итак, у вас есть общее представление о том, как происходит обмен данными по 1-Wire шине и можно перейти к следующей части - как обратиться к DS18B20, как запустить процесс температурного преобразования датчика, как считать с него температуру, как установить температурное разрешение и т.д.
Последовательность операций для доступа к DS18B20 следующая:
1. Инициализация
2. Подача ROM команды
3. Подача функциональной команды DS18B20
1-Wire. Работа с DS18B20. Часть 1
18/01/2011 - 18:42
Pavel Bobkov
Каждый термометр DS18B20 имеет уникальный 64 битный серийный номер, который используется для его адресации на 1-Wire шине. Это позволяет объединять на одной шине несколько независимо работающих термометров и осуществлять между ними и микроконтроллером обмен данными по 1-Wire протоколу.
Также особенностью данного термометра является то, что его можно запитывать не только от источника питания, но и от сигнального провода. Это так называемый режим паразитного питания. В этом режиме для подключения DS18B20 требуется всего два провода — сигнальный и возвратный (земляной, GND).
Символические константы
10/01/2011 - 20:54
Pavel Bobkov
Дэн Сакс
Использование символов для представления постоянных числовых величин — это одна из основных рекомендаций, которую узнают большинство программистов в первую очередь. Например, вместо того чтобы писать:
char buffer[256];
...
fgets(buffer, 256, stdin);
лучше описать символ, скажем buffer_size, представляющий размерность буфера, и использовать его вместо литеральной константы.
char buffer[buffer_size];
...
fgets(buffer, buffer_size, stdin);
Си и Си++ предлагают несколько способов описания таких символов. Итак, давайте их рассмотрим.
Си библиотека для работы с 1-Wire устройствами
31/12/2010 - 16:03
Pavel Bobkov
Tagged under
Для работы с устройствами, поддерживающими 1-Wire протокол уже давным-давно написаны библиотеки. Поэтому нет смысла изобретать велосипед (лично я это уже делал, когда программировал на ассемблере) и писать что-то свое. На сайте фирмы ATMEL есть замечательный application note AVR318: Dallas 1-Wire, в котором рассмотрены два варианта реализации 1-Wire протокола на микроконтроллерах AVR – программная и аппаратная. Программная реализация позволяет использовать однопроводный протокол на любых микроконтроллерах. Аппаратная – только на тех, на которых есть модуль UART. Аппаратной поддержки 1-Wire протокола «в чистом виде» микроконтроллеры AVR не имеют, однако, используя модуль UART неким хитрым образом, эту поддержку можно организовать. К application note идет проект. Я взял из этого проекта исходные файлы библиотеки, добавил, изменил несколько функций и написал файл compilers.h, чтобы можно было использовать эту либу с любым из трех компиляторов – IAR AVR, GNU GCC (WINAVR), CodeVision.
Часы на микроконтроллере AVR
13/12/2010 - 20:46
Pavel Bobkov
Tagged under
В качестве примера использования событийной системы на таблице я выбрал такой популярный девайс как часы на микроконтроллере. Чтобы пример был понятен как можно более широкому кругу людей функционал часов ограничивается отображением и установкой времени. Программа носит учебный характер и не претендует на оптимальность.