Digi NS9750 User Manual
Page 570
![background image](/manuals/75506/570/background.png)
I 2 C c o m m a n d i n t e r f a c e
5 4 6
N S 9 7 5 0 H a r d w a r e R e f e r e n c e
Locked interrupt driven mode
I
2
C operates in a locked interrupt driven mode, which means that each command
issued must wait for an interrupt response before the next command can be issued
(illustrated in "Flow charts," beginning on page 556).
The first bit of the command — 0 or 1 — indicates to which module — master or slave,
respectively — the command in the CMD field (of the
CMD_TX_DATA_REG
; see page 548)
is sent. The master module can be sent a master command only; the slave module
can be sent a slave command only (see "Master and slave module commands,"
beginning on page 546, for a list of commands). If a command is sent to the master
module, that module is locked until a command acknowledgement is given. Similarly,
if a command is sent to the slave module, the slave module is locked until it receives
a command acknowledgement. With either module, the acknowledgement can be any
interrupt associated with that module. When a module is locked, another command
must not be sent to that module.
The command lock status can be checked in the
STATUS_RX_DATA_REG
.
Master module and slave module commands
The I
2
C master recognizes four high-level commands, which are used in the CMD field
of the Command register (see page 548); the I
2
C slave recognizes two high-level
commands:
Command
Name
Description
00
hex
M_NOP
No operation.
04
hex
M_READ
Start reading bytes from slave.
05
hex
M_WRITE
Start writing bytes to slave.
06
hex
M_STOP
Stop this transaction (give up the I
2
C bus).
10
hex
S_NOP
No operation. This command is necessary for 16-bit
mode, providing data in
TX_DATA_REG
without a
command.
16
hex
S_STOP
Stop transaction by not acknowledging the byte
received.
Table 335: Master and slave module commands