使用带有26 MHx XTAL的ESP32的ESP-IDF读取DS18b20传感器

时间:2019-01-05 23:50:51

标签: esp32

我可以使用此repository中提供的示例代码来读取DS18B20传感器。

使用标准的Espressif ESP32-WROOM-32(又名ESP32-DevKitC),它使用40 MHz XTAL,效果很好。

我无法使用{26} XTAL使用Allnet-IOT-WLAN运行同一示例。

我怀疑问题与RMT initialization有关。初始化使用:

rmt_tx.clk_div = 80;

我没有为clk_div尝试过其他设置。

有人知道如何将DS18B20传感器与ESP-IDF一起使用,而是使用具有26 MHz XTAL的板而不是更标准的40 MHz板吗?

ESP32-WROOM-32输出(正常工作)

I (0) cpu_start: Starting scheduler on APP CPU.
Find devices:
  0 : d4000008e40d7428
  1 : f8000008e3632528
Found 2 devices
Device 1502162ca5b2ee28 is not present

Temperature readings (degrees C): sample 1
  0: 22.3    0 errors
  1: 21.8    0 errors

Temperature readings (degrees C): sample 2
  0: 22.3    0 errors
  1: 21.9    0 errors

Allnet-IOT-WLAN输出(不起作用)

I (0) cpu_start: Starting scheduler on APP CPU.
Find devices:
Found 0 devices
E (6780) owb_rmt: rx_items == 0
E (6880) owb_rmt: rx_items == 0
E (6980) owb_rmt: rx_items == 0

1 个答案:

答案 0 :(得分:0)

使用不同的XTAL时钟频率进行RMT初始化没有区别。

D (2319) rmt: Rmt Tx Channel 1|Gpio 25|Sclk_Hz 80000000|Div 80|Carrier_Hz 0|Duty 35
D (2319) intr_alloc: Connected src 47 to int 13 (cpu 0)
D (2319) rmt: Rmt Rx Channel 0|Gpio 25|Sclk_Hz 80000000|Div 80|Thresold 77|Filter 30

两者都使用相同的80 MHx源。

我使用了错误的引脚图。我已经用更多的simple example测试了RMT,发现引脚排列错误。

DS18b20传感器与带有esp32-ds18b20库的26 MHz XTAL一起很好地工作。