xiahuiqiang110 发表于 2011-3-22 09:41:34

da-DAC7612

坛里面有没有人用过DAC7612这款DA转换芯片有问题想请教下

my2009 发表于 2011-3-22 20:46:17

有问题不一次提出来,浪费版面

xiahuiqiang110 发表于 2011-3-23 10:45:15

回复【1楼】my2009
-----------------------------------------------------------------------

楼上也不要这么说啊之前的帖发的比较急 时间有点紧 所以说的不清楚 见谅啦
问题是这样的 把程序烧入883后 用万用表测量DAC7612的输出脚电压 发现电压值一直不变 不论怎么改变输入的数字值 输出的电压值始终不变
DAC7612是SPI串口的12位双路电压输出DA芯片 片子是16f883 把代码附上
dac7612ourdev_624778MKS5AL.txt(文件大小:2K) (原文件名:883.txt)

my2009 发表于 2011-3-23 11:21:48

for (i=0; i<14; i++) {
   data ---> SDI
   CLK =0
   NOP    // 不要用 delay(50)----太长了吧?
   CLK=1
}

xiahuiqiang110 发表于 2011-3-23 13:51:37

回复【3楼】my2009
-----------------------------------------------------------------------

恩 这个之前更正过了 输出还是不变 是不是通讯写的有问题啊

xiahuiqiang110 发表于 2011-3-23 15:32:21

换了写法 这里我只让通道A输出0V 貌似也不行
#include <pic.h>
__CONFIG(0xe0f1);

#define uint unsigned int
#define uchar unsigned char
#define_nop_()asm("nop")

#define DAC7612_SDI RC4
#define DAC7612_SDI_DIR TRISC4
#define DAC7612_CLK RC3
#define DAC7612_CLK_DIR TRISC3
#define DAC7612_LOAD RC5
#define DAC7612_LOAD_DIR TRISC5

#define value1 0x20//通道A 待转换数据的高4位
#define value2 0x00//待转换数据的低8位 使A通道输出0V

void main()
{
        int temp;
        PORTC=0xf4;
        TRISC=0x10;//设置RC4(SDI)输入,其他输出
        SSPSTAT=0xc0;//
        SSPCON=0x30;//SSPEN=1,CKE=1,SPI主控模式Fosc/4
        PORTC=0x00;
        SSPBUF=value1;//发送待转换的数据高4位
        while(!SSPIF);//等待发送完成
        SSPIF=0x0;//清除中断标志位
        temp=SSPBUF;//清空接收寄存器
        SSPBUF=value2;//发送待转换数据低8位
        while(!SSPIF);//等待发送完成
        SSPIF=0x0;//中断标志位清0
        PORTC=0x04;
        while(1);
}

xiahuiqiang110 发表于 2011-3-23 19:54:31

搞定

leawon947 发表于 2011-4-29 00:19:55

兄弟,请问如何搞定的,可以分享下吗?

fjs 发表于 2013-5-22 16:51:02

咋整的啊?
页: [1]
查看完整版本: da-DAC7612