tag 标签: dac8571,iic

相关博文
  • 热度 20
    2014-9-5 10:23
    2484 次阅读|
    1 个评论
    今年的电子竞赛马上就开始了。其实这几天比较关注这个。看了下今年的推荐芯片里面。数据转换器只有3种。分别是ADS1118.DAC7811和DAC8571.7811这片子比较早出来。网上程序更是五花八门。这里不做多解释。另外自己手上刚好有DAC8571这片子。前几日闲的慌。胡乱搭了一板子。果断写了下IIC。示波器看了下波形。以及应答信号ACK。   单片机用的430.另外这个DA16位的。测试时候输出还是有偏移的。在加上自己的万用表精度不高。所以也不知道具体偏移到底有多少。   下降介绍片子。2.7-5.5供电。轨对轨输出缓冲。16位。IIC通信带高速模式。8 Lead MSOP 封装。     这里按照经典的连接方法就行了。这里有个地方一定要注意。vsense 一定要和VOUT连接一起。只要你稍微对放大器有点常识就知道。方向段一定要和输出连接一起才能构成缓冲。如果不连接那就是一个比较了。   下面介绍他的写地址和寄存器的时序。IIC时序其实就是。     一般IIC时序分为3个步骤。一。开始了之后。先写地址。如果成功了就会有应答信号在第九个脉冲的时候会拉低。就表示有这器件了。二。写寄存器。有低电平应答信号也表示成功。最后写数据。有应答信号就好了。最后重新开始或者stop.     这里介绍一下他的写寄存器那个步骤。主要注意LOAD1  LOAD0.这2位比较具有含义。当然通常的为了直接输出。只要你写01就好了。01就是最常用的方法。他是直接更新IIC输出的。00虽然存储了数据。但是并没有更新输出。写寄存器的时候写0X10.他 的含义对应PDF已经写得很明白。   另外输出根据这几步来写:(这里A0是接地的)   这里最后ML是16为DA的数据。参考电压5V的话写数据0x4000就是5/4=1.25V。这时候测量DA的输出端就是1.25V。这个自己测试过没问题。   主要根据这几个步骤来就行了。程序自己写了下没问题。(时序略)   另外如果有这个遇到问题的随时可以交流。主函数框架程序如下、   #include #include"IIC.h" //#include"12864.h" #include"init_clk.h" #define uchar unsigned char #define uint unsigned int uchar AD_temp;   void main() {   WDTCTL=WDTPW+WDTHOLD;   //   关闭看门狗  // P1DIR|=BIT2;//   //Ini_Lcd();     //init_clk();   P1DIR=0XFF;    init_IIC();         start();     write_byte(0x98);     slave_response();            write_byte(0x10);     slave_response();            write_byte(0x00);     slave_response();               write_byte(0x20);     slave_response();          stop();          while(1);   }