描述:
MCP4726是一个12位带EEPROM和I2C接口的串行DAC,其小封装很适合在布局紧凑的应用方案上。
VREF或者VDD可以作为参考电压,如果是用VDD,则VDD连接内部参考电压,如果选择VREF,可以选择增益。
内部带EEPROM,在掉电情况下,保存DAC寄存器的值和配置位的值。
按照芯片的引脚定义,设计的DAC原理图如下,其中XTR117为电流输出电路。
引脚描述:
VOUT:输出值可以从VSS到G*VRL,其中G为设置的增益。正常模式下,输出阻抗小,为1欧姆,在掉电模式下,通过大电阻下拉到地,此大电阻可以进行设置。
VDD:VDD的滤波推荐使用104电容和10UF的钽电容并联。
VSS:低阻要求,注意进行模拟隔离。
SDA:用上拉
SCL:用上拉
VREF:可以用此参考电压来替代VDD经过内部参考模块后生成的参考电压。
EP:如果有外部PAD,注意散热。
简介:
器件使用电阻阶梯结构,参考源可以选择,由程序控制。输出通过低功耗和高精度的运放进行缓冲,输出放大器提供一个低偏置电压和低噪声的轨对轨的输出。器件带EEPROM,允许POR/BOR值保存在DAC寄存器中和配置位中。
上电复位和掉电复位:保证正常的上电和掉电的操作,Vram的电压要小于POR的电压,对于POR,电压从0开始,到VPOR的时候,DAC固定的寄存器值锁存到DAC可变的寄存器中,配置位同上,POR位置一,复位延时开始,当定时器溢出,I2C接口开始工作。模拟输出通过可变的配置位和DAC寄存器值决定,这个过程就是上电复位 的过程。当电压低于VPOR时,器件强制进入掉电状态,在PD1和PD0中的状态是11,模拟电路关闭,可变DAC只强制到000,可变配置位VREF1,VREF0,G值强制到0.
DAC的参考电压:有三种参考电压可供选择:
其中,如果选择VDD,则Vref则不需要链接,如果选择Vref模式,则可选择是否带缓冲,不带缓冲模式下,VREF可以从0V到VDD,如果在缓冲模式下,电压从0.01V到VDD-0.04V,缓冲能够提供低偏置电压,低噪声和高阻抗的输入。
梯度电阻:电阻梯度其实很简单,整个梯子就是N个1欧姆的电阻,比如12位的DAC,则电阻为4096欧,然后Vrl经过4096份电阻,如果要取第12梯的电压,则DAC设置在12的这个位置,取得一个模拟的电压值,梯子的结构如下:
输出BUFFER/Vout
从上图可以看出,VDD作为电源的时候不能用G=2,否则将超出VDD的输出边界,如果使用VREF,则可以设置G=2,这样,VREF=VDD/2为最大的VREF。
精度:每一步的电压变化大小根据参考电压和位数(12位)来决定,如VREF=3.3,则精度为3.3/4096。
输出变化率,由Vout负载决定。
最小的容性负载:如果容性负载比较小,输出缓冲的电流不会收到影响,但是Vout值则会受到影响,在本梯度到下一个梯度跳变的时候,会有一个斜坡,这个斜坡由BUF来决定。
大电容负载:这个斜率由输出缓冲漏电流和Vout负载来决定,输出电流不能超过漏电流ISC
驱动阻性和容性负载:Vout可以驱动一个100pF和5K并联的负载,如果电阻为3.5K左右,Vout的下降速度减小,推荐使用超过5K的负载电阻。
休眠操作:如果DAC操作不需要,有三种休眠模式可用。所有的休眠模式都会有如下的特点:关掉大部分内部电路,比如运放,电阻梯,运放输出为高阻状态,电阻梯和Vrl断开,保存DAC寄存器,配置位和EEPROM的寄存器和配置位值。三种模式的区别是:短路到地电阻的选择,有640K,125K和1K。在模式切换的过程中,Vout不再输出电流,电流通过下拉电阻输出。退出休眠模式:过程和上面是相反的。PD1和PD0=00的时候回到正常模式。
器件复位:器件复位有两种情况:一种是POR/BOR复位,一种是命令复位。
上电复位:将EEPROM中的值写入到RAM中(不可变写入到可变存储器中),复位延时定时器开启,此时不能接收I2C信号。
掉电复位:强制进入休眠模式,PD强制到11,RAM清空,I2C不能通信。
软件复位见下文。
寄存器,配置位和状态位
其中配置位上文的内容都有涉及到,两个状态位为RDY和POR,RDY只是EEPROM是否在进行编程,如果忙则为0,POR这个是当上电复位还没有完成,则为0,此时不能操作器件。
I2C接口
I2C协议为标准协议,支持三种速度:100K,400K和3.4M.
从机地址:从机地址的前两位固定为1100,后面三位为用户配置,这个三位的配置对应芯片的型号,不能随便设置,比如选用MCP4726A7,则A7对应最后三位为777,从机地址为0XC7。
高速模式在3.4M的速度下,其数据格式为:开始,高速模式选择,不响应,然后是重启开始,地址,响应,如下:
GENERAL CALL:
这个是用于和其他所有从机通信的一个方法,这种地址有两种格式,可以用来复位和唤醒器件。
格式如下:
MCP4726的I2C命令:
命令的发送包括读写存储器和GENERAL CALL的命令。
一共有如下的6条命令:
更新DAC寄存器:这个是用于快速更新DAC值的一个命令,包含要DAC和两个PD位。EEPROM的值不会变化。格式如下:
首先是发送地址和写位,等待从机响应,然后发送命令00,这里注意不是000或者001,然后跟两位PD和4位的数据,从机响应,然后跟剩下的8位数据,等待响应,然后由主机产生结束。
如果是需要连续不断的发数据,结束标志不需要发,继续发送重启信号和数据,此时地址不需要再发。这样可以快速的更新数据值。
写存储器:这种模式下,除了传送数据和PD以外,还可以传送G和VREF源,格式如下,和上面的命令类似,也可以发送重启进行快速数据更新:
写所有的存储器和写存储器命令格式是一样的,唯一不同就是词条命令会将EEPROM的数据也进行更新。
只写配置位:方法更简单,这个不能连续写,也没有这个必要,:-)
读MEMORY:这个需要读两组数据,一组是EEPROM的值,一组是寄存器中的值,按照如下的格式:
GENERAL CALL命令:格式为,开始,然后7位0+写位响应+命令+响应结束。命令一共有两条,0X06为复位,0X09为唤醒。如下:
DAC的术语:略
典型应用:
由于带EEPROM和睡眠模式,芯片主要用在如下应用中:
设置偏置点
传感器标定
便携式产品
电机控制
上拉电阻:电阻越大,能量消耗越小,但是增加了信号的传输延时,尤其是线路比较长或者总线节点比较多的情况下。电阻越小,则能量消耗大,但是传输速度快。通常选用1K~10K作为100K和400KHZ的速度情况下,如果选用HT模式,则电阻选用小于1K。
芯片的测试:简单的发送地址,看芯片是否产生响应就OK了。
供电考虑:如果选择VDD,则注意靠近芯片放置10UF钽电容和104的陶瓷电容。Vout根据需要防止小电容滤波。如果选用外部的参考源,同样需要加入钽电容和陶瓷电容。同时VDD也添加电容。