# XTFOCDriver **Repository Path**: czm9976/XTFOCDriver ## Basic Information - **Project Name**: XTFOCDriver - **Description**: 开源哮天FOC算法库,致力于打造一款能够跨多嵌入式平台使用的嵌入式有感FOC算法库。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-12-23 - **Last Updated**: 2025-12-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XTFOC_Lib ## 介绍 XTFOC_Lib 是一个专注于电机控制的软件库,特别适用于使用 FOC(磁场定向控制)技术的应用。该库提供了多种模块和驱动程序,可以方便地进行电机控制系统的开发与调试。 ## 软件架构 本项目主要分为以下几个部分: - **Bootloader**: 负责程序的初始化与加载。 - **Driverlib**: 提供底层硬件驱动函数,如 ADC、CANFD、CMPSS 筁。 - **Board Drivers**: 针对特定硬件板卡的驱动程序,如 BSP_ADC、BSP_CAN 等。 - **HAL Drivers**: 高级驱动程序,如 CAN 通信器、电流传感器等。 - **Modules**: 提供通用算法模块,如坐标变换、滤波器、PID 控制等。 - **Tasks**: 系统任务逻辑,如电机控制、通信处理等。 ## 库目录说明 - **bootloader**: 包含 DSP 引导程序和相关配置。 - **libs/device**: 提供设备初始化和系统控制功能。 - **libs/driverlib**: 底层硬件驱动的实现。 - **XTFOCLib/board_drivers**: 硬件板卡相关驱动。 - **XTFOCLib/hal_drivers**: 高级硬件抽象层驱动。 - **XTFOCLib/modules**: 各类算法模块的实现。 - **XTFOCLib/tasks**: 系统任务的实现。 ## 支持功能 - FOC(磁场定向控制)算法实现 - 坐标变换(Clarke & Park) - 滤波器算法(低通滤波、周期平均、EKF) - PID 控制器 - CANFD 通信 - ADC、PWM、GPIO 等硬件驱动 - 电机保护机制(电压、电流、温度监控) ## 使用说明 ### 初始化 - 在 main 函数中调用 `Bsp_Board_Init` 初始化硬件。 - 使用 `Task_Board_Init` 初始化系统任务。 ### 配置电机控制 - 使用 `Bsp_Encoder_Init` 初始化编码器。 - 使用 `Hal_MotorPwm_Controller_Init` 初始化 PWM 控制器。 - 使用 `PID_InitIncPid` 或 `PID_InitMITPid` 初始化 PID 控制器。 ### 控制逻辑 - `Task_Motor_PosSpdLoopCurrentLoopRun` 和 `Task_Motor_PosSpdCurrentLoopRun` 提供了电机控制的主逻辑。 - 使用 `MotorPWM_SetUVWDuty` 设置 PWM 输出以控制电机。 ### 通信 - 使用 `Bsp_CAN_Init` 和 `Bsp_CAN_SendMessage` 进行 CAN 通信。 - 使用 `Bsp_UART_Init` 和 `put_string` 实现 UART 通信。 ## 芯片架构移植 本项目基于 合肥乾芯科技 QXS320F280049芯片开发,移植时需注意以下几点: - 硬件驱动可能需要根据新芯片的寄存器和功能进行调整。 - 需要重新配置 `ldscript` 文件以匹配新芯片的内存布局。 - 中断向量表和系统初始化代码可能需要根据新芯片的架构进行修改。 ## 开源交流群 如果你对本项目感兴趣,欢迎加入我们的开源交流群,一起探讨电机控制与 FOC 算法的实现与优化。 ## 参与贡献 我们欢迎所有开发者参与本项目的改进。你可以提交 bug 报告、优化代码、或者贡献新的模块与功能。请遵循项目的 Git 提交规范,并在提交前确保代码通过所有测试。