RCF DMA 82 User manual

OWNER’S MANUAL
MANUALE UTENTE
DMA AMPLIFIERS SERIES
Third parties control protocol
Protocollo di controllo terze parti


3
CONTENTS
ENGLISH ...................................................................................................................................................... 4
SYSTEM ARCHITECTURE ........................................................................................................................... 4
TECHNICAL SPECIFICATIONS .................................................................................................................... 6
COMMUNICATION FRAME DESCRIPTION ................................................................................................. 7
REGISTRATION SEQUENCE ..................................................................................................................... 10
PROTOCOL COMMANDS ........................................................................................................................ 14
DMA 82 / DMA 162 COMMANDS ........................................................................................................... 17
DMA 162P COMMANDS ......................................................................................................................... 22
ITALIANO ................................................................................................................................................... 26
ARCHITETTURA DEL SISTEMA ................................................................................................................. 26
SPECIFICHE TECNICHE ............................................................................................................................ 28
DESCRIZIONE DEL FRAME DI COMUNICAZIONE ..................................................................................... 28
SEQUENZA DI REGISTRAZIONE ............................................................................................................... 32
COMANDI DI PROTOCOLLO .................................................................................................................... 36
COMANDI DMA 82 / DMA 162 ............................................................................................................... 3
COMANDI DMA 162P ............................................................................................................................. 44

4
ENGLISH
SYSTEM ARCHITECTURE
In order to control the DMA series amplifiers through the communication protocol, the following devices are
required:
1. a PC <> RS485 converter, for example usb <> RS485;
2. an RS485 <> RDNET converter (on RJ45 connector). This device shall map on the RS485 connector (for
example DB- ) the pinout necessary to communicate with the DMA device via RDNet protocol. The pinout
is described in the table below:
3. a RDNET BOARD DMA accessory (pn 123 048) for each device to be controlled.
It is now possible to proceed with the following architecture.
Up to 32 devices can be connected, regardless of the model.

5
Note
Through this architecture it is possible to control only the devices connected via the RDNET BOARD DMA
accessory, and therefore it is not possible to control the devices connected via BUS, as shown in the following
figure.

6
TECHNICAL SPECIFICATIONS
The main technical characteristics of the communication network are listed in the table below.
Status refresh rate 5 Hz ÷ 10 Hz
Data rate 115.2 kbit/s
Cyclic redundancy check CRC-16
Serial transmission 8 bit
No parity
1 stop
Bus maximum length 600 m (optimum)
1000 m (maximum)
Physical layer of communication between central and remote units EIA-485
Dynamic assignment of addresses to remote units SI
Addressing mode Unicast/Broadcast
SYSTEM REQUIREMENTS
Firmware version DMA 82
DMA 162
2.
DMA 162P 1.8

7
COMMUNICATION FRAME DESCRIPTION
The communication frame is made of a sequence of bytes ordered as follows:
The message frame begins with the STX symbol and ends with the ETX symbol. In this way, if the destination
loses the boundaries of a frame, regains it when the next STX and ETX pair arrive.
However, there is a problem: in the transmission of binary data, the byte corresponding to the STX and ETX
encoding can appear inside the frame, introducing confusion. To avoid this, the byte stuffing technique is
used.
The above mentioned symbols are made up of copies of bytes all starting with the first byte 0X02 which acts
as escape symbol.
STX and ETX symbols and DATA = 0x02 are encoded with the following bytes couple:
STX (0x02, 0x02) Start transmission
ETX (0x02, 0x03) Stop transmission
DATA 0x02 (0x02, 0x00) Generic 0x02 character
All other values are specified by their value in a single byte:
DATA = 0x00 ÷ 0x01 ÷ 0x00 ÷ 0x01
DATA = 0x03 ÷ 0xFF ÷ 0x03 ÷ 0xFF
After the STX field follows the ADDR field which identifies the remote slave unit. The range of slave addresses
varies from 1 to 255. The master addresses a slave by entering the slave address in the ADDR field of the
message. When the slave node returns its response, it enters its address in the ADDR field of the message to
inform the master which slave it is responding to.

