Files
wuchuyuan e65b2b22b6 1、修复CBR0寿命与31天记录落盘失败(比较缓冲128→256)
2、APP换灯直接写DP3,DP4本版忽略;上电用restore灌RAM;读/全量打包权威剩余秒数
2026-09-08 12:29:02 +08:00

138 lines
9.4 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/******************************************************************************
* @file board_pin.h
* @brief CBR0 板级引脚、电平与时序(电子开关-加热灯罩;换板只改本文件)
* @author cyWu <1917507415@qq.com>
* @date 2026.09.08
* @version V1.0.0
*
* @note 与加热垫同一块电子开关板、同一套引脚和灯效,负载换成灯泡。
* UART0_TX=PC5 在 board_jl701n_demo_cfg.h。
* 过零用 MCPWM FPIN 双沿(CH0 下降 / CH1 上升),勿占这两个 PWM 通道。
* 软件采样兜底必须挂真实 1ms 定时器,禁止在 20ms 节拍里空循环读沿。
******************************************************************************/
#ifndef __BOARD_PIN_H__
#define __BOARD_PIN_H__
#include "asm/gpio.h"
/*============================================================================*/
/* 功能开关:某路硬件异常时可单独关掉,不影响配网 */
/* 0 时对应模块 init/run 直接 returnGPIO 不配,日志打一次 xxx disabled */
/*============================================================================*/
#define BOARD_LED_ENABLE 1 /**< 1=红绿状态 LEDPA7 红 / PA8 绿,低亮) */
#define BOARD_KEY_ENABLE 1 /**< 1=按键 PB1(低按下) */
#define BOARD_RELAY_ENABLE 1 /**< 1=继电器 PC3(高导通=灯泡开) */
#define BOARD_ZC_ENABLE 1 /**< 1=过零 PA1;=0 时开请求禁吸合、关请求强制断开 */
#define BOARD_LINKAGE_ENABLE 1 /* 联动引擎(规格书 10 章);P2 开 */
#define BOARD_TIMER_ENABLE 1 /* 定时引擎(规格书 11 章);P2 开 */
#define BOARD_TH_SCAN_ENABLE 1 /* 断连扫描风扇广播(规格书 8 章);P2 开 */
#define BOARD_RUNREC_ENABLE 1 /* 31 天运行记录(规格书 13.1 章);P2 开 */
#define BOARD_LIGHT_LIFE_ENABLE 1 /* 灯泡剩余寿命(规格书 13.2 章,灯罩新增);P2 开 */
#define BOARD_NVM_ENABLE 1 /* VM 持久化(规格书 13 章) */
/*============================================================================*/
/* GPIO */
/*============================================================================*/
#define BOARD_UART_TX_PIN IO_PORTC_05 /**< 调试 UART TXcfg: TCFG_UART0_TX_PORT */
#define BOARD_KEY_PIN IO_PORTB_01 /**< 按键,低电平按下 */
#define BOARD_ZC_PIN IO_PORTA_01 /**< 过零检测,双沿都算一次过零 */
#define BOARD_LED_GREEN_PIN IO_PORTA_08 /**< 绿灯,低电平亮 */
#define BOARD_LED_RED_PIN IO_PORTA_07 /**< 红灯,低电平亮 */
#define BOARD_RELAY_PIN IO_PORTC_03 /**< 继电器,高电平导通(灯泡开) */
#define BOARD_LED_ON_LEVEL 0 /**< LED 点亮电平:0=低亮 */
#define BOARD_RELAY_ON_LEVEL 1 /**< 继电器有效电平:1=高导通 */
#define BOARD_KEY_ACTIVE_LEVEL 0 /**< 按键有效电平:0=按下为低 */
/*============================================================================*/
/* 按键 / 配对 / OTA */
/*============================================================================*/
/**
* 直接作为 key.c 状态机的 keyLongTime/keyLastTime 使用:
* 松手时刻 <BOARD_KEY_PAIR_MS → SHORT_Event,切灯泡(见 5.3
* 按住满 BOARD_KEY_PAIR_MS → LONG_Event(仍按住),切配对提示灯(绿灯快闪)
* 按住满 BOARD_KEY_OTA_MS → LAST_Event(仍按住,到点即触发),进 OTA
* 按满 5s~12s 后松手 → RELEASE_Event,提交配对
*/
#define BOARD_KEY_PAIR_MS 5000 /**< keyLongTime:满 5s 挂配对提示灯 */
#define BOARD_KEY_OTA_MS 12000 /**< keyLastTime:满 12s 到点直接进 OTA */
#define BOARD_KEY_DEBOUNCE_MS 20 /**< 按键消抖(参考值;key.c 内部以 30 为准) */
#define BOARD_PAIR_TIMEOUT_MS (120u * 1000u) /**< 配对超时 120s,失败后保持开机 */
/*============================================================================*/
/* LED(红绿双通道,低亮;事件表见 led_manager.c */
/*============================================================================*/
#define BOARD_LED_FAST_ON_MS 100 /**< 配对快闪:亮 */
#define BOARD_LED_FAST_OFF_MS 100 /**< 配对快闪:灭 */
#define BOARD_LED_OTA_ON_MS 200 /**< OTA 红绿交替半周期:亮 */
#define BOARD_LED_OTA_OFF_MS 200 /**< OTA 红绿交替半周期:灭 */
#define BOARD_LED_ALT_MS 200 /**< 交替事件半周期(配对失败 / OTA) */
#define BOARD_LED_PAIR_OK_MS 3000 /**< 配对成功绿灯常亮时长 */
#define BOARD_LED_PAIR_FAIL_MS 3000 /**< 配对失败提示总时长 */
#define BOARD_LED_STANDBY_ON 1 /**< 1=跟继电器灯常亮 */
/*============================================================================*/
/* 继电器 + 过零 */
/*============================================================================*/
#define BOARD_ZC_TIMEOUT_MS 100 /**< 过零超时:pending 置位后 100ms 无沿走超时路径 */
#define BOARD_ZC_SCAN_MS 1 /**< 软件兜底采样子步长(真实 1ms 定时器驱动) */
/* 过零沿检测方式:MCPWM FPIN 硬件边沿中断(官方例程 usr_hw_demo/usr_hw_gpio_int.c */
#define BOARD_ZC_USE_IRQ 1 /**< 1=FPIN 边沿中断执行切变;0=纯软件采样(真实 1ms 定时器) */
#define BOARD_ZC_FPIN_FALL_CH 0 /**< 下降沿用的 FPIN 通道号 0~3 */
#define BOARD_ZC_FPIN_RISE_CH 1 /**< 上升沿用的 FPIN 通道号 0~3(双沿=规格书 2.2 要求) */
#define BOARD_ZC_FPIN_BOTH_EDGE 1 /**< 1=双沿都算过零(占两个通道);0=只用下降沿通道 */
#define BOARD_ZC_FPIN_FILTER_EN 1 /**< 1=开 FPIN 硬件滤波(抗过零毛刺);不触发时试 0 */
#define BOARD_ZC_FPIN_FILTER 0x3FUL /**< 滤波档位 bits[5:0],例程默认 0b111111 */
#define BOARD_ZC_PULL_UP 1 /**< PA1 内部上拉(光耦 OC 输出时必须有;推挽输入也无害) */
#define BOARD_ZC_PULL_DOWN 0 /**< PA1 内部下拉,通常 0(与上拉互斥) */
#define BOARD_ZC_SW_POLL_1MS 0 /**< 1=额外挂真实 1ms 软件采样兜底(中断失效时滞后 ≤1ms,代价 1000Hz ISR */
#define BOARD_ZC_DIAG_LOG 0 /**< 1=500ms 打印一次过零沿计数(台上确认中断在跑,量产出货置 0) */
/*============================================================================*/
/* BLE 广播:常电默认保持快广播;电池产品可开超时切慢广播 */
/*============================================================================*/
#define BOARD_BLE_SLOW_ADV_ENABLE 0 /**< 0=一直快广播(80)1=断连满 BOARD_BLE_SLOW_ADV_SEC 后切慢(800) */
#define BOARD_BLE_SLOW_ADV_SEC 60 /**< 使能后:已配对断连快广播持续秒数再切慢(本机 500ms 一拍) */
/*============================================================================*/
/* 断连扫描(P2,规格书 8.2 节) */
/*============================================================================*/
#define BOARD_ADV_SCAN_SLOT_MS 500 /* 重连广播 / 扫描各占一拍 */
/*============================================================================*/
/* 联动(规格书 10 章:1 条 20B 配置 DP11,回差开/关) */
/*============================================================================*/
#define BOARD_LINKAGE_CFG_LEN 20 /**< DP11 linkage_config 长度(Byte) */
/*============================================================================*/
/* 定时(规格书 11.1 节:7 组 11B 配置 DP13~19,无模式字节) */
/*============================================================================*/
#define BOARD_TIME_CFG_LEN 11 /**< 每组定时配置长度(Byte)Byte1=类型 */
/*============================================================================*/
/* 运行记录(规格书 13.1 节:31 天 × uint32 秒,DP20 */
/*============================================================================*/
#define BOARD_RUN_RECORD_DAYS 31 /**< 记录天数 */
#define BOARD_RUN_RECORD_SAVE_SEC 600 /**< 累计吸合 10 分钟写一次 VM */
/*============================================================================*/
/* 灯泡剩余寿命(规格书 13.2 节,灯罩新增:DP3/DP25DP4 本版不用) */
/*============================================================================*/
#define BOARD_LIGHT_RATED_SEC 2592000u /**< 额定工时 30*24*3600(首次上电/复位值) */
#define BOARD_LIGHT_REPORT_MS 60000u /**< 点灯时 DP3 变化上报节流:满 60s 才走 */
#endif /* __BOARD_PIN_H__ */