diff --git a/components/platform/src/runtime/platform_core_runtime.c b/components/platform/src/runtime/platform_core_runtime.c index e035dcc..849a40b 100644 --- a/components/platform/src/runtime/platform_core_runtime.c +++ b/components/platform/src/runtime/platform_core_runtime.c @@ -284,7 +284,7 @@ esp_err_t platform_init(void) platform_power_hold_init(); /* 新板 GPIO4/5 分别为 LCD BLK/CS;不启动旧灯带和脉冲任务。 - * GPIO10 摇臂驱动尚未接入,保持硬件下拉关断。 */ + * GPIO9 摇臂驱动尚未接入,保持硬件下拉关断。 */ #if CONFIG_TQ_STEPPER_ENABLE err = platform_stepper_driver_init(); diff --git a/docs/firmware-pin-usage.md b/docs/firmware-pin-usage.md index 2f58ee0..130c11c 100644 --- a/docs/firmware-pin-usage.md +++ b/docs/firmware-pin-usage.md @@ -20,7 +20,7 @@ No new GPIO option has been added for full-charge sensing or the rocker motor. | 5 | `CONFIG_TQ_SCREEN_SPI_CS_GPIO` | Output | LCD CS | | 6 | `CONFIG_TQ_SCREEN_DC_GPIO` | Output | LCD data/command; no old switch flying wire | | 7 | `CONFIG_TQ_SCREEN_RESET_PIN` | Output | LCD reset, active low | -| 9 | `CONFIG_MULTIMODAL_AUDIO_PA_GPIO` | Output | Audio amplifier enable | +| 10 | `CONFIG_MULTIMODAL_AUDIO_PA_GPIO` | Output | Audio amplifier enable | | 11 | `CONFIG_TQ_CALIBRATION_SWITCH_GPIO` | Input | Switch 1 / calibration, active low with pull-up | | 12 | `CONFIG_TQ_SLOT_SWITCH_GPIO` | Input | Switch 2 / slot trigger, active low with pull-up | | 13 | `CONFIG_MULTIMODAL_PTT_BUTTON_GPIO` | Input | TTP223 touch output / PTT; previous active-low/pull-up settings retained pending measured polarity | @@ -40,7 +40,7 @@ No new GPIO option has been added for full-charge sensing or the rocker motor. The old `platform_io_effects_init()` startup call has been removed: its GPIO4 RMT and GPIO5 pulse workers conflict with new LCD BLK/CS. The old implementation -is retained as source, but no startup path calls it. GPIO10 motor control has +is retained as source, but no startup path calls it. GPIO9 motor control has not been enabled as a replacement. ## Disabled Or Not Connected In Defaults @@ -52,7 +52,7 @@ not been enabled as a replacement. | `CONFIG_TQ_RESET_BUTTON_ENABLE` | Disabled | The old optional reset default GPIO14 now belongs to stepper IN1; configure separate physical wiring before enabling | | `CONFIG_TQ_BATTERY_SHUTDOWN_WAKE_BUTTON_GPIO` | -1 | No additional deep-sleep wake button | | GPIO8 / 充满检测 | Input | `CONFIG_TQ_BATTERY_FULL_GPIO=8`, low-active TP4056 STDBY# via Q8 | -| GPIO10 / 马达控制 | Not consumed | Rocker-motor gate held off by external R30 pull-down; no new option/driver added | +| GPIO9 / 马达控制 | Not consumed | Rocker-motor gate held off by external R30 pull-down; no new option/driver added | | GPIO3 / 35 / 36 / 37 / 45 / 46 | NC on schematic | Do not infer arbitrary availability from NC | Mechanical switches use pull-up only. PTT and charger active levels are retained diff --git a/docs/gpio-board-adaptation.zh-CN.md b/docs/gpio-board-adaptation.zh-CN.md index f9d9c9f..222c49a 100644 --- a/docs/gpio-board-adaptation.zh-CN.md +++ b/docs/gpio-board-adaptation.zh-CN.md @@ -1,6 +1,6 @@ # 新旧板 GPIO 对比与固件适配位置 -核对日期:2026-10-23。初始对照保留在下文;当前已应用新板引脚映射及GPIO8满电检测,GPIO10马达仍未接入。验证结果见文末,未烧录或进行实机验收。 +核对日期:2026-10-27。已重新核对主控符号:模组焊盘17为GPIO9马达控制,焊盘18为GPIO10 PA_CTRL;此前文档和固件将二者颠倒,本次已纠正。初始对照保留在下文;当前已应用新板引脚映射及GPIO8满电检测,GPIO9马达仍未接入。验证结果见文末,未烧录或进行实机验收。 ## 对照基线 @@ -20,7 +20,7 @@ 菜单整理:GPIO/电平/上下拉配置已集中到 `TQ Cat Configuration -> Board Hardware Configuration (GPIO)` 单页,按 LCD、音频、 输入、步进、电源/电池分区。配置名及依赖保持原样;默认值及本地有效配置已更新为新板映射, -本次充电逻辑重写已新增 GPIO8 充满输入及有效电平配置,GPIO10 马达仍未接入。旧硬编码 GPIO4/5 功能保留源码, +本次充电逻辑重写已新增 GPIO8 充满输入及有效电平配置,GPIO9 马达仍未接入。旧硬编码 GPIO4/5 功能保留源码, 平台初始化已移除其启动调用,不再创建这些任务。 下文 Kconfig 旧行号属于对照时快照,搬迁后应按配置名定位。 @@ -40,7 +40,7 @@ | 电池电压检测 Power_t / 电量检测 | 9 | 9 | **17** | `TQ_BATTERY_ADC_GPIO`;`platform_battery_driver.c` | | 充电状态 Charge / 充电检测 | 10 | 10 | **18** | `TQ_BATTERY_CHARGE_GPIO`;电池驱动、双路轮询及深睡唤醒链路 | | 独立充满检测 | 未接入 MCU | 无 | **8** | `TQ_BATTERY_FULL_GPIO` / `TQ_BATTERY_FULL_ACTIVE_LEVEL`;见后文 | -| 功放 PA_CTRL | 11 | 11 | **9** | `MULTIMODAL_AUDIO_PA_GPIO`;音频 codec 初始化及运行时使能 | +| 功放 PA_CTRL | 11 | 11 | **10** | `MULTIMODAL_AUDIO_PA_GPIO`;音频 codec 初始化及运行时使能 | | 开关1 / 原 SW1 | 12 | 校准输入 12 | **11** | 若保持开关1作校准:`TQ_CALIBRATION_SWITCH_GPIO` | | 开关2 / 原 SW2 | 13 | 抽签输入 13 | **12** | 若保持开关2作抽签:`TQ_SLOT_SWITCH_GPIO` | | TTP223 触摸输出 | 3 | PTT 输入 3 | **13** | 若保持触摸作 PTT:`MULTIMODAL_PTT_BUTTON_GPIO`;有效电平另核对 | @@ -48,9 +48,9 @@ | ULN2003 IN2 | 48 | 48 | **21** | `TQ_STEPPER_IN2_GPIO`;同上 | | ULN2003 IN3 | 47 | 47 | **47** | `TQ_STEPPER_IN3_GPIO`;保持 | | ULN2003 IN4 | 21 | 21 | **48** | `TQ_STEPPER_IN4_GPIO`;不能与 IN2 互换 | -| 直流摇臂马达控制 | 旧图 Swing 与 LCD CLK 共 GPIO8 | 外接脉冲输出 GPIO5 | **10** | 当前无独立 Kconfig;改造 `platform_io_effects.c` 脉冲输出及初始化策略 | +| 直流摇臂马达控制 | 旧图 Swing 与 LCD CLK 共 GPIO8 | 外接脉冲输出 GPIO5 | **9** | 当前无独立 Kconfig;改造 `platform_io_effects.c` 脉冲输出及初始化策略 | | 外接 WS2812 灯带 | 旧 TP_INT/GPIO4 被固件复用 | 硬编码 4 | 新图无专用接口 | 必须禁用或另行确认外接布线,不能继续占用 GPIO4 | -| 旧外接脉冲输出 | 旧 TP_SDA/GPIO5 被固件复用 | 硬编码 5 | GPIO5 已作 LCD CS | 必须迁移/禁用;是否由新 GPIO10 马达替代,由实际机械用途确认 | +| 旧外接脉冲输出 | 旧 TP_SDA/GPIO5 被固件复用 | 硬编码 5 | GPIO5 已作 LCD CS | 必须迁移/禁用;是否由新 GPIO9 马达替代,由实际机械用途确认 | 按键语义不是原理图决定的:图纸只定义开关1、开关2和触摸输出;上表延续当前固件“校准 / 抽签 / PTT”分工。如果产品要调整按键用途,应另改控制层事件策略。 @@ -63,8 +63,8 @@ | 3 | MCU 标 NC | 迁走当前 PTT;不再等候 GPIO3 触摸事件 | | 4 / 5 / 6 / 7 | LCD BLK / CS / DC / RES | 修改显示配置;释放旧 GPIO4/5 输出;不要恢复旧 GPIO6 开关飞线配置 | | 8 | 充满检测 | 输入;不得再输出 LCD 时钟 | -| 9 | PA_CTRL | 输出;不得再按电池 ADC 初始化 | -| 10 | 摇臂马达 MOS 控制 | 输出;不得再按充电输入初始化 | +| 9 | 摇臂马达 MOS 控制 | 当前不启用驱动;硬件下拉关断 | +| 10 | PA_CTRL | 输出;高电平使能功放 | | 11 / 12 | 开关1 / 开关2 | 输入;不得把 GPIO11 继续交给功放 | | 13 | TTP223 触摸输出 | 输入;迁移 PTT 后释放原抽签占用 | | 14 | 步进 IN1 | 输出;不得启用旧默认 GPIO14 Wi-Fi 重置键 | @@ -86,8 +86,8 @@ | [sdkconfig.defaults](../sdkconfig.defaults) | PTT 约 195 行;音频约 211 行;LCD/电机/电池约 298–346 行 | 保存新板默认引脚;保持其他未提交配置 | | [main/Kconfig.projbuild](../main/Kconfig.projbuild) | 文件顶部 `Board Hardware Configuration (GPIO)` 菜单 | 已同步现有项新板默认值及帮助文案;新功能未加选项 | | [lcd_direct.c](../components/platform/src/lcd_direct.c) | 约 1634 行背光、1660 行 GPIO、1680 行后 SPI/panel 初始化 | 引脚已有配置化,通常不改驱动;新图注明 BLK 仅作使能,先用 0/100% 验证,不能直接认定支持调光 | -| [platform_io_effects.c](../components/platform/src/platform_io_effects.c) | 30/31 行 GPIO4/5 硬编码;186 行脉冲任务;277 行初始化 | 这是必须处理的代码冲突。先禁用旧 RMT/脉冲启动,再决定马达 GPIO10 的受控实现 | -| [platform_core_runtime.c](../components/platform/src/runtime/platform_core_runtime.c) | `platform_init()` 电源保持初始化之后 | 已移除旧 GPIO4/5 功能的启动调用;GPIO10 马达未启用 | +| [platform_io_effects.c](../components/platform/src/platform_io_effects.c) | 30/31 行 GPIO4/5 硬编码;186 行脉冲任务;277 行初始化 | 这是必须处理的代码冲突。先禁用旧 RMT/脉冲启动,再决定马达 GPIO9 的受控实现 | +| [platform_core_runtime.c](../components/platform/src/runtime/platform_core_runtime.c) | `platform_init()` 电源保持初始化之后 | 已移除旧 GPIO4/5 功能的启动调用;GPIO9 马达未启用 | | [platform_stepper_driver.c](../components/platform/src/platform_stepper_driver.c) | 34–37 行相位宏;331 行 GPIO 初始化 | 使用 Kconfig,不应改相位表来代替正确引脚配置 | | [platform_battery_driver.c](../components/platform/src/platform_battery_driver.c) | 约 136 行状态输入;158 行 ADC 映射;296 行采样状态 | 迁移 ADC/充电输入;新增独立充满输入及原始样本处理 | | [platform.h](../components/platform/include/platform.h) | 约 406 行电池硬件样本契约 | 如接入充满检测,扩展平台硬件样本,保留未知/无效状态 | @@ -146,13 +146,13 @@ GPIO18仍为低有效深睡唤醒源,GPIO8不参与唤醒。唤醒保护先轮 ### 5. 电机电源与顺序 -新板步进电机由下板 Boost-5V、ULN2003 驱动;直流摇臂马达由上板 3.3V、Q3 AO3400A 低侧控制,GPIO10 高电平导通,R30 100kΩ 下拉提供关断偏置。二者不是同一驱动,不能把 GPIO10 加进四相步进表。 +新板步进电机由下板 Boost-5V、ULN2003 驱动;直流摇臂马达由上板 3.3V、Q3 AO3400A 低侧控制,GPIO9 高电平导通,R30 100kΩ 下拉提供关断偏置。二者不是同一驱动,不能把 GPIO9 加进四相步进表。 新板步进顺序必须为 IN1=14、IN2=21、IN3=47、IN4=48。原 GPIO45 在新图为 NC。首次验证需确认方向、校准开关及有界停止;供电变化不能仅靠 GPIO 表验证。 ## 已应用的新板配置 -以下已有配置项均已写入 Kconfig 默认值、sdkconfig.defaults 和本地 sdkconfig。PTT 有效电平仍待实测;GPIO8现已接入,GPIO10仍未接入。 +以下已有配置项均已写入 Kconfig 默认值、sdkconfig.defaults 和本地 sdkconfig。PTT 有效电平仍待实测;GPIO8现已接入,GPIO9仍未接入。 ```ini CONFIG_TQ_SCREEN_BACKLIGHT_GPIO=4 @@ -165,7 +165,7 @@ CONFIG_TQ_SCREEN_SPI_MISO_GPIO=-1 CONFIG_TQ_BATTERY_ADC_GPIO=17 CONFIG_TQ_BATTERY_CHARGE_GPIO=18 -CONFIG_MULTIMODAL_AUDIO_PA_GPIO=9 +CONFIG_MULTIMODAL_AUDIO_PA_GPIO=10 CONFIG_TQ_POWER_HOLD_GPIO=-1 CONFIG_TQ_CALIBRATION_SWITCH_GPIO=11 @@ -179,12 +179,12 @@ CONFIG_TQ_STEPPER_IN3_GPIO=47 CONFIG_TQ_STEPPER_IN4_GPIO=48 ``` -平台初始化已停止调用旧 GPIO4/5 输出模块;GPIO8满电输入已接入,GPIO10马达仍未接入。音频 SDA=1、SCL=2、MCLK=38、BCLK=39、DOUT=40、WS=41、DIN=42 保持。 +平台初始化已停止调用旧 GPIO4/5 输出模块;GPIO8满电输入已接入,GPIO9马达仍未接入。音频 SDA=1、SCL=2、MCLK=38、BCLK=39、DOUT=40、WS=41、DIN=42 保持。 ## 实施顺序与验证边界 1. 先在新板配置下禁用旧 GPIO4/5 任务,保持马达默认关闭;必要时首次调试暂时关闭开机转盘校准。 -2. 同步 defaults、Kconfig 和本地有效配置,核对 GPIO8/17/18 全部为输入用途、GPIO9 为 PA、GPIO14 无 reset 冲突。 +2. 同步 defaults、Kconfig 和本地有效配置,核对 GPIO8/17/18 全部为输入用途、GPIO10 为 PA、GPIO14 无 reset 冲突。 3. 验证 LCD、音频、开关1/2及触摸有效电平,再分别验证步进相序和摇臂马达,最后启用开机校准。 4. 测量 ADC 与 VBAT、充电/充满两路真值表,验证拔插充电、满电提示、低电量及深睡唤醒。 5. 实施后执行 ESP-IDF 5.5.4 构建;修改显示配置/机制后执行仓库列出的五个显示回归脚本,并按实际变更补充检查。检查联网、语音与电机同时运行时的稳定性。 diff --git a/docs/gpio-map.md b/docs/gpio-map.md index 59a1fee..183c6c7 100644 --- a/docs/gpio-map.md +++ b/docs/gpio-map.md @@ -26,8 +26,8 @@ Configuration (GPIO)`; see [firmware usage](firmware-pin-usage.md). | 14 | GPIO20 | ESP_D_P | Bidirectional | USB D+ | Type-C | | 15 | GPIO3 | NC | N/A | No assigned net | Old touch input moved to GPIO13 | | 16 | GPIO46 | UNASSIGNED | N/A | No connection assigned | Reserved; no signal assigned | -| 17 | GPIO9 | PA_CTRL | Output | Audio amplifier enable | Not a battery ADC input on this board | -| 18 | GPIO10 | 马达控制 | Output | Q3 low-side DC rocker-motor control | Not consumed by current firmware; external R30 pull-down | +| 17 | GPIO9 | 马达控制 | Output | Q3 low-side DC rocker-motor control | Not consumed by current firmware; external R30 pull-down | +| 18 | GPIO10 | PA_CTRL | Output | Audio amplifier enable | High level enables PA; external R29 pull-down | | 19 | GPIO11 | 开关1 | Input | Turntable calibration switch | External 10 kOhm pull-up; active low | | 20 | GPIO12 | 开关2 | Input | Slot/fortune input | External 10 kOhm pull-up; active low | | 21 | GPIO13 | 触摸铜箔 | Input | TTP223 output / PTT | Verify actual touch polarity; firmware retains previous active-level setting | diff --git a/docs/新板充电检测.zh-CN.md b/docs/新板充电检测.zh-CN.md index d91e89f..2c68e69 100644 --- a/docs/新板充电检测.zh-CN.md +++ b/docs/新板充电检测.zh-CN.md @@ -6,7 +6,7 @@ 新板正式 TP4056 电路的 CHRG# 经 Q7 接 GPIO18,STDBY# 经 Q8 接 GPIO8。 两路默认低有效,3.3V上拉。配置位于 `TQ Cat Configuration -> Board Hardware -Configuration (GPIO)`;GPIO10马达没有接入。 +Configuration (GPIO)`;GPIO9马达没有接入。 | GPIO18 | GPIO8 | 确认后的领域状态 | | --- | --- | --- | diff --git a/main/Kconfig.projbuild b/main/Kconfig.projbuild index 2db891e..594ac80 100644 --- a/main/Kconfig.projbuild +++ b/main/Kconfig.projbuild @@ -104,9 +104,9 @@ menu "TQ Cat Configuration" config MULTIMODAL_AUDIO_PA_GPIO int "PA enable GPIO (-1 to disable)" - default 9 + default 10 help - Default from docs/gpio-map.md (PA_CTRL on IO9). + Default from docs/gpio-map.md (PA_CTRL on IO10). comment "Buttons & Digital Inputs" diff --git a/sdkconfig.defaults b/sdkconfig.defaults index fe583ac..38410a2 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -343,4 +343,4 @@ CONFIG_TQ_BATTERY_EMERGENCY_VOLTAGE_MV=3350 CONFIG_TQ_BATTERY_WAKE_RECOVERY_VOLTAGE_MV=3550 CONFIG_TQ_BATTERY_SHUTDOWN_WAKE_BUTTON_GPIO=-1 CONFIG_TQ_BATTERY_SHUTDOWN_PROMPT_FILE="audio_prompts/shutdown_power_empty.opus" -CONFIG_MULTIMODAL_AUDIO_PA_GPIO=9 +CONFIG_MULTIMODAL_AUDIO_PA_GPIO=10