Files
JBao_Magic_Box_FW/apps/usr_periph/board_pin.h
T
wuchuyuan 215e1be6bb 1、运行中空电关机改看显示百分比,到 5% 立刻停电机、关绿灯,红灯闪 5 下后再深睡,避免电压先掉、APP 还没到 5% 就关机
2、充电/放电电量缓冲加快,放电突变拦截先关掉,电量曲线满电点收到 4.12V
3、上电串口打印软硬件版本和编译时间
2026-08-27 11:40:57 +08:00

120 lines
7.8 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 CBC2 门夹弹力绳板级引脚、电平与时序(换板只改本文件)
* @author cyWu <1917507415@qq.com>
* @date 2026.08.27
* @version V1.5.0
* @history
* - V1.0.0, 2026.08.21, cyWu, 首次发布
* - V1.1.0, 2026.08.24, cyWu, 收口:去掉实验开关与未贴件限位
* - V1.2.0, 2026.08.24, cyWu, 按键:深睡 3s 开机、5s 开机+配对
* - V1.3.0, 2026.08.24, cyWu, 电机改 MCPWM 50% 占空比降速
* - V1.4.0, 2026.08.26, cyWu, 新增 5% 自动关机门限、开机低电闪灯拦截、
* 12s 长按 OTA、自动模式单次最长运行时长;
* 取消低电闪烁 1 分钟后自动关机门限
* - V1.5.0, 2026.08.27, cyWu, 运行中空电关机红闪 5 下时序宏
******************************************************************************/
#ifndef __BOARD_PIN_H__
#define __BOARD_PIN_H__
#include "asm/gpio.h"
/*============================================================================*/
/* 功能开关:某路硬件异常时可单独关掉,不影响配网 */
/*============================================================================*/
#define BOARD_LED_ENABLE 1 /**< 1=红绿 LED */
#define BOARD_KEY_ENABLE 1 /**< 1=按键 PB1 */
#define BOARD_CHG_ENABLE 1 /**< 1=充电检测 PG8 + VPWR */
#define BOARD_MOTOR_ENABLE 1 /**< 1=电机 PA6/PC2 */
/*============================================================================*/
/* GPIO */
/*============================================================================*/
#define BOARD_MOTOR_INA_PIN IO_PORTA_06 /**< 电机 INA */
#define BOARD_MOTOR_INB_PIN IO_PORTC_02 /**< 电机 INB */
#define BOARD_LED_RED_PIN IO_PORTA_08 /**< 红灯 LED_PWR,低电平亮 */
#define BOARD_LED_GREEN_PIN IO_PORTA_07 /**< 绿灯 LED_CHG,低电平亮 */
#define BOARD_KEY_PIN IO_PORTB_01 /**< 按键,低电平按下 */
#define BOARD_CHG_PIN IO_PORTG_08 /**< ME4054 CHG,外部 2.2k 上拉 */
/* PA3 限位未贴件,空脚不初始化 */
#define BOARD_LED_ON_LEVEL 0 /**< LED 点亮电平:0=低亮 */
#define BOARD_KEY_ACTIVE_LEVEL 0 /**< 按键有效电平:0=按下为低 */
#define BOARD_CHG_CHARGING_LEVEL 0 /**< CHG 充电中为低 */
/**
* 收绳方向:1 = INA 高 / INB 低 为收绳(顺时针)
* 若实测方向反了,把本宏改为 0
*/
#define BOARD_MOTOR_IN_INA_HIGH 1
/*============================================================================*/
/* 电量 / 充电 */
/*============================================================================*/
#define BOARD_VBAT_FULL_MV 4120 /**< 100% */
#define BOARD_VBAT_EMPTY_MV 3200 /**< 0%,电量曲线下限(仅用于百分比换算) */
#define BOARD_VBAT_CHARGE_FULL_MV 4200 /**< 充电基准未记录时 100%(充电内阻压降,比放电阈值高)*/
#define BOARD_VBAT_CHARGE_EMPTY_MV 3400 /**< 充电基准未记录时 0% */
#define BOARD_VBAT_LOW_MV 3700 /**< 低电预警阈值:只闪红灯提示,不关机 */
#define BOARD_VBAT_LOW_HYST_MV 50 /**< 低电恢复回差 */
#define BOARD_VBAT_SHUTDOWN_MV 3250 /**< 约 5%,仅开机拦截用:关机状态下 app_battery 尚未运行,只能摸裸电压 */
#define BOARD_BATTERY_SHUTDOWN_PCT 5 /**< 运行中显示电量 <= 此值才自动关机,跟 APP 看到的百分比对齐 */
#define BOARD_VPWR_ONLINE_MV 4000 /**< VPWR 判定 USB 插入 */
#define BOARD_VPWR_OFF_MV 1500 /**< 低于此值认定已拔出 */
#define BOARD_CHG_FULL_MS 1000 /**< CHG 已高且 VPWR 在,满 1s 认充满 */
/*============================================================================*/
/* 按键 / 灯效 */
/*============================================================================*/
#define BOARD_KEY_CLICK_MS 1000 /**< 开机后:按下 <1s 松开为短按切模式 */
#define BOARD_KEY_POWER_MS 3000 /**< 深睡:按住 3s 开机;开机中:按住 3s 深睡 */
#define BOARD_KEY_PAIR_MS 5000 /**< 深睡:按住 5s 开机并进配对(开机中继续按不住配对) */
#define BOARD_KEY_OTA_MS 12000 /**< 深睡:按住 12s 开机并进 OTA */
#define BOARD_KEY_DEBOUNCE_MS 20 /**< 按键消抖 */
#define BOARD_PAIR_TIMEOUT_MS (120u * 1000u) /**< 配对超时 120s,失败后保持开机 */
#define BOARD_BOOT_LOWBAT_BLINK_N 5 /**< 关机时电量过低:拒绝开机前红灯闪烁次数 */
#define BOARD_BOOT_LOWBAT_ON_MS 200 /**< 拒绝开机提示:闪烁亮时间 */
#define BOARD_BOOT_LOWBAT_OFF_MS 200 /**< 拒绝开机提示:闪烁灭时间 */
#define BOARD_LED_EMPTY_BLINK_N 5 /**< 运行中电量到 5%:红灯闪烁次数 */
#define BOARD_LED_EMPTY_ON_MS 200 /**< 5% 关机提示:闪烁亮时间 */
#define BOARD_LED_EMPTY_OFF_MS 200 /**< 5% 关机提示:闪烁灭时间 */
#define BOARD_LED_EMPTY_OFF_WAIT_MS ((BOARD_LED_EMPTY_ON_MS + BOARD_LED_EMPTY_OFF_MS) \
* BOARD_LED_EMPTY_BLINK_N + 50u) /**< 闪完再掉电,多留 50ms 让 GPIO 落稳 */
#define BOARD_LED_FAST_ON_MS 100 /**< 配对绿快闪:亮 */
#define BOARD_LED_FAST_OFF_MS 100 /**< 配对绿快闪:灭 */
#define BOARD_LED_ALT_MS 200 /**< 配对失败 / OTA 红绿交替半周期 */
#define BOARD_LED_PAIR_OK_MS 3000 /**< 配对成功绿灯常亮时长 */
#define BOARD_LED_PAIR_FAIL_MS 3000 /**< 配对失败提示时长 */
#define BOARD_LED_LOWBAT_ON_MS 200 /**< 低电红闪:亮 */
#define BOARD_LED_LOWBAT_PERIOD_MS 2000 /**< 低电红闪:周期 */
#define BOARD_LED_MODE_OFF_MS 150 /**< 切模式闪:灭 */
#define BOARD_LED_MODE_ON_MS 150 /**< 切模式闪:亮 */
#define BOARD_LED_MODE_BLINK_N 2 /**< 切模式闪次数 */
#define BOARD_LED_STANDBY_ON 1 /**< 1=待机绿灯常亮;0=亮完 BOARD_LED_POWER_ON_MS 后灭(对比电流) */
#define BOARD_LED_POWER_ON_MS 3000 /**< BOARD_LED_STANDBY_ON=0 时的开机绿灯时长 */
/*============================================================================*/
/* 电机 */
/*============================================================================*/
#define BOARD_MOTOR_REVERSE_MS 1 /**< 换向前先松开,防 H 桥直通 */
#define BOARD_HAND_PULSE_MS 1000 /**< 预留;手动 1/2 一直转到写 03 停止 */
#define BOARD_MOTOR_PWM_HZ 20000 /**< MCPWM 频率(Hz)20k 避开可听啸叫 */
#define BOARD_MOTOR_PWM_DUTY 8000 /**< 占空比 0~10000=0%~100%80% */
#define BOARD_MOTOR_PWM_IDLE_CLOSE 1 /**< 1=空闲/轻睡关 MCPWM;0=保持开着,方便对比待机电流 */
/*============================================================================*/
/* 自动玩法 */
/*============================================================================*/
#define BOARD_AUTO_MODE_MAX_MS (10u * 60u * 1000u) /**< 自动模式 1~6 单次最长运行时长,到点自动回待机 */
#endif /* __BOARD_PIN_H__ */