feat(canfd): 添加CANFD自检功能和桥接模式支持
- 添加完整的CANFD初始化流程,包括硬复位机制解决CAN1卡死问题 - 实现CANFD自检功能,包含物理总线测试和内部回环测试 - 支持CAN0到CAN1/CAN2的透传桥接模式 - 添加详细的初始化诊断信息输出 - 修复CAN滤波器配置和GPIO映射问题 - 增强错误处理和状态监控功能 perf(system): 优化系统时钟配置提高性能 - 将AHB时钟从SYSCLK/4调整为SYSCLK/2 (60MHz) - 优化PLL预分频配置参数 - 更新相关时序注释以反映实际频率变化 docs(esc): 更新EXMC总线时序配置注释 - 添加LAN9252 HBI时序要求详细说明 - 注明当前ESC未启用状态下的占位符说明 - 提供实际计算得出的HCLK延迟要求
This commit is contained in:
@@ -60,6 +60,40 @@
|
||||
#define CONFIG_SPI_APP_OTA_BOOT_ACK_OK 0xB5U
|
||||
/** @brief SPI 进入 Bootloader OTA 命令确认状态:失败。 */
|
||||
#define CONFIG_SPI_APP_OTA_BOOT_ACK_ERROR 0xE2U
|
||||
/* ============================================================
|
||||
* CAN-FD 位时序配置(三路 CAN0/CAN1/CAN2 共用)
|
||||
* 时钟链: SYSCLK=180MHz → AHB=/1=180MHz(RCU_MODIFY_UP 强制)
|
||||
* → APB1=/2=90MHz (CAN_CLK)
|
||||
*
|
||||
* 仲裁段目标: 1.0 Mbps = 90MHz / (9 × 10 TQ)
|
||||
* 数据段目标: 2.0 Mbps = 90MHz / (9 × 5 TQ)
|
||||
*
|
||||
* @note RCU_MODIFY_UP 宏在 system_clock_180m_hxtal() 末尾将 AHB 从 /4
|
||||
* 临时切到 /1,这是 GigaDevice 官方行为,不可删除。
|
||||
* 最终 AHB=180MHz, APB1=90MHz, APB2=180MHz, TIMER2_CLK=180MHz。
|
||||
* ============================================================ */
|
||||
|
||||
/** @brief 仲裁段预分频值。 */
|
||||
#define CONFIG_CAN_NOMINAL_PRESCALER 9U
|
||||
/** @brief 仲裁段再同步跳跃宽度。 */
|
||||
#define CONFIG_CAN_NOMINAL_SJW CAN_BT_SJW_1TQ
|
||||
/** @brief 仲裁段时间段 1(PHSEG1)。 */
|
||||
#define CONFIG_CAN_NOMINAL_BS1 CAN_BT_BS1_7TQ
|
||||
/** @brief 仲裁段时间段 2(PHSEG2)。 */
|
||||
#define CONFIG_CAN_NOMINAL_BS2 CAN_BT_BS2_2TQ
|
||||
|
||||
/** @brief 数据段预分频值。 */
|
||||
#define CONFIG_CAN_DATA_PRESCALER 9U
|
||||
/** @brief 数据段再同步跳跃宽度。 */
|
||||
#define CONFIG_CAN_DATA_SJW CAN_BT_SJW_1TQ
|
||||
/** @brief 数据段时间段 1。 */
|
||||
#define CONFIG_CAN_DATA_BS1 CAN_BT_BS1_3TQ
|
||||
/** @brief 数据段时间段 2。 */
|
||||
#define CONFIG_CAN_DATA_BS2 CAN_BT_BS2_1TQ
|
||||
|
||||
/** @brief BRS(比特率切换)使能开关:1=启用数据段加速,0=关闭仅经典 CAN。 */
|
||||
#define CONFIG_CAN_FD_BRS_ENABLE 1U
|
||||
|
||||
/** @brief CAN 接收过滤器目标标准帧 ID。 */
|
||||
#define CONFIG_CAN_RX_FILTER_ID CONFIG_CAN_STATUS_ID
|
||||
/** @brief CAN 接收过滤器标准帧掩码;`0x7FFU` 表示精确匹配 11-bit ID。 */
|
||||
@@ -81,7 +115,10 @@
|
||||
#define CONFIG_SCHED_TIMER_IRQn TIMER2_IRQn
|
||||
/** @brief 用户调度定时器时钟使能宏参数。 */
|
||||
#define CONFIG_SCHED_TIMER_RCU RCU_TIMER2
|
||||
/** @brief 用户调度定时器预分频值。 */
|
||||
/** @brief 用户调度定时器预分频值。
|
||||
* 时钟链: SYSCLK=180MHz → AHB=/1=180MHz(RCU_MODIFY_UP 强制) → APB1=/2=90MHz → TIMER2_CLK=APB1×2=180MHz。
|
||||
* 保持 100us tick: (PSC+1)×(PER+1)=18000 → 180×100 → PSC=179, PER=99。
|
||||
*/
|
||||
#define CONFIG_SCHED_TIMER_PRESCALER 179U
|
||||
/** @brief 用户调度定时器周期重装值。 */
|
||||
#define CONFIG_SCHED_TIMER_PERIOD 99U
|
||||
@@ -127,7 +164,7 @@
|
||||
/** @brief APP 主版本号。 */
|
||||
#define APP_FW_VERSION_MAJOR 1U
|
||||
/** @brief APP 次版本号。 */
|
||||
#define APP_FW_VERSION_MINOR 1U
|
||||
#define APP_FW_VERSION_MINOR 2U
|
||||
/** @brief APP 补丁版本号。 */
|
||||
#define APP_FW_VERSION_PATCH 2U
|
||||
/** @brief APP 构建编号。 */
|
||||
@@ -179,8 +216,9 @@
|
||||
#define CONFIG_ETHERCAT_SYNC_MODE 0
|
||||
|
||||
/** @brief periodicIsr 最大执行时间告警阈值(µs)。实测超过此值需评估减小 PDO 大小或优化 EXMC 时序。
|
||||
* 当前阈值 5µs:基于 32 字节 PDO + EXMC 6 HCLK 时序的估算上限。
|
||||
* preempt=0 ISR 阻塞窗口 ≤ 此阈值时,CAN/SPI 中断需容忍。 */
|
||||
* 当前阈值 5µs:基于 180MHz + 32 字节 PDO + EXMC 6 HCLK 时序的估算上限。
|
||||
* preempt=0 ISR 阻塞窗口 ≤ 此阈值时,CAN/SPI 中断需容忍。
|
||||
* @note 启用 ESC 后需根据实测 HCLK 数重新评估。 */
|
||||
#define CONFIG_ETHERCAT_ISR_MAX_US_THRESHOLD 5U
|
||||
|
||||
/** @brief 输入 PDO(TxPDO)在 PDI 内存区的起始偏移。
|
||||
|
||||
Reference in New Issue
Block a user