138 lines
9.4 KiB
C
138 lines
9.4 KiB
C
/******************************************************************************
|
||
* @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 直接 return,GPIO 不配,日志打一次 xxx disabled */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_LED_ENABLE 1 /**< 1=红绿状态 LED(PA7 红 / 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 TX(cfg: 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/DP25;DP4 本版不用) */
|
||
/*============================================================================*/
|
||
|
||
#define BOARD_LIGHT_RATED_SEC 2592000u /**< 额定工时 30*24*3600(首次上电/复位值) */
|
||
#define BOARD_LIGHT_REPORT_MS 60000u /**< 点灯时 DP3 变化上报节流:满 60s 才走 */
|
||
|
||
#endif /* __BOARD_PIN_H__ */
|