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.
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.
Опрос термодатчика, подключенного к каналу №5 контроллера, осуществляется 1 раз в секунду. При получении данных от DS18X20, в регистре наличия принятых данных драйвера Dallas появляется значение «1» и данные из регистров чтения показаний температуры, с помощью D-триггеров, сохраняются в соответствующие именованные сети для дальнейшей обработки.
See also
CANNY 7
CANNY 7, I²C Driver