我已将 ESP-32 Wroom32E(使用 IDF 和 API)与心脏监测传感器 ADS1293 连接起来。我使用简单的 SPI 协议来读取寄存器值。我的 SPI 协议在所有 SPI 模式 - 模式 0,1 和 3 上都工作得很好,但是,模式 2 没有给我任何寄存器值。
我不知道是硬件问题还是我遗漏了什么。
配置设备结构的代码片段:
spi_device_interface_config_t devcfg={
.clock_speed_hz=10*1000*1000, //Clock out at 10 MHz
.mode=0, //SPI mode 0: CPOL:-0 and CPHA:-0
.spics_io_num=PIN_NUM_CS, //This field is used to specify the GPIO pin that is to be used as CS
.queue_size=7, //We want to be able to queue 7 transactions at a time
};
我已经检查了所有模式 - 0、1、2 和 3。我正在通过除模式 2 之外的所有 SPI 模式接收数据。
听起来您的电容式传感器设置面临着有趣的挑战。你检查过你的PCB的接地和屏蔽吗?有时,外部电源的干扰可能会扰乱传感器读数。此外,请确保您的降压转换器提供稳定的电源,没有任何波动。
如需更深入的故障排除和解决方案,您可能会发现我们关于 ESP32 上的 MicroPython 的终极免费指南很有帮助。它涵盖了一系列主题,包括硬件接口,可以为解决您的问题提供见解。在这里查看:ESP32 上的 MicroPython 指南