8
The range of addresses is divided as follows:
•The ADDR = 0x00 address corresponds to the default address of each slave.
•The address ADDR = 0XFF is reserved for broadcast messages that all slaves recognize.
After the ADDR field the LENGTH field comes which indicates the length in bytes of the DATA field.
The CMD field is used to indicate to the slave the type of action to be taken. This field uses 2 bytes and the
range of codes varies from 0 to 65535.
The CMD field can be followed by the DATA field which contains the request and/or response data.
The CRC field or the Cyclic Redund ncy Code contains the result of the redundancy check calculated on the
transmitted message
The communication frame is therefore composed of the following bytes sequence:
STX[0] 0x02 START FRAME
STX[1] 0x02 START FRAME
ADDR 0x00 ÷ 0xFF Slave address
LENGTH 0x00 ÷ 0xFF Length in bytes of the DATA queue
CMD H 0x00 ÷ 0xFF Command to be executed MSByte
CMD L 0x00 ÷ 0xFF Command to be executed LSByte
DATA 0x00 ÷ 0xFF DATA queue
" " "
" " "
DATA 0x00 ÷ 0xFF DATA queue
CRC H 0x00 ÷ 0xFF CRC16 MSByte
CRC L 0x00 ÷ 0xFF CRC16 LSByte
ETX[0] 0x02 END FRAME
ETX[0] 0x03 END FRAME
The length of the frames is variable and is fixed at a maximum of 256 bytes. The payload for each communication
frame is 8 bytes.
When the slave responds to the master, it uses the CMD to indicate both a correct response and a response to
an error that has occurred (exception response). For a simple acknowledge response, the slave simply echoes
the original CMD.

In the event of no response or incorrect response (mismatched control codes), the master makes some attempts
to interrogate the same slave. The master can easily discriminate the type of response from the length, in fact:
no data implies a positive response, a length equal to 1 identifies an error, otherwise the data relating to the
query are reported.
CRC-16 CALCULATION
The CRC (Cyclic Redundancy Check) is made up of two bytes and is calculated by the transmitting device (both
MASTER and SLAVE) which postpones it to the message. The receiving device recalculates the CRC when
receiving the message and compares this value with the one received. If the two values are different, an error
is reported.
The calculation of the CRC is started by preloading a 16-bit register with all bits at 1. Then the calculation of
the CRC proceeds by inserting the bytes of the message to the current contents of the register. Only the 8 least
significant bits in each character are used for CRC generation. The start (STX) and stop (ETX) characters do not
apply for the CRC calculation.
During the CRC generation, an exclusive OR (XOR) logic operation is performed between each 8-bit character
and the contents of the register.
Then the result is translated (shift operation) in the direction of the least significant bit (LSB) with an insertion
of zero (zero filling) in the position of the most significant bit (MSB). The bit extracted in this way is then
examined. If it is 1 then an XOR operation is performed between the contents of the register and a
predetermined value which depends on the generator polynomial used. If it is 0, no XOR operation is performed.
The process is repeated until 8 translations of the register contents are made. Therefore a new character can be
inserted in the register with an XOR operation between the character itself and the present content of the
register.
The final content of the register, after all the characters of the message have been entered, is the CRC value.
The procedure for generating the CRC-16, used in the protocol, is summarized as follows:
1. Initialize a 16-bit register with the value 0xFFFF. This register is called the CRC register.
2. Execute the XOR operation in the CRC register between the first 8-bits of the message and the least
significant byte of the register itself.
3. Left shift the CRC register by one bit, filling the most significant bit with zero.
4. If the extracted bit is zero, repeat point 3. If the extracted bit is one, execute the XOR operation between
the contents of the register and the value 0xA001 which corresponds to the use of a generator polynomial
x
16
+ x
15
+ x
2
+ 1.
5. Repeat steps 3. and 4. until 8 translations have been performed to complete the CRC of the current byte
of the message.
6. Repeat steps 2. to 5. for all subsequent bytes of the message.
7. The final content of the register is the CRC of the message.

10
REGISTRATION SEQUENCE
To be able to logically distinguish the slaves from each other, it is necessary to assign a unique address to each
node connected on the line. This assignment is made dynamically during the bus start-up phase.
Sequentially, starting from the remote unit physically closest to the master, an address is assigned for each slave.
In this way the master gets the arrangement of the remote units, knowing their relative position.
When the system is turned on, the Slave units have their own bus isolation relay in the open position. In this
configuration the slave units do not propagate the signal from the input communication connector to the output
communication connector and only the first slave unit is connected to the line and correctly terminated.

