在一些时候我们需要使用精度更高的数字电位器来实现我们的应用。我们经常使用AD527x系列数字电位器来实现这类应用。在通常情况下,AD527x系列数字电位器完全能够满足要求。为了减少重复工作,在这里我们将分系并实现AD527x系列数字电位器的驱动。
1、功能概述
我们在这里讨论的AD527x系列数字电位器包括:AD5270、AD5271、AD5272和AD5724,他们的功能是相同的,主要在数字位或通讯接口上有写差别。

AD527x系列数字电位器集业界领先的可变电阻性能与非易失性存储器(NVM)于一体,这些器件的端到端电阻容差误差小于1%,并提供50次可编程(50-TP)存储器。将电阻值编程写入50-TP存储器之前,可进行无限次调整。这些器件不需要任何外部电压源来帮助熔断熔丝,并提供50次永久编程的机会。在50-TP激活期间,一个永久熔断熔丝指令会将游标位置固定。
对于AD527x系列数字电位器,皆有一个16位宽的移位寄存器,一切对AD527x系列数字电位器的操作都是同过这个以为寄存器完成的。移位寄存器的格式如下所示。

该16位移位寄存器由两个应设为0的未用位、四个控制位和10个RDAC数据位组成,并且数据以MSB优先方式加载。对于AD5271和AD5274只有8位数据,则最后两位会被忽略。四个控制位决定软件命令的功能,具体的功能码如下所示:

我们对AD527x系列数字电位器的操作就是以这10个命令为基础的,事实上NOP命令是可以忽略的,因为它不会有任何操作发生。其中有命令5和命令7需要说一下。
命令7则用于设置控制寄存器。控制寄存器仅后4为有效。C0用于设置50-TP的编程使能。C1用于设置RDAC的写保护。C2用于电阻容差校准。C3则是指示50-TP的编程状态。具体结构如下:


而命令5用于设置读出的50-TP的内容。就是说这条命令用于设置我下次读取50-TP时究竟是那一条的类容,因为总共有50条。具体的取值如下:

共50条需要50个编码,使用了D0到DF5位,编号1开始一一对应50个编程位置。
2、驱动设计与实现
我们已经了解了AD527x系列数字电位器的基本情况,接下来我们就设计并实现AD527x系列数字电位器的驱动。

本文详细介绍了AD527x系列数字电位器的驱动设计过程,包括对象定义、初始化、操作命令封装及应用实例。驱动支持SPI和I2C接口,适用于多种型号。
最低0.47元/天 解锁文章
2308





