This documentation is out of date.

The new version of the documentation is here: https://cannylogic.com/docs

CANNY 7, Dallas 1-Wire Driver

From CANNY Wiki
Revision as of 07:14, 13 August 2016 by MEGA (Talk | contribs) (Смотри также)


Jump to: navigation, search

General Description

Controller CANNY 7 can be used as a master node in a single-wire data network Dallas® 1-Wire®, while it has the ability to only send requests for data from slave devices.

Any of CANNY 7 input-output channels can be used to connect the controller to 1-Wire bus. At the same time, that channel must be externally pulled-up to 5V with resistor 3-7k Ohm. Consistently reassigning driver channels, it's possible to arrange up to 11 independent connections 1-Wire. Wherein device addressing and device handling by address is not available, therefore, in 1-Wire mode it is possible to connect only one SLAVE node at a time to controllers' channel.

Driver Dallas 1-Wire in its operation uses controller channels' resources, but has a higher priority than discrete input-output driver.Thus, upon activation Dallas 1-Wire driver, for channels involved in to its operation, change values in associated registers of discrete input-output driver will be ignored.

The slave must have a permanent, rather than parasitic power.

Registers 1-Wire driver

Below is a description of the 1-Wire driver operation control registers.

Registers 1-Wire driver configuration.

To activate the 1-Wire driver, need to select the controller channel number connected to 1-Wire bus, in the appropriate driver register.

Note: At any given time, the driver can work with only one of the connected 1-Wire bus, when it is allowed to dynamically switch between buses in the implementation of the functional diagram.

Управление отправкой запросов на получение данных от ведомых устройств и контроль получения их ответов (опросов датчиков) выполняется с помощью соответствующих регистров драйвера 1-Wire.

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

Пример конфигурации канала №5 для работы с датчиком температуры DS18X20.

6 12 2 1.png

Регистры конфигурации драйвера 1-Wire.

Адрес Ожидаемые значения
Регистр конфигурации Dallas
1...65535 = активизация драйвера и установка типа подключаемого устройства (задается специальной константой из справочника констант);
0 = отключить канал от драйвера UART, вернуть управление каналом драйверу каналов ввода-вывода и разрешить изменения его состояния из функциональной диаграммы.
Регистр номера канала Dallas
0...10 = установить номер канала контроллера используемого для работы с шиной 1-Wire.


Конфигурация канала для работы в данном режиме задается следующим именованными константами:

Параметр Перечень допустимых значений
Тип устройства 1-Wire Датчик температуры DS18X20, Считыватель CP-Z в режиме эмуляции DS1990A, Считыватель DS1990A


Регистры передачи драйвера 1-Wire.

С помощью регистров передачи драйвера 1-Wire пользователь может задать адрес опрашиваемого ведомого устройства и отправить запрос на получение данных.

Адрес Ожидаемые значения
Регистр начала передачи Dallas
1 = отправить ведомому устройству запрос на получение данных;
0 = не отправлять ведомому устройству запрос на получение данных.
Регистр установки 64-битного ROM-кода адресата передачи Dallas SN0:FC
0...65535 = значение регистра: младшая часть содержит идентификатор семейства устройства (FC), старшая часть содержит первый байт уникального адреса устройства (SN0).
Регистр установки 64-битного ROM-кода адресата передачи Dallas SN2:SN1
0...65535 = значение регистра: младшая часть содержит второй байт уникального адреса устройства (SN1), старшая часть содержит третий байт уникального адреса устройства (SN2).
Регистр установки 64-битного ROM-кода адресата передачи Dallas SN4:SN3
0...65535 = значение регистра: младшая часть содержит четвертый байт уникального адреса устройства (SN3), старшая часть содержит пятый байт уникального адреса устройства (SN4).
Регистр установки 64-битного ROM-кода адресата передачи Dallas CRC:SN5
0...65535 = значение регистра: младшая часть содержит шестой байт уникального адреса устройства (SN5), старшая часть содержит контрольную сумму ROM-кода адресата (CRC).
Примечание: Регистры установки 64-битного ROM-кода адресата передачи Dallas используются только для выбора устройства на шине 1-Wire по его уникальному номеру (ROM-коду), в случае подключения к одной шине нескольких устройств. При работе с единственным устройством на шине, в случае если его ROM-код неизвестен, установите значение «0» во все регистры ROM-кода адресата передачи Dallas.


Регистры приема драйвера 1-Wire.

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

Общие регистры приема.

Адрес Возвращаемые значения
Регистр наличия принятых данных Dallas
1 = данные от ведомого устройства успешно получены и доступно в регистрах чтения драйвера Dallas;
0 = в буфере приема драйвера отсутствуют актуальные данные.


Прием в режиме CZP / DS1990A.

Адрес Возвращаемые значения
Регистр чтения 64-битного ROM-кода устройства Dallas SN0:FC
0...65535 = значение регистра: младшая часть содержит идентификатор семейства ключа (FC), старшая часть содержит первый байт уникального адреса ключа (SN0).
Регистр чтения 64-битного ROM-кода устройства Dallas SN2:SN1
0...65535 = значение регистра: младшая часть содержит второй байт уникального адреса ключа (SN1), старшая часть содержит третий байт уникального адреса ключа (SN2).
Регистр чтения 64-битного ROM-кода устройства Dallas SN4:SN3
0...65535 = значение регистра: младшая часть содержит четвертый байт уникального адреса ключа (SN3), старшая часть содержит пятый байт уникального адреса ключа (SN4).
Регистр чтения 64-битного ROM-кода устройства Dallas CRC:SN5
0...65535 = значение регистра: младшая часть содержит шестой байт уникального адреса ключа (SN5), старшая часть содержит контрольную сумму ROM-кода ключа (CRC).


Прием в режиме DS18X20.

Адрес Возвращаемые значения
Регистр чтения показаний температуры: целые градусы Цельсия
0...125 = модуль целой части значения измеренной датчиком температуры.
Регистр чтения показаний температуры: десятитысячные доли градуса Цельсия
0...9999 = модуль десятичной части значения измеренной датчиком температуры.
Регистр чтения показаний температуры: знак (0 = выше нуля; 1 = ниже нуля)
0 = измеренная датчиком температура не ниже нуля;
1 = измеренная датчиком температура ниже нуля.
Примечание: При приеме в режиме DS18X20 период опроса датчика температуры, т. е. отправки ему запросов с помощью регистра начала передачи Dallas, должен быть не менее 750мс.

Пример функциональной диаграммы работы с термодатчиком DS18X20.

6 12 2 2.png

Опрос термодатчика, подключенного к каналу №5 контроллера, осуществляется 1 раз в секунду. При получении данных от DS18X20, в регистре наличия принятых данных драйвера Dallas появляется значение «1» и данные из регистров чтения показаний температуры, с помощью D-триггеров, сохраняются в соответствующие именованные сети для дальнейшей обработки.

See also

CANNY 7

CANNY 7, I²C Driver