
ADM1027
任何数目的数据字节可以被传送通过串行
总线在一次操作中。然而,这是不可能混合读
和写在一个操作中,因为操作的类型是
在开始时确定,并且随后不能改变
不启动新的操作。
在ADM1027的情况下,写操作包含任
一个或两个字节,和读出操作包含一个字节和
执行以下功能:
将数据写入到其中一个所述设备的数据寄存器或数据读取
从它的地址指针寄存器必须设置,以便正确
数据寄存器进行寻址,那么数据可以被写入到该
注册或从中读取。在写操作的第一字节总是
包含存储在地址指针寄存器中的地址。
如果数据要被写入到设备,则写操作
包含被写入到所选择的寄存器的第二数据字节
地址指针寄存器。
这示于图6中的设备地址发送过
总线后跟R / W被设置为0。这之后是由两个
数据字节。第一个数据字节是内部数据的地址
1
SCL
9
寄存器被写入,这被存储在地址指针
注册。第二个数据字节将被写入到所述数据
内部数据寄存器。
当从寄存器读取数据时,有两种可能性:
1.如果ADM1027地址指针寄存器中的值是未知的或
不是所期望的值,首先需要将其设置为正确的
数据之前的值可以从期望数据寄存器中读出。
这是通过如之前执行写入ADM1027进行,
但仅发送包含寄存器地址中的数据字节,
作为数据不被写入到寄存器中。这示于
图7 。
然后执行由串行的读操作
总线地址,R / W位设置为1 ,然后是数据读取的字节
从数据寄存器中。这示于图8中。
2.如果该地址指针寄存器被称为是已经在
期望的地址,数据可以从相应的数据被读
寄存器而不先写入地址指针寄存器,
所以图7可被省略。
1
9
SDA
首先,
主
0
1
0
1
1
A1
A0
读/写
ACK 。 BY
ADM1027
D7
D6
D5
D4
D3
D2
D1
D0
ACK 。 BY
ADM1027
第1帧
串行总线地址
字节
1
SCL (续)
第2帧
地址指针寄存器字节
9
SDA (续)
D7
D6
D5
D4
D3
D2
D1
D0
ACK 。 BY
ADM1027
停止
主
3架
数据
字节
图6.写寄存器地址到地址指针寄存器,然后写数据到选定注册
1
SCL
9
1
9
SDA
首先,
主
0
1
0
1
1
A1
A0
读/写
ACK 。 BY
ADM1027
D7
D6
D5
D4
D3
D2
D1
D0
ACK 。 BY
ADM1027
停止
主
第1帧
串行总线地址
字节
第2帧
地址指针寄存器字节
图7.写入地址指针寄存器只有
1
SCL
9
1
9
SDA
首先,
主
0
1
0
1
1
A1
A0
读/写
ACK 。 BY
ADM1027
D7
D6
D5
D4
D3
D2
D1
D0
NO ACK 。 BY停止
主
主
第1帧
串行总线地址
字节
第2帧
数据字节从ADM1027
图8读取数据从一个以前所选择的寄存器
REV 。一
–9–