# sensorless_foc
**Repository Path**: dejunN/sensorless_foc
## Basic Information
- **Project Name**: sensorless_foc
- **Description**: 电机驱动开发项目:sensorless_foc
- **Primary Language**: C
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 6
- **Created**: 2023-02-13
- **Last Updated**: 2023-02-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
- [ SensorlessFOC](#head1)
- [ 一、介绍 ](#head2)
- [ 二、引脚定义](#head3)
- [ 三、软件设计](#head4)
# SensorlessFOC
感谢陆兵同学 @gitee.com/robbinlu 编写的上位机MotorTest
## 一、介绍
基于 XMC4400F100K512 的PMSM无位置传感器驱动控制程序
## 二、引脚定义
注:Sensorless FOC 不需要使用位置传感器接口
+ #### A/D采样输入:
| Iu | Iv | Iw | RP |
| :----:| :----: | :----: |:----: |
| P14.2 | P15.2 | P14.8 | P14.1 |
+ #### 六路PWM脉冲输出:
| UH | UL | VH | VL | WH | WL |
| :----:| :----: | :----: |:----: | :----: | :----: |
| P0.5 | P0.2 | P0.4 | P0.1 | P0.3 | P0.0 |
+ #### D/A输出:
| DAC1 |
| :----:|
| P14.9 |
+ #### 通讯接口 (UART):
| RX | TX |
| :----:| :----: |
| P2.2 | P2.5 |
## 三、软件设计
* #### 底层驱动 :
1. **CCU8** :
- 生成3路带死区的互补的PWM信号
- 一路专用的PWM用于触发采样和PWM占空比更新
2. **VADC** :
- VADC0 G0、G2、G3三组同步采样(G0主 G2,G3从)
3. **POSIF** :
- 独立多通道模式用于保护封波
4. **USIC** :
- ASC协议UART模式,用于和上位机通信
5. **DAC**:
- DAC1输出用于观测器和角度的实时Debug
* #### 主要中断:
1. **CCU80_0_IRQHandler**:
- 更新下一个62.5us内的PWM信号占空比
- 处理初始定位和闭环I/F启动相关流程
2. **VADC0_G0_0_IRQHandler**:
- 三相电流重构
- 观测器反电势估计
- 锁相环角度估计与转速估计
- I/F-FOC切换相关流程
- dq轴电流环运算
- 虚拟示波器Flash存储
1. **SysTick_Handler**:
- 转速环运算
- 上位机显示
- 虚拟示波器Flash数据显示
Control_Loop_Mode 1:电流单闭环 2:转速电流双闭环