11
Registration takes place according to the following block diagram:

12
Procedure description:
1. The Master unit sets ID_SLAVE = 1 as the first address to be assigned to the first Slave unit on the line.
The Master unit sends the SET_ID command to assign address. This command has as the address of the
recipient the value ADDRESS = 0, regardless of the Slave unit to which it is transmitted and as the only
DATA [0] = ID_SLAVE = 1.
2. If the Slave unit receives this command correctly then it replaces the default address ID_SLAVE = 0 with
the new one ID_SLAVE = 1 and responds with an ACK command to the Master unit. The procedure
continues at step 3.
If the Slave unit does not respond with an ACK command, the Master unit retries sending the command
after a timeout period. If the expected number of attempts is exceeded, then there are no Slave units
connected on the line (SET_ID = FALSE, SET_RELE = FALSE, RESET_TIMER_RELE = FALSE).
3. The Master unit sends the SET_RELE relay closing command to the current Slave unit with address ID_SLAVE
= 1 to physically connect the next Slave unit on the line. In this communication, the address of the recipient
is no longer the default one but is the value ADDRESS = ID_SLAVE = 1.
4. If the Slave unit receives this command correctly then it responds with an ACK command to the Master unit
and, ONLY after the complete sending of the last byte of the ACK command, closes the relay. At this point
the Slave unit starts a timer to control the relay closing timeout. If the Master unit does not stop counting
within the time limit, the Slave unit opens the relay again. This timer is essential if there are no further slave
units that terminate the line correctly, compromising any communication between the Master unit and the
registered Slave units. The procedure continues at step 5.
If the Slave unit does not respond with an ACK command, the Master unit retries sending the command
after a timeout period. If the expected number of attempts is exceeded, an exception is raised in the
registration procedure (SET_ID = TRUE, SET_RELE = FALSE, RESET_TIMER_RELE = FALSE).
5. The Master unit increases the ID_SLAVE address used in the previous step by a unit: ID_SLAVE (n + 1) =
ID_SLAVE (n) + 1 = n + 1.
The Master unit sends the SET_ID command for address assignment. This command has as the address of
the recipient the value ADDRESS = 0, regardless of the Slave unit to which it is transmitted and as the only
DATA [0] = ID_SLAVE (n + 1) = n + 1.
6. If the Slave unit receives this command correctly then it replaces the default address ID_SLAVE = 0 with
the new one ID_SLAVE = n + 1 and responds with an ACK command to the Master unit. The procedure
continues at step 7.
If the Slave unit does not respond with an ACK command, the Master unit retries sending the command
after a timeout period. If the expected number of attempts is exceeded, it means that there are no further
Slave units on the line. In this situation, the slave unit with address SLAVE_ID = n, upon reaching the relay
closing control timeout, will open the n-th relay again, restoring the line termination.
7. The Master unit sends the RESET_TIMER_RELE command to stop the relay timeout control timer to the
Slave unit with address SLAVE_ID = n.
8. If the Slave unit with address SLAVE_ID = n correctly receives this command to stop the relay timeout
control timer, it responds with an ACK command to the Master unit. The procedure continues at step .

13
If the Slave unit with address SLAVE_ID = n does not respond with an ACK command, the Master unit
retries sending the command after a timeout period. If the expected number of attempts is exceeded, an
exception is raised in the registration procedure (SET_ID = TRUE, SET_RELE = TRUE, RESET_TIMER_RELE
= FALSE).
. The Master unit sends the SET_RELE relay closing command to the current Slave unit with address ID_SLAVE
= n + 1 to physically connect the next Slave unit on the line. In this communication, the address of the
recipient is no longer the default one but is the value ADDRESS = ID_SLAVE = n + 1.
10. If the Slave unit correctly receives this command to close the relay, it responds with an ACK command to
the Master unit and, ONLY after sending the complete last byte of the ACK command, closes the relay. At
this point the Slave unit starts a timer to control the relay closing timeout. The procedure continues at point
5. If the Slave unit does not respond with an ACK command, the Master unit retries sending the command
after a timeout period. If the expected number of attempts is exceeded, an exception is raised in the
registration procedure (SET_ID = TRUE, SET_RELE = FALSE, RESET_TIMER_RELE = FALSE).
Points 5 to 10 are iterated.
The registration procedure is finished.
KEEPING COMMUNICATION
To keep the communication, it is necessary to poll each device on the bus requesting its status with a refresh
rate higher than 0.1Hz.
DE-REGISTRATION SEQUENCE
To be able to change the number of slave units of a subnet or add or remove SLAVE units, a bus de-registration
operation is required.
This operation simply consists in waiting for the communication timeout (10 seconds), after which the relay is
closed in the termination position and the reinitialization of the device with ID_SLAVE = 0.

