Files
JBao_Heat_Pad_FW/apps/usr_periph/board_pin.h
T
wuchuyuan d50f1302de 1、关闭1分钟没重连就切慢广播的功能,修复1分钟之后重连不上网关的问题
2、调整最大数据包长度至512,优化BLE数据打包函数以支持分包
2026-09-07 19:40:13 +08:00

123 lines
8.3 KiB
C
Raw 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 CBR1 板级引脚、电平与时序(换板只改本文件)
* @author cyWu <1917507415@qq.com>
* @date 2026.09.04
* @version V1.1.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 章);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(双沿=规格书 4/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 /* 重连广播 / 扫描各占一拍 */
/*============================================================================*/
/* 联动(P2,第 10 章:1 条 20B 配置,回差开/关) */
/*============================================================================*/
#define BOARD_LINKAGE_CFG_LEN 20 /**< DP8 linkage_config 长度(Byte) */
/*============================================================================*/
/* 运行记录(P2,第 13.1 节:31 天 × uint32 秒) */
/*============================================================================*/
#define BOARD_RUN_RECORD_DAYS 31 /**< 记录天数 */
#define BOARD_RUN_RECORD_SAVE_SEC 600 /**< 累计吸合 10 分钟写一次 VM */
#endif /* __BOARD_PIN_H__ */