- lm73cimk的configuration register即0x01寄存器配置值0xc0后再配置0x40复位后,读出来的温度值完全不对
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
寄存器1h配置为C0,bit7=1的话,使得LM73进入power down状态。然后又写为0恢复正常工作状态,那么不论是写1还是写1,是否都等待了最大转换时间?
比如写1,等待最大转换时间之后,LM73 进入power down状态,然后又写为0,再等待最大转换时间才能保证读取的值准确无误。
请问这款传感器的配置寄存器配置后是掉电也保存的嘛?而且配置完后发现读出来的温度值是0℃、2℃、4℃、6℃…这样一直累加的,即使更新程序不配置该寄存器重新上电也是这种现象
掉电,寄存器恢复默认值,不会保存。初始状态的各个寄存器的值如下:
Temp: 7FFCh
Config: 40h
Thigh: 7FE0h
Tlow: 8000h
Status: 08h
ID: 0190h
而且配置完后发现读出来的温度值是0℃、2℃、4℃、6℃…这样一直累加的
您测试的是什么的温度?在新的转换完成之前,指针寄存器里的值都是保存的上一次转换的值。
常温情况下,我是配置完Config寄存器后,将Status寄存器设置为14位精度,然后读取的Temp寄存器的值就是全部不对的温度值(然后我尝试掉电将这些配置都不配,直接读取温度值也都是不对的)
那应该还是上电的问题,power supply的斜升太慢的话,会导致寄存器不能正常加载,读取的温度值也是不正确的。
您可以把您的Power supply的时序发来看下,或者您这边自己看下,从0V上升到2.7V需要多长时间?
温度传感器被板卡盖住了,所以也量不到具体时序,不过还有个现象就是无论我读写地址写啥(按正常应该写地址0x9c,读地址0x9d),读出来的值现象一样
地址为0x9C,说明是使用的LM73-1。 先确认下地址没有错吧?因为如果使用的是LM73-0,地址是不一样的。
无法测量时序,也就不知道当发送完地址之后是否有收到ACK信号,无法对芯片进行分析,包括上电时序,I2C的时序等。
比如地址正确,收到ACK信号之后,再发送寄存器地址,再确认是否有收到ACK信号等,根据时序去分析问题的原因。
请问如果我设置寄存器1h的值为c0后,等待最大转换时间再读取当前1h寄存器值为复位值0x40,这种是不是说明配置就不成功?
寄存器1h的bit2和bit3当回读的时候会恢复为0.其他几位应该不会自动恢复到默认值的。
读取的时候有收到ACK信号吗?或者其他寄存器的值也是写不进去吗? 通过是否有收到ACK信号就能判断寄存器是否读写成功。