14
PROTOCOL COMMANDS
SLAVE STATUS REQUEST
Description: sends the status request to the slave.
The slave responds with a sequence of N bytes describing the status of the device.
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
Slave status request ID 0 1 -
ACK sending ID 10 1 <DATA[0..10]>
No ACK sending ID 1 1 ERROR CODE
PAYLOAD STATUS
BYTE 1 - error flags:
- bit 1: reserved
- bit 2: temperature error flag
- bit 3: dsp error flag
- bit 4: generic error flag
- bit 5: not used
- bit 6: not used
- bit 7: not used
- bit 8: not used
BYTE 2 - mute and peak flags:
- bit 1: mute flag channel 1
- bit 2: peak flag channel 1
- bit 3: mute flag channel 2
- bit 4: peak flag channel 2
- bit 5: reserved
- bit 6: reserved
- bit 7: reserved
- bit 8: reserved
BYTE 3 - channel 1 signal value

15
BYTE 4 - channel 2 signal value
BYTE 5 - reserved
BYTE 6 - reserved
BYTE 7 - live flags:
- bit 1: paging on air (1 on air, 0 no active)
- bit 2: OUT A busy
- bit 3: OUT B busy
- bit 4: reserved
- bit 5: reserved
- bit 6: reserved
- bit 7: not used
- bit 8: not used
BYTE 8 - reserved
BYTE - reserved
BYTE 10 - reserved
ID SLAVE SENDING
Description: assigns a new address to the slave (The starting address is always 0).
The slave responds with the sequence ACK or No ACK.
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
ID Slave sending 0 1 2 ID
ACK sending ID 0 2 -
No ACK sending ID 1 2 ERROR CODE
SLAVE RELÈ OPENING
Description: forces the relay to open (bypass position INPUT to LINK, this slave will no longer be terminated).
The slave responds with the sequence ACK or No ACK before switching.
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
Slave relè opening ID 0 3 -

16
ACK sending ID 0 3 -
No ACK sending ID 1 3 ERROR CODE
SLAVE RELÈ CLOSING
Description: forces the closing of the relay, the LINK line is deactivated and the slave terminates the
communication channel.
The slave responds with the sequence ACK or No ACK before switching.
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
Slave relè closing ID 0 4 -
ACK sending ID 0 4 -
No ACK sending ID 1 4 ERROR CODE
STOP RELÈ TIMER
Description: stops the countdown set in 5 seconds after which the termination on the slave would be set (relay
closure).
The slave responds with the sequence ACK or No ACK.
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
Stop relè timer ID 0 5 -
ACK sending ID 0 5 -
No ACK sending ID 1 5 ERROR CODE

17
DMA 82 / DMA 162 COMMANDS
<FUNCTION> <ADDRESS> <LENGTH> <CMD> <DATA[0..N-1]>
COMMAND ID 0 CODE -
ACK sending ID N CODE <DATA[0..10]>
No ACK sending ID 1 CODE ERROR CODE
PAYLOAD STATUS
INIT COMMANDS
CODE 0x11 INIT GENERAL
BYTE 1 - fw revision
BYTE 2 - general flags:
- bit 1: stereo/mono flag OUT A e B
- bit 2: reserved
- bit 3: bridge mode flag OUT A e B
- bit 4: reserved
- bit 5: reserved
- bit 6: reserved
- bit 7: reserved
- bit 8: reserved
BYTE 3 to 8 - reserved
CODE 0x12 INIT OUTPUT
BYTE 1 to 4 - volume OUT A
BYTE 5 - OUT A channel flags
- bit 1: reserved
- bit 2: reserved
- bit 3: mute flag
- bit 4: not used
- bit 5: not used
- bit 6: not used
- bit 7: not used

