数字电位器AD5160测试程序

编程实验

72人已加入

描述

  AD5160工作原理

  AD5160是一款256位、数字控制可变电阻(VR)器件。上电期间,内部上电预设将游标置于中间电平,简化了上电时的故障状况恢复。

  1、可变电阻器编程

  可变电阻器操作

  A端和B端间RDAC的标称电阻可以为5kΩ、10kΩ、50kΩ和100kΩ。在订购指南部分列出的型号数字中,最后二到三位表示标称电阻值;例如,在型号AD5160BRJZ10中,10代表10kΩ;AD5160BRJZ50中,50代表50kΩ。可变电阻的标称电阻(RAB)有256个触点,通过游标端和B端触点访问。RDAC锁存器中的8位数据经过解码,用于选择256种可能的设置之一。

  假设使用一个10kΩ器件,对于数据0x00,游标的首个连接从B端开始。由于存在一个60Ω游标接触电阻,这种连接导致W端和B端之间至少有60Ω电阻。

  第二个连接是第一个抽头点,数据0x01对应电阻为99Ω(RWB=RAB/256+RW=39Ω+60Ω)。

  第三个连接是下一个抽头点,数据0x02对应电阻为138Ω(2×39Ω+60Ω),以此类推。随着每个LSB数据值的增加,游标沿电阻梯向上移动,直至到达最终抽头点位置,此时电阻达9961Ω(RAB−1LSB+RW)。图39给出了一个简化的等效RDAC电路框图,该图中最后那个电阻串未被访问;因此,满量程时除了游标电阻,比标称电阻还要小1LSB。

数字电位器

  确定W端和B端间的数字编程输出电阻的通用公式是

数字电位器

  其中:

  D为载入8位RDAC寄存器的二进制代码的十进制等效值。

  RAB是端到端电阻。

  RW是内部开关导通电阻所分配的游标电阻。

  总之,如果RAB=10kΩ且A端处于开路状态,那么下列输出电阻RWB为所示的RDAC锁存器代码而设置。

数字电位器

  请注意:在零电平条件下,存在60Ω的有限游标电阻。注意,此状态下要限制端W和端B的电流流动,最大脉冲电流不能超过20mA。否则,内部开关触点会下降或可能毁坏。

  与机械电位计相似,游标W和A端间RDAC电阻也产生一个数字可控互补电阻(RWA)。这些端子使用过程中,B端可以断开。RWA电阻值设置从最大电阻值开始,随着锁存器所加载的数据值增加而降低。此操作的通用公式是

数字电位器

  如果RAB=10kΩ且B端处于开路状态,则下列输出电阻RWA为所示的RDAC锁存器代码而设置。

数字电位器

  典型器件间匹配依进程而定,变化幅度可高达±30%。由于电阻元件经薄膜技术处理,RAB温度系数为45ppm/°C,变化非常小。

  2、电位计分压器编程

  电压输出操作

  在游标与B端和游标与A端之间,数字电位计可轻松用作分压器,与A端与B端间输入电压成正比。VDD到GND必须为正极,而A-B、W-A和W-B的电压可以为任一极性。如果忽略游标电阻作用,取近似效果,那么A端接至5V和B端接至地后,游标与B端产生输出电压,从0V开始至5V以下1LSB。电压每个LSB等于经过256位电位分压器分压的A端与B端间的电压。针对A端和B端间施加的任何有效输入电压,VW处相对于地的输出电压定义为

