/****************************************************************************** * @file board_pin.h * @brief CBR3 温湿度风扇板级引脚、电平与时序(换板只改本文件) * @author cyWu <1917507415@qq.com> * @date 2026.09.04 * @version V1.1.0,数码管转机 180°(BOARD_DISP_ROTATE_180) * @history * - V1.1.0, 2026.09.04, cyWu, 转机后温湿窗口/十个位对调 + 段码旋转 * - V1.0.0, 2026.08.29, cyWu, 首次发布(P0 Bring-up) * * @note 产品 GPIO 全部集中到本文件;板级 board_jl701n_demo_cfg.h 只保留 * UART0_TX=PG6 一项改动。CT1642 用 PG0(CLK)/PG1(DATA),AHT20 用 * PC4(SCL)/PC5(SDA),两路 IO 独立、无总线共享(2026-08-29 改板飞线分离, * 原 PC4/PC5 共线 + bsp_bus 分时机制整体删除)。 ******************************************************************************/ #ifndef __BOARD_PIN_H__ #define __BOARD_PIN_H__ #include "asm/gpio.h" /*============================================================================*/ /* 功能开关:某路硬件异常时可单独关掉,不影响配网 */ /* 0 时对应模块 init/run 直接 return,GPIO 不配,日志打一次 xxx disabled */ /*============================================================================*/ #define BOARD_LED_ENABLE 1 /**< 1=状态 LED PC2(低亮) */ #define BOARD_KEY_ENABLE 1 /**< 1=按键 PB1(低按下) */ #define BOARD_FAN_ENABLE 1 /**< 1=风扇 MCPWM PC3(高导通) */ #define BOARD_DISP_ENABLE 1 /**< 1=CT1642 数码管(PG0/PG1 独立) */ #define BOARD_TH_ENABLE 1 /**< 1=AHT20 温湿度(PC4/PC5 独立) */ #define BOARD_MODE_ENABLE 1 /* 通风/强力状态机;P1 开 */ #define BOARD_LINKAGE_ENABLE 1 /* 联动引擎(替换原 7 组条件);P2 开 */ #define BOARD_TIMER_ENABLE 1 /* 定时引擎;P2 开 */ #define BOARD_RUNREC_ENABLE 1 /* 31 天运行记录;P2 开 */ #define BOARD_NVM_ENABLE 1 /* VM 持久化;P1 开 */ /*============================================================================*/ /* GPIO */ /*============================================================================*/ #define BOARD_UART_TX_PIN IO_PORTG_06 /**< 调试 UART TX(只发不占 PC5) */ #define BOARD_DISP_CLK_PIN IO_PORTG_00 /**< CT1642 CLK(独立,飞线 G0) */ #define BOARD_DISP_DATA_PIN IO_PORTG_01 /**< CT1642 DATA(独立,飞线 G1) */ #define BOARD_TH_SCL_PIN IO_PORTC_04 /**< AHT20 SCLK(独立,推挽驱动) */ #define BOARD_TH_SDA_PIN IO_PORTC_05 /**< AHT20 SDA(开漏+内部上拉,外部 4.7~10k 双保险) */ #define BOARD_FAN_PIN IO_PORTC_03 /**< 风扇 PWM,高电平导通,MCPWM */ #define BOARD_LED_PIN IO_PORTC_02 /**< 状态 LED,低电平亮 */ #define BOARD_KEY_PIN IO_PORTB_01 /**< 按键,低电平按下 */ #define BOARD_LED_ON_LEVEL 0 /**< LED 点亮电平:0=低亮 */ #define BOARD_FAN_ON_LEVEL 1 /**< 风扇有效电平:1=高导通 */ #define BOARD_KEY_ACTIVE_LEVEL 0 /**< 按键有效电平:0=按下为低 */ /*============================================================================*/ /* 按键 / 开机 */ /*============================================================================*/ /** * 直接作为 key.c 状态机的 keyLongTime/keyLastTime 使用: * 松手时刻 1s,规格书第 2.3/18 章) */ #define BOARD_TH_FAIL_MAX 3 /**< 连续失败 3 次判传感器故障 */ #define BOARD_TH_HUMI_PUB_DELTA 2 /**< 对外湿度:相对上次 |ΔH|>=2% 才更新显示/上报 */ #define BOARD_TH_TEMP_PUB_DELTA_X10 5 /**< 对外温度:相对上次 |ΔT|>=0.5℃ 才更新显示/上报 */ #define BOARD_AHT20_WAIT_MS 80 /**< 测量等待时长 */ #define BOARD_AHT20_I2C_HZ 100000 /**< 软件 I2C 时钟 */ /*============================================================================*/ /* 模式(P1 起用,P0 关闭) */ /*============================================================================*/ #define BOARD_MODE_VENT_ON_MS (25u * 60u * 1000u) /**< 通风开段 25min */ #define BOARD_MODE_VENT_OFF_MS (5u * 60u * 1000u) /**< 通风停段 5min */ #define BOARD_MODE_POWER_ON_MS (15u * 60u * 1000u) /**< 强力一轮 15min */ /*============================================================================*/ /* 联动(第 10 章:1 条 20B 配置,回差开 1 档 / 关 0 档,不改 mode) */ /*============================================================================*/ #define BOARD_LINKAGE_CFG_LEN 20 /**< DP6 linkage_config 长度(Byte) */ #define BOARD_LINKAGE_OPEN_GEAR 1 /**< 联动开风扇时写的档位(第 10.3 节) */ /*============================================================================*/ /* 运行记录(第 13.1 节:31 天 × uint32 秒) */ /*============================================================================*/ #define BOARD_RUN_RECORD_DAYS 31 /**< 记录天数 */ #define BOARD_RUN_RECORD_SAVE_SEC 900 /**< 累计运行 15 分钟写一次 VM */ #endif /* __BOARD_PIN_H__ */