This documentation is out of date.

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

Difference between revisions of "CANNY 7, IRRC Driver"

From CANNY Wiki
Jump to: navigation, search
[unchecked revision][unchecked revision]
(IRRC driver registers)
(IRRC driver registers)
Line 32: Line 32:
 
|width="70px" style="padding-left:0.5em;"|0
 
|width="70px" style="padding-left:0.5em;"|0
 
|style="padding-left:0.5em;"|=
 
|style="padding-left:0.5em;"|=
|style="padding-left:0.5em;"|отключить канал от драйвера пульта ИК ДУ, вернуть управление каналом драйверу каналов ввода-вывода и разрешить изменения его состояния из функциональной диаграммы.
+
|style="padding-left:0.5em;"|disconnect the channel from IR RC driver, return control to IO channel driver and allow changing its status from the functional diagram.
 
|}
 
|}
 
|- valign="top"
 
|- valign="top"
Line 45: Line 45:
 
|width="70px" style="padding-left:0.5em;"|0...10
 
|width="70px" style="padding-left:0.5em;"|0...10
 
|style="padding-left:0.5em;"|=
 
|style="padding-left:0.5em;"|=
|style="padding-left:0.5em;"|установить номер канала контроллера, используемый драйвером пульта ИК ДУ для приема данных.
+
|style="padding-left:0.5em;"|to set the channel number used by IR RC driver for receiving data.
 
|}
 
|}
 
|- valign="top"
 
|- valign="top"
Line 51: Line 51:
 
{|border="0" align="left"
 
{|border="0" align="left"
 
|- valign="top"
 
|- valign="top"
|style="padding-left:0.5em;"|Регистр номера канала передачи ИК-порта
+
|style="padding-left:0.5em;"|IRRC TX IO Channel
 
|}
 
|}
 
|valign="top"|
 
|valign="top"|
Line 58: Line 58:
 
|width="70px" style="padding-left:0.5em;"|0...10
 
|width="70px" style="padding-left:0.5em;"|0...10
 
|style="padding-left:0.5em;"|=
 
|style="padding-left:0.5em;"|=
|style="padding-left:0.5em;"|установить номер канала контроллера, используемый драйвером пульта ИК ДУ для передачи данных.
+
|style="padding-left:0.5em;"|to set the channel number used by IR RC driver for transmitting data.
 
|}
 
|}
 
|}
 
|}
  
 
{|
 
{|
|valign="top" style="padding-left:0.5em;"|''Примечание:''
+
|valign="top" style="padding-left:0.5em;"|''Note:''
|valign="top" style="padding-left:0.5em;"|''В конфигурации «Прием и передача» для приема и передачи данных должны быть назначены отдельные каналы контроллера.''
+
|valign="top" style="padding-left:0.5em;"|''In the configuration of "reception and transmission" separate controller channels must be assigned for receiving and transmitting data.''
 
|}
 
|}
  
Конфигурация драйвера задается именованными константами, представляющими комбинацию параметров, определяющих тип сигнала, определяющим электрические потенциалы исходного состояния канала и состояния канала при передаче данных, наличие и потенциал внутренней «подтяжки» канала контроллера.
+
Driver configuration is set by named constants, representing the combination of parameters that define the type of signal that determines the electric potentials of the initial state of the channel and the channel conditions during data transmission, and the availability of internal "pull-up" potential of controller channel.
  
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
Line 80: Line 80:
 
|Receive, transmit, receive and transmit
 
|Receive, transmit, receive and transmit
 
|- valign="top"
 
|- valign="top"
|Тип сигнала
+
|Signal type
|Прямой («1»: плюс, «0»: минус), инверсный («1»: минус, «0»: плюс)
+
|Direct ("1": plus, "0" minus), inverse ("1" minus "0": plus)
 
|- valign="top"
 
|- valign="top"
|Внутренняя подтяжка
+
|Internal pull-up
|Без подтяжки, подтяжка плюс, подтяжка минус
+
|No pull-up, positive pull-up, negative pull-up
 
|}
 
|}
  
Пример конфигурации драйвера пульта ИК ДУ контроллера для работы в качестве приемника/передатчика ИК-сигналов, при этом для приема данных используется канал №0, а для передачи - канал №1.
+
Example of configuration IR RC driver to operate as a transmitter / receiver IR signals, wherein channel #0 is used for receiving data, and channel #1 for date transmission.
  
 
[[File:6_16_2_1.png|center]]
 
[[File:6_16_2_1.png|center]]
  
Регистры диагностики драйвера пульта ИК ДУ.
+
IR RC driver diagnostic registers.
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
 
