Access from the user program
KL6001
36
Version: 3.0.0
BUF_F: BUFFER-FULL_Flag
The receive FIFO is full. Data received now will be lost.
Error handling
If a parity, framing or overrun error occurs, the corresponding data is lost in transmission and will not be
loaded into the receive FIFO of the terminal.
If the buffer is full, incoming data will be ignored.
In the event of an error, the corresponding diagnostic bits are set to R6
5.7
Examples of Register Communication
The numbering of the bytes in the examples corresponds to the display without word alignment.
5.7.1
Example 1: reading the firmware version from Register 9
Output Data
Byte 0: Control byte
Byte 1: DataOUT1, high byte
Byte 2: DataOUT1, low byte
0x89 (1000 1001
bin
)
0xXX
0xXX
Explanation:
• Bit 0.7 set means: Register communication switched on.
• Bit 0.6 not set means: reading the register.
• Bits 0.5 to 0.0 specify the register number 9 with 00 1001
bin
.
• The output data word (byte 1 and byte 2) has no meaning during read access. To change a register,
write the required value into the output word.
Input Data (answer of the bus terminal)
Byte 0: Status byte
Byte 1: DataIN1, high byte
Byte 2: DataIN1, low byte
0x89
0x33
0x41
Explanation:
• The terminal returns the value of the control byte as a receipt in the status byte.
• The terminal returns the firmware version 0x3341 in the input data word (byte 1 and byte 2). This is to
be interpreted as an ASCII code:
◦ ASCII code 0x33 represents the digit 3
◦ ASCII code 0x41 represents the letter A
The firmware version is thus 3A.
5.7.2
Example 2: Writing to an user register
Code word
In normal mode all user registers are read-only with the exception of Register 31. In order to deacti-
vate this write protection you must write the code word (0x1235) into Register 31. If a value other
than 0x1235 is written into Register 31, write protection is reactivated. Please note that changes to
a register only become effective after restarting the terminal (power-off/power-on).