外设评测系列——MAX5487数字电位计评测
扫描二维码
随时随地手机看文章
1.1 简介
我们学电子学接触的第一个电子元件概念就是电阻。常见的电阻概念有定值电阻、可变电阻。而电阻又因为不同的材质就种类千变万化了,作为可调电阻我们接触我们接触最早的应该是实验用的滑动变阻器,后来作为收音机音量的又有电位器,而随着技术进步和需求的进一步提高,后来又有了数字电位计。
电位器的出现有很长的历史,它以各种方式应用在广泛的领域,如常数调整和测量领域。最常见的莫过于设定和微调电阻值来微调电路,设置电平和调整增益等。电位器也被用来设计机器人和工业设备中的位置反馈。
今天就给大家介绍一款数字电位器MAX5487,通过它我们介绍一下数字电位器的应用范围,以及跟传统模拟机械电位器的对比。
1.2 初见
我们先看看这数字电位器模块,如下图所示,中间那个小黑方块就是MAX5487,是不是很小,可以很方便的集成到电路板上,占用很少的PCB,左边的六根针是供电接口和SPI通信接口,右边的6根接线柱是两组电阻的接线柱。
我们拿常规的模拟机械电位器做个对比,如下图所示,另外两个分别是滑电位器和旋钮电位器。从体积上看相差很悬殊,数字电位器MAX5487芯片的远远小于模拟机械器件,在这么小的体积内集成了两组变阻器。
同样是电位器那么他们有哪些共同点和不同点呢?
共同点:其中最大相同就是它们都具有可调性,能提供大范围的端到端电阻。
不同点:
其一,数字电位器更适合数字电路系统使用,可以数控,可编程实现自动调节,而模拟机械电位器需要手动拨动滑动触点来改变阻值。
其二,机械电位器可耐上千伏的高压,数字电位器受制于小体积通常电压在30伏以内。机械电位器电阻容量也比数字电位器大。然而我们只要稍加考虑就可以解决上述问题。
其三,机械电位器受振动发生电阻飘移的时候会给设计造成问题。机械电位器的接触点因磨损,老化而造成电阻增大或失效,进而使机械电位器的性能无法预知。数字电位器则无因机械结构造成上述的问题,可以经上万次开关操作而依然保持一致。
其四,数字电位器通常采用多晶硅或薄膜电阻材料,具有低噪声,高精度和优良的温度系数。
其五,在体积上数字电位器比机械电位器小很多。
其六,数字电位器另一个显著优点是可编程性,它可以通过通信接口发送指令来调节电阻,可以取代电压跟随器,还可以象数模转换器一样来控制或设置电压电流。
1.3 板上资源
如上图所示,U1为MAX5487。作为电位器元件除了通信接口J1外,如上图所示J2为功能接口,和模拟机械电位器的接口是类似的,此芯片具备两个内置可变电阻单元,分别是A和B。该模块接口管脚功能如下表:
根据简单的接口描述我们已经知道如何使用MAX5487模块,知道了哪些是接数据接口,哪些是作为可变电阻器使用的管脚。下图是该模块的电路原理图,其中LK为未焊接的。
从原理图上我们也可以看出该芯片如何接入到自己的电路中去,以及作为参考设计,融入自己项目中时候如何配置相关电路中元器件的参数。
1.4 编程测试
通常一个外设芯片的手册会提供操作的时序图,通过时序图我们可以编写软件,让IO电平根据时序图的逻辑顺序变化即可完成外设的读或写操作。
下图是该芯片的内部结构图,我们能够看出对外操作的数据接口一共三个电平信号SCLK、DIN、/CS。
MAX5487、MAX5488、MAX5489:功能框图
我们从用户手册找到时序图。
我们看到可以分两种方式操作,一次写入16bit,这样可以把命令和数据一次完成传递,另外一种就是分两次,不过连起来看实际上还是一种方式。这里我们就分析一下时序图,完成16-BIT时序图的代码编写。
我们看到/CS(这里我们以变量_CS作为标识符)作为片选信号,必须在拉低后才可以操作器件。结束后拉高,因此我们这个操作函数必须以_CS=0开始,以_CS=1结束;我们通过SCLK可以看出通过16个周期的SCLK时钟信号完成写入数据,因此在这里可以通过for循环来实现16个周期的时钟信号,接下来我们观察数据DIN跟SCLK在每个周期的关系,不难发现,在SCLK拉低的时候写入DIN电平信号,在SCLK拉高后DIN数据完成写入操作。
因此函数就是
现在我们只需要找个单片机,在上面找3个GPIO设置为数字输出模式,然后按照上面的时序操作就行了。
这里我们利用STM32F446 Nucleo开发板来做测试。该开发板支持ARM的MBED在线开发环境。
思路如下:通过ADC测量模拟机械电位器的位置后用相同的结果换算后作为参数设置数字电位器到相同的位置,然后通过ADC检测设置的数字电位器进行比对。
实现步骤:1,选择三个IO端口设置为数字输出模式,选择两路ADC端口作为检测;2,启动模拟机械电位器所在ADC通道的检测,读取的结果为了防止噪声干扰进行误差计算控制,在误差范围外就通过串口打印出结果;3,把机械电位器检测的结果换算后作为控制参数控制数字电位器的触点位置,同时检测噪声误差,打印结果;4,为了使得更加可视化,通过板子上的三颗LED显示大概位置。
分辨率控制:我们根据手册知道,该芯片是256抽头的,也就是8BIT分辨率,经过换算等价于3.922‰,因此在读取的时候我们可以把分辨率控制设置在该范围内,为了能够看到数字电位器是否稳定,这里只在模拟机械电位器变化超过误差上限时候才重新写数字电位器,而数字电位器的输出读取是不受影响的。
代码如下:
所有接线和代码编写完成后,下载进去。调整机械电位器。通过串口助手观察变化。如下图所示。我们发现只有在旋转机械电位器时候A1才会跟着A0变化。
其中A1和A0的差异是因为A1读取的结果是由A0转换为8BIT数据取整后的误差引起,只要A1是稳定不变的即可。
测试视频如下:
1.5 特性总结
MAX5487PMB1外设模块提供必要的硬件电路,使MAX5487双通道线性抽头数字电位器能够连接到任何使用Pmod™兼容扩展端口配置SPI通信的系统。这些数字电位器可以替代机械电位器,通过简单的3线SPI兼容接口设置滑动端位置,编程到256的抽头的任一位置。每个数字电位器端点都提供输出引脚,用于连接外部电路。
有关IC工作的详细信息,请参考MAX5487/MAX5488/MAX5489 IC数据资料。
关键特性
· 双通道、256抽头、线性抽头、10kΩ数字电位器
· 滑动端位置存储在非易失存储器(EEPROM),上电时调用或通过接口命令调用
· IC引脚兼容于50kΩ (MAX5488)和100kΩ (MAX5489)
· 可配置为可变电阻
· 6引脚Pmod兼容连接器(SPI)
· 可移植C语言例程
· 符合RoHS标准
· 经过验证的PCB布局
· 完全安装并经过测试
1.6 小结
MAX5487/MAX5488/MAX5489是双路、线性变化数字电位器,能实现机械电位器的功能,通过简单的3线SPI™兼容数字接口,可将滑动端编程至256抽头的任一位置。这些数字电位器具有非易失存储器(EEPROM),在上电时将滑动端恢复到上次存储的位置。
MAX5487的端到端电阻为10kΩ,MAX5488与MAX5489的电阻值分别为50kΩ与100kΩ。这些器件的端到端温度系数低至35ppm/°C,工作在+2.7V至+5.25V单电源。
MAX5487/MAX5488/MAX5489采用16引脚、3mm x 3mm x 0.8mm、薄型QFN封装或14引脚TSSOP封装。每款器件都能确保工作在-40°C至+85°C扩展级温度范围。
在编程上由于不是完整的SPI双向通信,因此可以不用使用硬件的SPI收发器实现,这样通过IO来模拟实际上很简单,还可以节省一路GPIO。
· 滑动端位置存储在非易失存储器(EEPROM)中,上电时调用或用接口命令调用
· 16引脚、3mm x 3mm x 0.8mm薄型QFN封装或14引脚TSSOP封装
· ±1 LSB INL,±0.5 LSB DNL (分压器模式)
· 256抽头位置
· 35ppm/°C端到端电阻温度系数
· 5ppm/°C比例温度系数
· 10kΩ、50kΩ与100kΩ端到端电阻值
· SPI兼容串行接口
· 可靠性
o 200,000次滑动端存储周期
o 50年滑动端数据保存时间
· +2.7V至+5.25V单电源工作
· 可提供评估板
通常作为数字可控的变阻器一般用在需要变阻器又不好用手去操作的场合,如下图所示。
LCD偏压控制
可编程滤波电路
这里给出几种操作需要的指令和数据宏
应用
· 音量控制
· LCD屏调节
· 低漂移可编程滤波器
· 低偏差可编程增益放大器
· 替代机械电位器
1.7 相关资料下载
本文系21ic原创,未经许可禁止转载