1.前言
前面做程控放大器的时候,有除开AD602,还有一个AD620,性能更好,不过是通过外部电阻来控制放大倍数的,不过要是接滑动变阻器就太不优雅了,而且单片机怎么控制滑动变阻器?(难不成造个机械臂控制?搞笑呢)于是就用上了数字电位器了。这种电位器不是常规的电阻,而是专门用在信号上的电阻,比如射频,你别给它通电流。
而且老实说这种芯片TI给它定位是用在DDR的阻抗匹配的。emmm,好吧,有点大材小用了。
今天下午折腾了一下,控制起来比较简单,但是鉴于网上这个芯片的使用教程就没有。算了,还是写一下弥补一下空白吧。
2.芯片说明
首先我买的是TPL0401B
这个系列总共有3个型号,其中AB与C型号内部的连接方式不一样,AB的I2C地址不一样,这里我就介绍B型了。
我们的电阻就是W对GND或者W对H,都行。不过因为我把H和W拉出来了,所以这次我就以H和W见电阻为例了,大家可以根据需要去接外围电路。
下面我们确定I2C的地址,可以看到B型的地址是0111 110也就是0x3e
3.发送
了解完上述内容后我们就可以开始写程序设置电阻了。
我们先看写入,通信过程比较简单,有点类似EEPROM,从机地址+0x00+数据
那么这个数据和电阻的对应关系是什么呢?TI提供了一张表,总共3页,大家根据需要去翻数据手册即可,大家根据自己的需要选择电阻。Rwl就是W端对地的电阻,Rhw就是H和W端的电阻。确定电阻后我们在看第二列的二进制编码,进而确定我们发送的数据。
4.读取
芯片内部除了提供写入,还可以读取,读取到的数据就是第二列的二进制,我们可以根据读取到的数据反推电阻值。
读取过程也比较简单,和EEPROM类似,从机地址+0x00+从机地址+读取数据
5.测试
这次我测试两个电阻,首先的第55个,也就是0x37
对应电阻就是5.7K
波形如下
实测如下
我们再测试一组7C
也就是0.31K
波形如下
实测如下
6.结语
总的来说,芯片用起来还是比较简单的,但是精度并没有我想象中好,几乎都差一点。难道是10K这个数值比较大?用范围小的芯片会好一点?算了,反正也调试出来了。用的情景也不多,不行串一串,并以并小的电阻,精度可能会更高吧。好了那么还是那句话,有什么问题评论区发出来,我会尽力解答,那么我们下篇文章见。