{|border="1" style="border-collapse:collapse;" align="left" width="100%"
 
|- align="center" valign="top"
 
|- align="center" valign="top"
!width="250px"|Адрес
+
!width="250px"|Address
!Ожидаемые значения
+
!Expected values
 
|- valign="top"
 
|- valign="top"
 
|
 
|

Revision as of 05:19, 31 July 2016

General description

CANNY 7 controller can receive and send infrared remote controls commands (IRRC) in popular formats- NEC and extended NEC. Driver operation is possible in three modes: reception only,transmission only or reception / transmission. For transmission and reception any two channels can be used.

When transmitting infrared remote control commands, channel used for this only generates baseband signal. To generate pulse packet, controller requires a carrier frequency, the source of which can be internal high frequency PWM channel or external PWM generator. Receiving IR command requires an external demodulator, such as TSOP1736 or similar.

IRRC driver in its operation uses the resources of controller channels, but has a higher priority than discrete input-output driver. Thus, upon IRRC driver activation, for the involved channels in its operation, changing values in registers associated controllers' discrete input-output driver will be ignored.

IRRC driver registers

To work with IR signal receivers and transmitters may be used any of CANNY 7 controller IO channels, wherein a particular channel of the controller, at any given moment, can only operate either for reception or transmission only. IR remote control driver provides the possibility to organize simultaneous reception and transmission via two independent channels. Furthermore it is possible to connect several IR signal receivers / transmitters to CANNY 7 controller.

IR RC Driver Configuration Registers.

Address Expected values
IRRC Mode
1...65535 = to set IR RC channel driver configuration that determines the current mode and the parameters of its operation (set special constant of constants reference book);
0 = disconnect the channel from IR RC driver, return control to IO channel driver and allow changing its status from the functional diagram.
IRRC RX IO Channel
0...10 = to set the channel number used by IR RC driver for receiving data.
IRRC TX IO Channel
0...10 = to set the channel number used by IR RC driver for transmitting data.
Note: In the configuration of "reception and transmission" separate controller channels must be assigned for receiving and transmitting data.

Driver configuration is set by named constants, representing the combination of parameters that define the type of signal that determines the electric potentials of the initial state of the channel and the channel conditions during data transmission, and the availability of internal "pull-up" potential of controller channel.

Parameter List of expected values
Standart NEC
The data flow direction Receive, transmit, receive and transmit
Signal type Direct ("1": plus, "0" minus), inverse ("1" minus "0": plus)
Internal pull-up No pull-up, positive pull-up, negative pull-up

Example of configuration IR RC driver to operate as a transmitter / receiver IR signals, wherein channel #0 is used for receiving data, and channel #1 for date transmission.

6 16 2 1.png

IR RC driver diagnostic registers.

Address Expected values
Регистр отсутствия активности драйвера ИК
1 = активность драйвера ИК ДУ на соответствующем канале отсутствует;
0 = зафиксирована активность драйвера ИК ДУ на соответствующем канале.
Регистр переполнения буфера драйвера ИК
1 = буфер соответствующего канала драйвера пульта ИК ДУ переполнен;
0 = переполнения соответствующего канала драйвера пульта ИК ДУ не зафиксировано.
Регистр готовности буфера передачи ИК
1 = буфер передачи данных драйвера пульта ИК ДУ свободен и готов к работе;
0 = буфер передачи данных драйвера пульта ИК ДУ занят.

Регистры приема драйвера пульта ИК ДУ.

Адрес Возвращаемые значения
Регистр наличия принятых данных ИК
1 = сообщение успешно получено и доступно в регистрах буфера приема драйвера пульта ИК ДУ;
0 = в буфере приема драйвера пульта ИК ДУ отсутствуют актуальные данные.
Регистр принятого сообщения ИК b1:b0
Регистр принятого сообщения ИК b3:b2
0...65535 = значения соответствующих байт данных приемного буфера драйвера пульта ИК ДУ, по два байта на регистр.

Регистры передачи драйвера пульта ИК ДУ.

Адрес Ожидаемые значения
Регистр начала передачи ИК
1 = загрузить данные из регистров передачи в буфер передачи драйвера пульта ИК ДУ;
0 = не загружать данные в буфер передачи драйвера пульта ИК ДУ.
Регистр сообщения передачи ИК b1:b0
Регистр сообщения передачи ИК b3:b2
0...65535 = значения передаваемых байт сообщения драйвера пульта ИК ДУ, по два байта на регистр.

Специальная команда стандарта NEC – «повтор команды», кодируется значениями b1:b0 = 0xFFFF и b3:b2 = 0xFFFF как при приеме так и при передаче.

Примечание: При отправке ИК-сообщений, каждая последующая команда должна передаваться только после освобождения буфера передачи, т. е. при наличии в регистре готовности буфера передачи ИК-сообщения значения «1». Команда повтора предыдущей команды должна отправляться сразу после отправки основной команды, не дожидаясь освобождения буфера передачи, при этом отправка должна выполняться непрерывно, как можно чаще, все время, пока требуется передача подтверждения.

Пример функциональной диаграммы приема контроллером команд от внешнего ИК-пульта ДУ.

6 16 2 2.png

Контроллер ожидает получения сообщения, содержащего номер адреса 0х00 и команду с кодом 0х01. Проверка полученных от пульта ИК ДУ команд на соответствие ожидаемым выполняется путем их сравнения с константами, содержащими в младшем байте требуемое значение, а в старшем — его инверсную версию.

Пример функциональной диаграммы эмуляции контроллером CANNY7 ИК-пульта ДУ, т.е. передачи ИК-команд управляемому устройству.

6 16 2 3.png

При появлении на входе канала №10 значения «1» (нажатия управляющей кнопки), контроллер отправляет ИК-сообщение внешнему устройству. В сообщении содержится адрес 0хAB и команда 0хCD. При длительном сохранении значения «1» на входе канала №10 (удержании кнопки) контроллер отправляет сообщение стандарта NEC «повтор команды». Специальная команда стандарта NEC – «повтор команды», кодируется значениями b1:b0 = 0xFFFF и b3:b2 = 0xFFFF как при приеме так и при передаче.

Примечание: В примере отправки ИК-сообщения также реализовано использование CANNY7 для формирования несущего высокочастотного сигнала установленного стандартом NEC, с помощью канала №1 контроллера работающего в режиме ВЧ ШИМ с периодом 26мкс и заполнением 9мкс.

Смотри также

CANNY 7