最近在DIY一款板子,集成了CSPS电源6路12V供电控制/监控,环境温湿度,2路NTC采集,2路风扇控制
板子都打了好几版,其他功能一切正常,只有ESP32S3读取CSPS电源I2C数据出了问题,无法识别不了,后来又买了ESP32C3/8266开发板,神奇的事情发生了
同样的YAML代码,ESP32S3/C3都无法识别CSPS电源(核查过代码跟引脚IO都是正确的),但换上8266就能马上扫描出并正确识别
8266log可以看到扫描出CSPS地址是0x57 0x5F,频率是100kHz
立创开源广场上的项目都是用8266,没找到解决方法。
请教下ESP32S3/C3在读取I2C上,和8266是不是有区别?怎么解决?
以下是8266上的代码:
esphome:
name: csps-power
friendly_name: CSPS_Power
includes:
- CSPS/main.hpp
- CSPS/KCORES_CSPS.h
- CSPS/KCORES_CSPS.cpp
libraries:
- "Wire"
esp8266:
board: nodemcuv2
logger:
level: NONE
api:
encryption:
key: ""
ota:
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Csps-Power Fallback Hotspot"
password: "1145141919810"
captive_portal:
- id: bus_a
sda: GPIO14
scl: GPIO12
scan: true
frequency: 100kHz
number:
- platform: template
update_interval: 5s
id: csps_rpm
name: "Power Fan RPM"
optimistic: true
min_value: 500
max_value: 20000
step: 50
on_value:
then:
- lambda: |-
auto power = new CSPSPower();
App.register_component(power);
power->set_fan_rpm(id(csps_rpm).state);
text_sensor:
- platform: custom
lambda: |-
auto power = new CSPSPower();
App.register_component(power);
return {power->name,power->ct};
text_sensors:
- name: "Power Name"
- name: "CT Code"
sensor:
- platform: custom
lambda: |-
auto power = new CSPSPower();
App.register_component(power);
return {power->fan_speed, power->temp1, power->temp2, power->power_out, power->power_in, power->current_out, power->current_in, power->voltage_out, power->voltage_in};
sensors:
- name: "Fan Speed"
accuracy_decimals: 0
unit_of_measurement: RPM
- name: "Temp 1"
accuracy_decimals: 1
unit_of_measurement: °C
- name: "Temp 2"
accuracy_decimals: 1
unit_of_measurement: °C
- name: "Power Out"
accuracy_decimals: 0
unit_of_measurement: W
- name: "Power In"
accuracy_decimals: 0
unit_of_measurement: W
- name: "Current Out"
accuracy_decimals: 1
unit_of_measurement: A
- name: "Current In"
accuracy_decimals: 1
unit_of_measurement: A
- name: "Voltage Out"
accuracy_decimals: 1
unit_of_measurement: V
- name: "Voltage In"
accuracy_decimals: 1
unit_of_measurement: V
|