注:敏源传感高精度数字温度传感芯片M601计算出的温度值一直为40.000℃,也有可能是由测温读温中途芯片无响应或CRC校验错误等判断处返回FALSE所导致,有可能寄存器是0xFF,这里特指寄存器值为0x00不变的情况。
出现这种情况,有如下几种可能性:
(1)上拉电阻没接:这种情况下,复位脉冲后是有 "存在脉冲" 的,但并不代表芯片一定响应了,这里因为没接上拉电阻,所以只要是切换到输入方向,总线必为低电平,所以不确定这里IC到底有没有响应。
解决方法:DQ与VDD间要有上拉电阻,如用多点级联的话可根据IC的数量及时序来选用小一些的上拉电阻,比如4.7k或1k。
(2)DQ线与GND短路:这种情况示波器看波形是全程低电平,没有主机的波形,用万用表测量有短路的情况。
解决方法:仔细排查,断开短路的地方。
(3)时序问题:程序延时不准,导致复位脉冲后没有读到存在脉冲(此时若用示波器或逻辑分析仪看波形,复位脉冲后是有存在脉冲的),返回FALSE并退出测温或读取流程。
解决方法:例程文件里给的延时皆为实际时间,用示波器或逻辑分析仪测量程序内1us与实际时间1us的比例,按这个比例调整程序里测量读取温度期间所有的延时,保证其对应的实际时间与例程中给的延时时长相符。