18
- bit 8: not used
BYTE 6 to 8 - reserved
BYTE - input code OUT A
BYTE 10 to 31 - reserved
BYTE 32 to 35 - volume OUT B
BYTE 36 - OUT B flags:
- bit 1: reserved
- bit 2: reserved
- bit 3: mute flag
- bit 4: not used
- bit 5: not used
- bit 6: not used
- bit 7: not used
- bit 8: not used
BYTE 37 to 3 - reserved
BYTE 40 - input code OUT B
BYTE 41 to 124 - reserved
CODE 0x13 INIT INPUT
BYTE 1 to 4 - stereo volume IN1
BYTE 5 to 8 - mono volume IN1 L
BYTE to 12 - mono volume IN1 R
BYTE 13 to 48 - reserved
BYTE 4 to 52 - stereo volume IN2
BYTE 53 to 56 - mono volume IN2 L
BYTE 57 to 60 - mono volume IN2 R
BYTE 61 to 6 - reserved
BYTE 7 to 100 - stereo volume EXT
BYTE 101 to 104 - mono volume EXT L
BYTE 105 to 108 - mono volume EXT R
BYTE 10 to 144 - reserved
BYTE 145 to 148 - mono volume BAL IN

1
BYTE 14 to 160 - reserved
BYTE 161 to 164 - mono volume PAGING
BYTE 165 to 176 - reserved
OUTPUTS COMMANDS
CODE 0x31 SET VOLUME OUTPUT
BYTE 1 - output code
BYTE 2 to 5 - gain value
CODE 0x32 SET GENERAL VOLUME OUTPUT
BYTE 1 to 4 - gain value OUT A
BYTE 5 to 8 - gain value OUT B
BYTE to 12 - gain value OUT C
BYTE 13 to 16 - gain value OUT D
CODE 0x35 ROUTING
BYTE 1 - output code
BYTE 2 - input code
CODE 0x3A SET MUTE OUTPUT
BYTE 1 - output code
BYTE 2 - mute flag:
- bit 1: mute/unmute flag (1/0)
- bit 2: not used
- bit 3: not used
- bit 4: not used
- bit 5: not used
- bit 6: not used
- bit 7: not used
- bit 8: not used
CODE 0x3B SET MUTE GENERALE OUTPUT
BYTE 1 - mute flag:

20
- bit 1: mute/unmute flag OUT A (1/0)
- bit 2: mute/unmute flag OUT B (1/0)
- bit 3: mute/unmute flag OUT C (1/0)
- bit 4: mute/unmute flag OUT D (1/0)
- bit 5: not used
- bit 6: not used
- bit 7: not used
- bit 8: not used
CODE 0x3E GENERAL ROUTING
BYTE 1 - input code
CODE 0x3F SET VOLUME STEREO/BRIDGE OUTPUT
BYTE 1 - output code (1 for the couple OUT A-B)
BYTE 2 to 5 - gain value output OUT A
BYTE 6 to - gain value output OUT B
CODE 0x40 SET MUTE STEREO/BRIDGE OUTPUT
BYTE 1 - output code (1 for the couple OUT A-B)
BYTE 2 - mute flag:
- bit 1: mute/unmute flag (1/0)
- bit 2: not used
- bit 3: not used
- bit 4: not used
- bit 5: not used
- bit 6: not used
- bit 7: not used
- bit 8: not used
CODE 0x41 ROUTING STEREO
BYTE 1 - output channels code (1 for the couple OUT A-B)
BYTE 2 - input code
Other manuals for DMA 82
2
This manual suits for next models
2
Table of contents
Languages:
Other RCF Amplifier manuals
Popular Amplifier manuals by other brands

Monacor
Monacor CARPOWER HPB-418/SW manual

Monacor
Monacor SA-50 instruction manual

Peavey
Peavey UA 12T Specifications

Stanford Research Systems
Stanford Research Systems SIM984 Operation and service manual

Chandler Limited
Chandler Limited GERM 500 MKII Controls and features

Sony
Sony XM-N502 operating instructions