AD5272芯片文档解读

AD5272芯片

1.芯片简介

在这里插入图片描述
根据使用说明书,与AD5272芯片通信需要使用IIC接口。
通过IIC控制芯片输出电阻。

2.芯片使用手册解读

2.1 引脚配置和功能描述(PIN CONFIGURATION AND FUNCTION DESCRIPTIONS)

在这里插入图片描述
这里涉及到接线需要注意的几点为:
1.reset引脚需要接VDD
2.SDA引脚需要连接上拉电阻
3.ADDR引脚有三种连接方式(下面会介绍):接GND,接VDD,NC什么都不接。

3 工作原理(THEORY OF OPERATION)

在这里插入图片描述
大意就是:使用IIC更改RDAC寄存器的内容,RDAC寄存器的内容又决定了电阻游标位置,更改以后将RDAC寄存器的内容存储到50-TP寄存器中。这样就能够实现不同电阻值的输出。

3.1 串行数据接口(SERIAL DATA INTERFACE)

讲述了AD5272支持标准IIC和快速IIC。并且寻址是7位寻址。
在这里插入图片描述
ADDR引脚连接线的不同,AD5272的地址也不同。因为有三种方式,所以一个总线上最多挂载三个AD5272芯片。

3.2 移位寄存器(SHIFT REGISTER)

在这里插入图片描述
AD5272芯片移位寄存器16位宽,组成分别为: 00 + C3C2C1C0+D9……D0。一共16位两个字节。其中C3……C0为控制位,D9……D0为RDAC数据位。控制位是固定的,手册中有给出,我们需要改变的是D9……D0的值。

3.3 写操作(WRITE OPERATION)

在这里插入图片描述
SCL为高,SDA为低的时候,表示开始写。
最先发送的是7位地址 + 1位读写位 (注意:一般函数都会封装读写位,即调用读函数,会自动补全1,调用写函数,会自动补全0,所以只要传递前7位地址就行),将前八个字节发送后,AD5272会回复一个ACK,代码寻址成功。(可用逻辑分析仪等抓波);
其次再发送八字节 00 + C3…C0 + D9 + D8, AD5272会回复一个ACK;
再次再发送八字节D7……D0, AD5272会回复一个ACK;
最后SCL,SDA都拉高,表示停止。
这是一次写操作的全过程。

3.4 读操作(READ OPERATION)

在这里插入图片描述
读操作需要注意的是分为两步:
第一步执行的是写,第八位读写位为0;
第二步执行的是读,第八位读写位是1;
(这里第一步用的控制命令与之前单纯的写不同,下面介绍。)

3.5 寄存器介绍

3.5.1 RDAC寄存器(RDAC REGISTER)

使用IIC直接更改其值,其值改变后游标位置变动。

3.5.2 50-TP寄存器(50-TP MEMORY BLOCK)

存储RDAC寄存器中的值

3.5.3 控制寄存器——写保护(WRITE PROTECTION)

因为芯片有写保护,所以需要先解除写保护,通过更改控制寄存器的值来解决。

所以大致流程就是使用IIC先跟控制寄存器通信,解除写保护,然后与RDAC通信,改变游标位置,最后将RDAC的值写入50-TP寄存器。
在这里插入图片描述

4.写/读 RDAC和50-TP寄存器示例(Write and Read to RDAC and 50-TP memory)

在这里插入图片描述
在这里插入图片描述
看的时候有点懵,为什么有0x1c、0x14这种指令,其实,按照00 + C3C2C1C0+D9……D0,这个格式来计算就能得到:
在这里插入图片描述
第一条指令 :0x1C03 (0x1C, 0x03):意思是使用命令7,写0x03,因为命令7的介绍是写控制寄存器,所以需要找到这个表:
在这里插入图片描述
0x03对应:0011,所以表示:1 = enable device for 50-TP program 和 1 = allow update of wiper position through a digital interface。
这条指令将写保护给打开。

第二条指令:0x0500 (0x05, 0x00),后面介绍意思是将0x100写入RDAC寄存器;游标移到¼满量程位置。为什么这样,
首先将(0x05, 0x00)转换为二进制 00000101 00000000, 按照16位寄存器格式: 00 + 0001 + 0100000000, 就是用0x01指令写0x100。【上面表格只有指令1的D9、D8位不是XX,而XX的意思是不需要考虑置为0就行。所以只有指令1值是在变化的】

第三条指令:0x0800,这个是读数据指令,按照上面的读操作显示,需要将此指令写一遍,然后再去读返回的两字节。

第四条指令:0x0C00,用于将上一步我们写的RDAC数据写入50-TP寄存器中。

第五条指令:0x1800,也是一个读指令,用于读取50-TP寄存器的值。

在我调试的过程中,执行到这里,就能够实现AD5272输出不同的电阻值,后面的指令使用逻辑分析仪抓取一直返回的是NAK,有知道的小伙伴可以评论下。(以上如果有问题,可以随时评论,共同讨论)。

5 .电阻值计算

在这里插入图片描述
按照第四章节的列子,我们将0x100写入到了RDAC寄存器,0x100十进制为256,如果使用50K的RD5272,则计算过程与结果为:256/1024 * 50 = 12.5k ;此时使用万用表测量AW两端的电阻,发现电阻确实为12.5k左右。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值