feat(travelers): TCA9535 充电检测 + 键盘背光 + isVbusIn 修复
- 新增 P1.1 CHARGE_DET 充电检测(高电平=充电中),轮询间隔 2s
- Power.cpp isCharging()/isVbusIn() 均使用 TCA9535_CHARGE_DET_PIN 分支
- 新增 P1.0 键盘背光(高电平点亮),按键时亮,5s 无操作自动熄灭
- 修复开机供电维持:POWER_EN 在 Wire.begin() 后立即锁定
- 修复 P1 config 寄存器值 0x0A(之前 0x8D 导致 P1.2 高阻断电)
- ⚠️ 已知问题:TP4057 电压反串导致未充电时 P1.1 仍读高,需硬件修改
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
#include "meshUtils.h"
|
||||
#include "sleep.h"
|
||||
|
||||
#ifdef TCA9535_LORA_RST_VIRTUAL_PIN
|
||||
#ifdef HAS_TCA9535_BUTTON
|
||||
#include "input/TCA9535ButtonThread.h"
|
||||
#endif
|
||||
|
||||
@@ -445,7 +445,10 @@ class AnalogBatteryLevel : public HasBatteryLevel
|
||||
/// so we use EXT_PWR_DETECT GPIO pin to detect external power source
|
||||
virtual bool isVbusIn() override
|
||||
{
|
||||
#ifdef EXT_PWR_DETECT
|
||||
#ifdef TCA9535_CHARGE_DET_PIN
|
||||
// 使用 TCA9535 CHARGE_DET 检测外部供电(高电平=充电中=有外部电源)
|
||||
return tca9535IsCharging;
|
||||
#elif defined(EXT_PWR_DETECT)
|
||||
#if defined(HELTEC_CAPSULE_SENSOR_V3) || defined(HELTEC_SENSOR_HUB)
|
||||
// if external powered that pin will be pulled down
|
||||
if (digitalRead(EXT_PWR_DETECT) == LOW) {
|
||||
@@ -472,7 +475,9 @@ class AnalogBatteryLevel : public HasBatteryLevel
|
||||
return (rak9154Sensor.isCharging()) ? OptTrue : OptFalse;
|
||||
}
|
||||
#endif
|
||||
#ifdef EXT_CHRG_DETECT
|
||||
#ifdef TCA9535_CHARGE_DET_PIN
|
||||
return tca9535IsCharging;
|
||||
#elif defined(EXT_CHRG_DETECT)
|
||||
return digitalRead(EXT_CHRG_DETECT) == ext_chrg_detect_value;
|
||||
#else
|
||||
#if HAS_TELEMETRY && !MESHTASTIC_EXCLUDE_ENVIRONMENTAL_SENSOR && !defined(DISABLE_INA_CHARGING_DETECTION)
|
||||
|
||||
Reference in New Issue
Block a user