数字温度传感器JHM3011的优势和应用
JHM3011是北京js555888金沙开发的一款高稳定性,高可靠性,高响应速度的单线数字接口的温度传感器,可提供12位温度结果,具有 0.046℃的分辨率,且无需校准即可在0℃到50℃的温度范围内实现高达 ±0.5℃的精度;具有单线接口,可直接连接GPIO。
JHM3011同时具有低功耗的特点,可更大程度减少自发热对测量精度的影响。芯片可在2.7V至5.5V电压范围内运行,电流典型值为0.5mA,其功耗与PT100 RTD通常所需功耗相当,摒弃了RTD的许多复杂的处理过程(如精密基准、匹配的线迹、复杂的算法和校准),从而简化了设计工作。
有效的数据位总是以下降开始,逻辑‘1’采用了75%的占空比,而逻辑‘0’采用了25%的占空比。数据包的起始位总是“start”位,占空比为50%。数据包之间的停止时间至少为32μs。
温度传感器的数字校准
当JHM3011被设置为数字输出时,它可以将所测得的温度信息以数字形式提供给用户。这些温度信息在输出之前也经过了DSP算法的数字校准。JHM3011的温度校准算法如下式所示:
当JHM3011被设置为四字节数据输出时,温度信息由最后两字节的14bit数据提供,用户可以方便地使用下式将T值转换成为实际的温度值:
单片机接收OWI信号
uint8 ReadByte(uint8 *data)
{
int8 i;
uint32 StartCount = 0;
uint8 RecData = 0;
uint8 PrityData = 0;
uint32 cnt = 0xffff;
uint8 SO_bit = 10;
IO0DIR |= BUF_DIR; //单总线输出
IO0DIR &= ~(SO_MCU); //单总线输入
IO0SET |= BUF_DIR; //缓冲器B到A
T1MR0 = 0xFFFFFFFF;
T1TCR = 0x01;
if(!WaitSO(1)) return 0;
T1TC = 0;
if(!WaitSO(0)) return 0; //低电平
StartCount = T1TC;
T1MR0 = StartCount;
T1TC = 0;
for(i=0;i<8;i++)
{
RecData = (RecData<<1);
if(!WaitSO(1)) return 0; //高电平
T1TC = 0;
T1IR = 0x01;
while(0==(T1IR&0x01))
{
cnt--;
if(cnt == 0)
return 0;
}
T1IR = 0x01;
if(bit(IO0PIN,SO_bit)) //若为高电平
{
RecData++;
PrityData++;
}
else //若为低电平
{
if(!WaitSO(0)) return 0; //等待低电平结束
}
}
PrityData %= 2;
if(!WaitSO(1)) return 0; //高电平
T1TC = 0;
T1IR = 0x01;
while(0==(T1IR&0x01)); //等待中断标志位
if(PrityData != bit(IO0PIN,SO_bit))
{
return 0x02;
}
if(!WaitSO(0)) return 0; //等待低电平结束
*data = RecData;
return 0x01;
}
主函数,得到温度数据
int main (void)
{
uint8 ret, flag;
float bridge,temp;
unsigned char recData[4];
sigleWireInit();
while(flag == 1)
{
flag = DatabagJudge();
}
for(i=0;i<4;i++) //接收4字节数据包
{
ret = ReadByte(&recData[i]);
}
if(recData[2]&0x80) temp = temp-4096; //温度转换成摄氏度
temp = (temp+2048)*190/4096-40;
return 0;
}
js555888金沙老品牌
致力于数模混合集成电路设计,传感器芯片产品具备高稳定性、高可靠性、高性价比等特点,助力客户实现成功。
联系我们
北京市海淀区海淀留学人员发展园(中关村发展大厦)A座A313
南京浦口区双峰路69号智慧谷核心研发中心A-14
深圳南山区深圳国际创新谷八栋A座1801
更多产品信息,欢迎致电咨询:
010 82600852