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:38, 13 August 2016 by MEGA (Talk | contribs) (Registers 1-Wire driver)


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.

Sent requests management to get information from the slaves and control receiving of their responses (sensors poll) is performed by appropriate registers of 1-Wire driver.

Note: To avoid losing data when working with several Dallas buses, perform switching between them only after receiving responses from the slaves requested by the controller and processing or saving the data.

Example of channel #5 configuration to use with a temperature sensor DS18X20.

6 12 2 1.png

1-Wire driver configuration registers.

Адрес Expected values
Dallas configuration register
1...65535 = driver activation and setting the device type (defined by a special constant of the constants directory);
0 = disconnect the channel from 1-Wire driver, return channel control to IO channels driver and allow status changing from the functional diagram.
Регистр номера канала 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