2021-08-12 17:59:59 索炜达电子 4146
项目编号:E5
文件大小:61M
源码说明:带中文注释
开发环境:C编译器
简要概述:
基于XMC4400F100K512的PMSM无位置传感器驱动控制程序
引脚定义
注:Sensorless FOC 不需要使用位置传感器接口
软件设计
底层驱动 :
CCU8 :
生成3路带死区的互补的PWM信号
一路专用的PWM用于触发采样和PWM占空比更新
VADC :
VADC0 G0、G2、G3三组同步采样(G0主 G2,G3从)
POSIF :
独立多通道模式用于保护封波
USIC :
ASC协议UART模式,用于和上位机通信
DAC:
DAC1输出用于观测器和角度的实时Debug
主要中断:
CCU80_0_IRQHandler:
更新下一个62.5us内的PWM信号占空比
处理初始定位和闭环I/F启动相关流程
VADC0_G0_0_IRQHandler:
三相电流重构
观测器反电势估计
锁相环角度估计与转速估计
I/F-FOC切换相关流程
dq轴电流环运算
虚拟示波器Flash存储
SysTick_Handler:
转速环运算
上位机显示
虚拟示波器Flash数据显示
Control_Loop_Mode 1:电流单闭环 2:转速电流双闭环
文件列表:
目录│文件列表:
├ 1.文档
│ └ 说明.docx
└ 2.源码
└ sensorless_foc
│ EventRecorderStub.scvd
│ JLinkSettings.ini
│ KEILCLEAN.bat
│ MotorTest.zip
│ PMSM_FOC.uvoptx
│ PMSM_FOC.uvprojx
├ DEBUG
│ │ Agreement.c
│ │ Agreement.h
│ │ DAC.c
│ │ DAC.h
│ │ UART.c
│ └ UART.h
├ FOC_Control
│ │ Call_Functions.c
│ │ Call_Functions.h
│ │ INT_ISR.c
│ │ INT_ISR.h
│ │ Motor_Functions.h
│ │ PI_Control.c
│ │ PI_Control.h
│ └ SVPWM.h
├ Main
│ └ main.c
├ Objects
│ └ PMSM_FOC.hex
├ Readme
│ └ README.txt
├ RTE
│ ├ Device
│ │ ├ XMC4400-F100x512
│ │ │ │ RTE_Device.h
│ │ │ │ startup_XMC4400.s
│ │ │ └ system_XMC4400.c
│ │ └ XMC4400-F64x512
│ │ │ RTE_Device.h
│ │ │ startup_XMC4400.s
│ │ └ system_XMC4400.c
│ └ _Target_1
│ └ RTE_Components.h
├ Sensorless_Lib
│ │ PMSM_FOC.lib
│ └ SVPWM.lib
└ SYS_Init
│ MCU_Initialize.c
│ MCU_Initialize.h
│ VAR_Initialize.c
└ VAR_Initialize.h