搜索
bottom↓
回复: 8

MSP430写TLV5616的驱动,输出线性关系不正确,求帮助!

[复制链接]

出0入0汤圆

发表于 2012-7-28 20:37:19 | 显示全部楼层 |阅读模式

如题,写TLV5616DR的驱动,主体如下。
void TLV5616_SetOutput_Voltage(unsigned int nVoltage)
{
    //数据处理
    unsigned char Mode_Byte =0;
    unsigned char Msb = 0;
    unsigned char Lsb = 0;
    unsigned char i=0;
    nVoltage %= 4096;                  //屏蔽高四位
    Msb = nVoltage/256;                //高8位,数据在高8位的后四位中
    Lsb = nVoltage%256;                //低8位
    Msb = Msb << 4;                    //将数据移到高8位中的前四位
    //时序开始
    SET_SCLK;
    SET_FS;
    SET_CS;
    _NOP();
    _NOP();
    CLR_CS;
    CLR_FS;
    //模式设置
    Mode_Byte = Slow_Speed_Mode;
    for(i=0;i<4;i++)
    {
        SET_SCLK;
        if((Mode_Byte&0x80) != 0)      
        {
            SET_DIN;
        }
        else
        {
            CLR_DIN;
        }
        CLR_SCLK;
        Mode_Byte <<= 1;
    }
    for(i=0;i<4;i++)                   //先传输高四位
    {
        SET_SCLK;
        if((Msb&0x80) != 0)            //最高位为1
        {
            SET_DIN;
        }
        else
        {
            CLR_DIN;
        }
        CLR_SCLK;
        Msb <<= 1;
    }
    for(i=0;i<8;i++)
    {
        SET_SCLK;
        if((Lsb&0x80) != 0)
        {
            SET_DIN;
        }
        else
        {
            CLR_DIN;
        }
        CLR_SCLK;
        Lsb <<= 1;
    }
    //时序恢复
    SET_FS;
    SET_CS;
    SET_SCLK;
}
实际结果是这样的:用数字面板表显示。设定输入 0 对应 0.0  输入 5对应 0.01 输入10 对应0.02   .。。。。
                           输入1000对应是 1.61      输入2000对应 3.21   输入3000对应 4.82 输入4000(接近最大值4095)对应的是5.01
而芯片供电电源是 VDD = 5V,REFIN接的是3.3。出现现在这样的结果找不到解决办法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-7-29 09:06:34 | 显示全部楼层
本帖最后由 小小码字员 于 2012-7-29 09:09 编辑



输出电压的公式为 2* REF*CODE/0x1000      按这个公式,CODE取2000时,那么输出就达到最大了(REF)值了。怎么解释这个公式啊?

出0入0汤圆

 楼主| 发表于 2012-7-29 11:50:56 | 显示全部楼层
自己解决了,从TLV5616输出电压公式看出,参考电压REF一定要小于或等于供电电压的一半,如供电电压选择5V,REF要小于等于2.5V.  我刚开始选择的是供电电压 5V,参考电压 3.3V。结果就是 输入0~3300时,输出线性增长。但超过3300,后面全是供电电压5V.将REF改为2.5V后,正常了。

出0入0汤圆

发表于 2012-7-31 13:41:27 | 显示全部楼层
好东西,留着好好学习

出0入0汤圆

 楼主| 发表于 2012-8-3 21:14:03 | 显示全部楼层
我写好的模块。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出20入25汤圆

发表于 2012-8-8 13:59:25 | 显示全部楼层
VREF要小,不然满足不了上式

出0入0汤圆

发表于 2012-10-8 13:43:02 | 显示全部楼层
本帖最后由 peecehood 于 2012-10-8 13:45 编辑

写程式最好还是看清楚规格书,这颗我也有用。
另外,MSP430不是有硬体SPI?

出0入0汤圆

 楼主| 发表于 2012-10-16 00:37:27 | 显示全部楼层
peecehood 发表于 2012-10-8 13:43
写程式最好还是看清楚规格书,这颗我也有用。
另外,MSP430不是有硬体SPI?

哦,用的是MSP430F149,这个没有SPI。是啊,要好好看手册啊!

出0入0汤圆

发表于 2012-10-17 08:07:12 | 显示全部楼层
本帖最后由 peecehood 于 2012-10-17 08:38 编辑

MSP430F149官方的规格书是有硬体的喔,不过没用149所以要看看如何使用。
请参考官方文件中的fet140_spi0_04.c,就是使用TLV5616。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 15:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表