AD主要用于采集热电偶温度的。 20bit,单通道,2线串口,
Max11208与2线接口兼容并用SCLK和RDY'/DOUT数据的串行通讯。在这种模式下,所有控制都是通过时间的SCLK高或低相位实现。2线接口只允许数据被读出通过SCLK和RDY'/DOUT端子。到SCLK将转换数据输出提供串行时钟。 SCLK和RDY'/DOUT对数据进行信号准备,在SCLK脉冲应用时读数据。SCLK和RDY'/DOUT默认为高电平。在转换结束,当数据可用时,max11208拉SCLK和RDY'/DOUT低并保持低直到时钟脉冲施加在SCLK输入;对应用在SCLK时钟脉冲,SCLK和RDY'/DOUT在每一个SCLK上升沿输出转换数据。为了监测数据的可用性,通过提供一个第25脉冲,读完20位数据后拉SCLK和RDY'/DOUT高。使用此2线接口的不同的操作模式,在下面的章节中描述。 根据转换读数据 为了预测数据的有效性,使用检索数据通过SCLK和RDY'/DOUT输出。最后一位读完时,SCLK和RDY'/DOUT输出闲置,除非提供一个第25个脉冲,引起SCLK和RDY'/DOUT闲置为高。当转换数据有效,SCLK和RDY'/DOUT拉低。 对于数据读时序图如图1所示。一旦检测到SCLK和RDY'/DOUT低电平,根据时钟脉冲输出数据。数据转换高位先输出,并且为二进制补码形式。一旦所有数据都转换输出,第二十五SCLK必须拉就绪/输出端子回到空闲状态。见图2。如果数据不是在下一次转换数据更新前读完,旧的数据丢失,因为新的数据覆盖旧的值。 unsigned long read_max11208()
{
uchar i;
ulint data_out=0x00000000; //定义了32位的变量
ADC_sclk=0; //
if((data_temp&0x80)==0x00)
for(i=0;i<20;i++)
{
ADC_sclk=0;
_nop_();
ADC_sclk=1;
_nop_();
data_out = (data_out << 1)|data_temp;
}
return data_out;
}
感觉上不太对,还有个疑问是,在采集后得到数据后进行处理,需要分成一个16位和一个4的数据,还是分成3个八位的数据。
|