微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > TI模拟硬件电路设计 > 我在做tlc2543对里部点去读取怎么显示不是2047左右?而是2080和1983之间跳动?

我在做tlc2543对里部点去读取怎么显示不是2047左右?而是2080和1983之间跳动?

时间:10-02 整理:3721RD 点击:

我采用的是stc 1t单片机

// 其中 port 为通道: 通道0:port = 0x01 通道1:port = 0x02 通道2:port = 0x04 //

uint read2543(unsigned char port)
{
unsigned int i;
unsigned int ad_value=0;
TCL2543_CS=1;
TCL2543_CS=0;
TCL2543_CLK=0;
EOC=1;
port<<=4;
for(i=0;i<12;i++)
{
if(TCL2543_DOUT)ad_value|=0x01;
TCL2543_ADIN=(bit)(port&0x80);
TCL2543_CLK=1;
//delay();
_nop_();
_nop_();
_nop_();_nop_();_nop_();
TCL2543_CLK=0;
//delay();
_nop_();
_nop_();
_nop_();_nop_();_nop_();
port=port<<1;
ad_value=ad_value<<1;
}
TCL2543_CS=1;
ad_value=ad_value>>1;
return ad_value;
}

void main()

{

ad_ji=read2543(0x0b);
a[4]=ad_ji/1000;
a[5]=ad_ji%1000/100;
a[6]=ad_ji%100/10;
a[7]=ad_ji%10;
display();

}

您好,

您所说的 “里部点” 是指内部测试参考电压吗?

从程序上看需要注意的是: DC的转换结果需要在下一个转换周期才能才能读出。意思是在第一个转换周期内(12个clock)配置转换通道, 然后等待10uS的转换时间后,再用一个转换周期(12个clock)读取出你在上一个转换周期所配置的通道的值。具体请参考数据手册 Figure 9。在CS下拉信号后的第一次转换周期所读取的值是无效的(因为没有上次转换)。

鉴于用I/O口产生时序与ADC 通信,请上传通信时序截图,即CS, CLOCK, DATA OUT, DATA IN 以及 EOC这几个管脚的时序测试结果图。

另外,请问您是怎样驱动参考电压输入引脚的?

Br

Martin

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top