数字电位器

  在分压器模式下使用数字电位计,可提高整个温度范围内的操作精度。与可变电阻模式不同,输出电压主要取决于内部电阻之比(RWA与RWB),而不是绝对值。因此,温度漂移降到15PPM/°C。

  SPI兼容型三线式串行总线

  AD5160内置三线式SPI兼容型数字接口(SDI、CS和CLK)。8位串行字必须以MSB优先方式加载。字格式如表6所示。正边沿敏感CLK输入需要干净的跃迁以避免将错误数据输入串行输入寄存器。标准逻辑系列性能表现良好。若产品评估中需要用到机械开关,可采用触发器或其他合适的手段去抖。当CS为低电平时,数据在每个正时钟沿读入串行寄存器(见图37)。

  有效时序要求取决于规格表内的数据建立时间和数据保持时间。当CS线路回到逻辑高电平时,AD5160使用传输到内部RDAC寄存器的8位串行输入数据寄存器字。多余的MSB位被忽略。

  4、ESD保护

  如图40和41所示,所有数字输入均受到串联输入电阻和并联齐纳ESD结构保护。这也适用于数字输入引脚SDI、CLK和CS。

数字电位器

  5、上电顺序

  因为ESD保护二极管限制了A端、B端和W端的顺从电压,所以给A端、B端和W端施加任何电压之前必须给VDD/GND供电;否则,二极管发生正向偏置,以致VDD意外上电,可能会影响用户电路的其他方面。理想的上电顺序如下:GND,VDD,数字输入,然后是VA/B/W。只要在VDD/GND之后上电,VA、VB和VW和数字输入的上电顺序就无关紧要。

  6、布局和电源旁路

  采用紧凑、最小引线长度的布局设计是很好的做法。这样可尽量做到直接输入,实现最小导线长度。接地路径应具有低电阻、低电感。

  同样,采用优质电容将电源旁路达到最佳稳定性也是最佳做法。可采用0.01μF至0.1μF的盘式或片式陶瓷电容实现器件电源旁路。为了尽可能减少瞬态干扰,并滤除低频纹波,电源处应运用低ESR1μF至10μF钽或电解电容(见图42)。若要尽可能降低接地反弹,可在单点处远程连接数字地和模拟地。

数字电位器

  AD5160引脚配置和功能描述

  引脚配置图:

数字电位器

  引脚功能描述:

数字电位器
 

  AD5160外形尺寸

数字电位器

  数字电位器AD5160测试程序

  /********* STC12C5A60S2平台AD5160数字电位器程序 时钟:外部12M晶振

  电位器串联外部电阻连接为可变电阻模式,若不串外部电阻直接接参考电压源即工作为数字电位计模式

  *NOTE:作为可变电阻模式与外部电阻串联时存在一定程度容差,若所串电阻大于AD5160本身满量程电阻(型号有5K\10K\50K\100K)10倍以上则此容差才可忽略 *****/

  /*AD5160.H*/

  #ifndef _AD5160_H_ #define _AD5160_H_

  #include《STC12C5A60S2.h》 #include《intrins.h》

  typedef unsigned char uchar; typedef unsigned int uint;

  sbit CPCS = P3^2; //数字电位器AD5160的片选CS,低电平有效 sbit SDI = P3^4; //数字电位器AD5160的数据SDI sbit SCK = P3^5; //数字电位器AD5160的时钟SCLK

  void AD5160_init() //AD5160初始化 { CPCS = 1;

  SCK = 0

  SDI = 1;

  }

  void set_AD5160(uchar dat) //设定从W抽头到B端的抽头数,以10K版本的为 { //例电阻为RwB = 60+39*rdac 其中W抽头接触电阻为60Ω

  uchar i,rdac=0; CPCS = 1;

  rdac = dat; //RDAC为写入AD5160 内部8位radc寄存器数据 SCK = 0;

  _nop_();_nop_();_nop_();_nop_();

  SCK = 1; //SCK在CS拉低前触发一个时钟

  _nop_();_nop_(); SCK = 0; _nop_();

  CPCS = 0; //拉低CS启动数据写入 for(i=0;i《8;i++) { SDI = (rdac&0x80); rdac《《=1; //高位MSB在先 _nop_(); SCK = 1; _nop_(); SCK = 0; }

  CPCS = 1;

  _nop_(); //片选拉高后SCK送一个结束时钟,这点很重要 SCK = 1;

  _nop_();_nop_(); SCK = 0; _nop_();

  }

  #endif

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分