打印

TLV5618DA转换值问题困扰几天了,急盼解决

[复制链接]
楼主: wawayuxc
手机看帖
扫描二维码
随时随地手机跟帖
21
wawayuxc|  楼主 | 2008-9-26 16:20 | 只看该作者 回帖奖励 |倒序浏览

全部的程序

//数模转换

//高四位1000选中A通道  0001选中B通道
void    dac5618(uint a,uint b)
{
    char  i,j,k,g;

    CHIPCHOSE=1;    //选择373
    DACS=0;    

    a=a|b;        //选中b通道
    for(i=0;i<16;i++)
    {
        if(a&0x8000){DAIN=1;}
        else    {DAIN=0;}
        //for(g=0;g<13;g++);
        DACLK=0;
        //for(j=0;j<13;j++);
        _nop_();

        DACLK=1;
        _nop_();

        //for(k=0;k<13;k++);
        a<<=1;
    }


    DACS=1;

    return;
}
//主程序
void  main()
{
    uint  j=12;

    



    while(1)
    {

        dac5618(1080,0x1000);    
        dac5618(1080,0x8000);
        while(j--);
        j=12;    


        
    };

}

使用特权

评论回复
22
hotyong| | 2008-9-26 16:31 | 只看该作者

好像不是的

我的虽然不是成熟的产品,但也是刚已完成的项目,,我选择一个通道,调节数字,按下确认键,DA输出更新,只要确认了就会更新,没确认就不会更新.与技术手册的描述是一样的

使用特权

评论回复
23
supersunny| | 2008-9-26 16:36 | 只看该作者

你应该是调用的时候出错了

while(1)
    {

        dac5618(1080,0x1000);    
        dac5618(1080,0x8000);
        while(j--);
        j=12;    
    };


你把第一个dac5618(1080,0x1000);    改为

dac5618(1080,0x000);

再试

使用特权

评论回复
24
hotyong| | 2008-9-26 16:45 | 只看该作者

它的前四位是0001呀

0x1000  ==  0001 0000 0000 0000
20楼的有没有搞错呀,这里要用到光耦吗??

使用特权

评论回复
25
wawayuxc|  楼主 | 2008-9-26 16:48 | 只看该作者

发现奇怪现象

我吧万用表测a通道转换电压,当输入2000是a通道是1.18v,b通道也有输出也是1.18v。正好2个值是正常2.44v的差不多一半,程序选的只有a通道就是ad5618(2000,0x8000);并没有要求b通道输出

使用特权

评论回复
26
hotyong| | 2008-9-26 16:53 | 只看该作者

唉,那个快速方式的位PDR(也就是D14)

我开始从自面上来看以为是快速...不懂,
刚仔细看了一下它的命令,发现你们都没有用到这个位,而我用到了~!!
我的代码

//---DA转换---//
void TLV5618(unsigned int dat,unsigned char  Ch)  {
    unsigned char i;
    //TLV5618_CS=0;
//    P4 &=~0x01;
    if(Ch)
    {    
        dat |= (0x04<<12);    
    }
    else 
    {
        dat|= (0x0c<<12); 
    }

    TLV5618_SCLK=1;
     for(i=0;i<16;i++)
     {          
        if(dat&0x8000)
             TLV5618_DIN = 1;
        else 
            TLV5618_DIN=0;

        dat <<= 1;
        TLV5618_SCLK=0;   
        TLV5618_SCLK=1;
     }
//     TLV5618_CS=1;
     //P4 |=0x01;

}

我用的命令与你们的都不同

使用特权

评论回复
27
wawayuxc|  楼主 | 2008-9-26 16:56 | 只看该作者

为什么a通道最大转换数值只有2.5v就是参考电压

为什么a通道最大转换数值只有2.5v就是参考电压,我只选择a通道输出数据是4095最大值,输出2.5v,b通道没有输出

使用特权

评论回复
28
wawayuxc|  楼主 | 2008-9-26 16:58 | 只看该作者

谁有中文资料的,麻烦发一下啊。

怪问题越来越多了,我头都大了3圈

使用特权

评论回复
29
hotyong| | 2008-9-26 17:01 | 只看该作者

我有中文资料

使用特权

评论回复
30
hotyong| | 2008-9-26 17:03 | 只看该作者

给个邮箱,我发过来

使用特权

评论回复
31
wawayuxc|  楼主 | 2008-9-26 17:04 | 只看该作者

wangjianxc2@126.com

wangjianxc2@126.com

使用特权

评论回复
32
hotyong| | 2008-9-26 17:06 | 只看该作者

已发,先下班了,,希望对你有用

使用特权

评论回复
33
wawayuxc|  楼主 | 2008-9-26 17:07 | 只看该作者

谢谢

谢谢各位了,估计还是软件问题。

使用特权

评论回复
34
wawayuxc|  楼主 | 2008-9-27 09:25 | 只看该作者

新的一天开始了各位大侠

我发现我的a通道最大输出电压只有2.5v就是执行da5618(0x0fff,0x8000);不知道什么原因,b通道执行da5618(0x0fff,0x1000)输出可以到5v。

使用特权

评论回复
35
wawayuxc|  楼主 | 2008-9-27 10:28 | 只看该作者

nnd去掉光耦问题就解决了

nnd去掉光耦问题就解决了

使用特权

评论回复
36
mohanwei| | 2008-10-6 10:42 | 只看该作者

很简单,数据位在“或”之前需要先用“与”来清空一下


否则,只有原来的数据位全是0的情况下,结果才会碰巧是你所期望的。

使用特权

评论回复
37
luckyfzl| | 2008-10-10 10:47 | 只看该作者

你DA输出的模拟信号频率多高?

你们DA输出的模拟信号频率多高?

使用特权

评论回复
38
leeyr| | 2008-10-19 22:17 | 只看该作者

TLV5617DA我用过,你看一下有没有帮助

当时我用TLV5617 的时候也是很难过.
最后发现,
写A通道的时候只写一次就可以有电压输出了,
但写B通道的时候要连续写两次才能有电压输出.

使用特权

评论回复
39
leail| | 2010-7-14 12:35 | 只看该作者
谁有TLV5618的中文资料,我现在的电路输出会有100KHz的纺波出现,我想知道这是为什么?如果有中文资料,可否发给我,我的邮箱:hjli@sts-power.com  .谢谢了

使用特权

评论回复
40
义爻之| | 2014-8-5 14:24 | 只看该作者
怎么我写的TLV5618两路输出,总是只有A通道输出,B通道没有呀!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则