打印

TLC549使用过程中出现的问题

[复制链接]
2745|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lsh505|  楼主 | 2007-10-24 23:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各路大侠:
    我在使用TLC549的过程中,ref+接VCC(5V),ref接GND(0V),在使用的过程中发现一个奇怪的现象,0~VCC/2其对应转换的值为00~0xFF, VCC/2 ~VCC对应转换值也是00~0xFF。不知什么原因,请帮忙分析一下.使用的MCU是AT89S52.谢谢.

读取数据程序如下:

uchar Read_TLC549(void)
{
    uchar i,DO;

    T549_CS=1;
    nop;
    T549_CS = 0;
    nop;
    nop;

    for(i=0;i<8;i++)
    {
        T549_CLK=1;
        T549_CLK=0;
        if(T549_DO) DO++;
        DO<<=1;
        nop;
        nop;
    }
    T549_CS=1;
    return(DO);
}

相关帖子

沙发
ayb_ice| | 2007-10-25 07:57 | 只看该作者

是否有内部PGA(没有设置好)。。。

使用特权

评论回复
板凳
zhaoyu2005| | 2007-10-25 08:38 | 只看该作者

看你的程序好像有问题

TLC549在送时钟脉冲前就应该先读一位,然后再送时钟读,第八个时的数据可以不管,你这种方式读出来的数据是错的,实际的最高位在你读的数据的最后一位,一看就没有仔细看datasheet

使用特权

评论回复
地板
lsh505|  楼主 | 2007-10-25 10:50 | 只看该作者

TLC549使用过程中出现的问题

谢谢两位。我再仔细看看。

使用特权

评论回复
5
lsh505|  楼主 | 2007-10-25 23:24 | 只看该作者

TLC549使用过程中出现的问题

看了资料,做了如下修改.情况还是一样.
麻烦各位高手再帮忙看看.谢谢.

uchar Read_TLC549(void)
{
    uchar i,DO;

    T549_CS  = 1;
    T549_CLK = 0;
    nop;
    T549_CS  = 0;
    nop;
    nop;
    nop;

    for(i=0;i<8;i++)
    {
             if(T549_DO) DO++;

        DO<<=1;
        
        T549_CLK = 1;
        T549_CLK = 0;
        nop;
        nop;
    }
    T549_CS = 1;
    //Delay(20);

    return(DO);
}

使用特权

评论回复
6
lsh505|  楼主 | 2007-10-26 00:19 | 只看该作者

TLC549使用过程中出现的问题

问题已解决.下面程序调试通过

uchar Read_TLC549(void)
{

    uchar i,DO;

    T549_CS  = 1;
    T549_CLK = 0;
    T549_CS  = 0;
    nop;
    nop;

    for(i=0;i<8;i++)
    {
        if(T549_DO) DO++;
        DO<<=1;
        
        T549_CLK = 0;
        T549_CLK = 1;
        
    }
    T549_CLK = 0;    //第八个下降沿
    T549_CS = 1;

    return(DO);
}

使用特权

评论回复
7
wxdx8320| | 2008-11-22 21:57 | 只看该作者

学习了

恭喜!

使用特权

评论回复
8
464912516| | 2009-7-13 09:09 | 只看该作者

学习一下

你那个程序里的if(T549_DO) 是什么意思啊?T549_DO是芯片上的D0口吗?为什么要这样写?

使用特权

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

本版积分规则

2

主题

24

帖子

0

粉丝