1.修改工程目录 (个人习惯)
源文档是这样目录
整改后的目录
2.使用的工具 keil 作为编译器 vscode 作为浏览和编辑器
3.软件工程分析
4.工程文件分析
1)BLDC-MOTOR文件夹里面
①compu采样文件
// 用于采集速度样本数据
void SampleSpeed(void);
// 用于采集开环电流相关样本数据
void SampleOI(void);
// 用于采集电流样本数据
void SampleI(void);
// :用于采集电压样本数据
void SampleV(void);
②control控制文件
void MotorStartCheck(void);
// 控制电机启动前的延时(如软启动、防止瞬时电流过大)
void MotorStartDealy(void);
// 执行电机开环启动操作(如PWM输出、继电器吸合等)
void MotorStartOPEN(void);
// 电机运行 开环 :维持电机正常运行(如速度调节、电流控制等)
void MotorRunOPEN(void);
// 控制电机停止(如关闭PWM、刹车、自由停车等)
void MotorStop(void);
// 检测到电机异常(如过流、堵转、温度过高)时执行
void MotorError(void);
// 当错误超过阈值(如多次重启失败)时执行保护动作
void MotorErrorOver(void);
// 等待启动条件 : 信号(如按键、通信指令)以允许电机启动
void WaitStart(void);
// EN 检查电机使能信号是否有效(如硬件使能引脚状态)
void ENCheck(void);
③global.参数文件 各种参数的初始化 和系数校准
④init初始化文件
以名字为准顾名思义就是各种初始化包含主控内部rcciogpio电机pwmadc等操作
⑤MOTOR 电机文件
void PWMtimer_init(void);// PWM 定时器初始化函数 设置 PWM 频率、占空比、死区时间等
void Halltimer_init(void);//霍尔传感器定时器初始化 计算转速/位置
void Commutation(unsigned int step,unsigned int PWM_ON_flag);//电机换相控制函数
void UPPWM(void);// 更新 PWM 占空比函数
unsigned char HALL_Check(void);// 霍尔信号检测函数
void Hall_init(void);// 霍尔传感器初始化函数 感觉这个应该在霍尔函数里面吧
void HALL_MOTOR_START(void);// 霍尔启动电机函数
void MOTOR_STOP0(void);// 电机制动/停止函数
⑥sensorless传感器文件 现在这个应该就是无感里面的反电动势输入初始化了
extern void SENSORLESS_TIM_Config(void);///定时器初始化函数好像不用加全局声明吧?
extern unsigned char Sensorless_START(void);//传感器启动
2)USER文件夹里面之后主函数文件还有cw的中断文件以及启动文件
我添加了一些注释进去
循环之前的初始化部分
初始化电位器的斜率
初始化相关外设
检测电流偏执
上电检测电位器是否归零
20mS采集一次速度设定值,并检查传感器
开环电流检测
每100ms做一次电流检测和电压检测做做一次速度计算
故障判断是实时判断的这个优先级最高了
接下来是任务调度包含启动开环启动闭环启动开环转闭环转停止模式刹车模式错误模式
中断函数计时器任务函数时间调度就是用来各个任务调度的时间的恩
审核编辑 黄宇
-
电机驱动
+关注
关注
60文章
1327浏览量
87997 -
CW32
+关注
关注
1文章
257浏览量
1315
发布评论请先 登录
CW32L010 ESC Driver 电机控制套件快速上手指南
CW32L010 ESC Driver 电机控制套件使用
新品发布 | 96MHz主频 M0+内核低功耗单片机CW32L011产品介绍

新品发布 | 96MHz主频 M0+内核低功耗单片机CW32L011产品介绍

dsPIC33EDV64MC205电机控制开发板用户指南

评论