EC800K的对接敏源的OneWire传感器会导致DUMP

模组:EC800KCNLC

版本信息:EC800KCNLCR07A05M04_OCPU_QPY/‘sysname=EC800K-CNLC’, ‘nodename=EC800K’, ‘release=1.13.0’, ‘version=v1.12 on Fri_Jun_20_2025_8:22:05_PM’, ‘machine=EC800K with QUECTEL’, ‘qpyver=V0005’)

使用machine.OneWire对接敏源的单总线温度传感器,型号M1820,进行压测的时候,会产生DUMP。

测试代码逻辑:

  1. 打开onewire
  2. 按流程发出测量并读回数据,按协议进行校验
  3. 休眠1秒,重复第二步

连续几十次后,就会产生DUMP,经过摸索测试,有如下规律:

  1. 无网的情况下,出现问题的时间会比较长
  2. 如果忽略错误,不管是否连接传感器,或者更换其它IO脚,依然会产生DUMP
  3. 经过压测EC600U上不会产生DUMP

经过不断测试,如果调整到读2字节,目前测试不会产生DUMP,但这样就舍弃完整协议,无法校验数据合法性。

问题如下:

  1. 该DUMP是否因为读多个字节产生?
  2. 对于超过二字节的单总线协议在EC800K系上有处理办法吗?

用这个接口试一下class OneWire – 单总线 - QuecPython

QuecPython 由于采用脚本语言开发,其实际执行速度较慢,因此对于一些对性能和时间精度(时序)要求较高的场合不太能胜任,建议换成aht20温湿度传感器

image

后期QuecPython请移步QuecPython类别下提问. 谢谢.

我用的就是 class OneWire – 单总线 - QuecPython 就是这个接口做的。

敏源的单总线温度传感器协议长度是9字节(最后一字节是CRC),用这个接口读9个字节,在EC800K上就会产生DUMP,而且我测试了好多块EC800K,都是一样的表现。

但是,同样的测试用例,在EC600U上没问题。