# pms080_504 **Repository Path**: robbinlu/pms080_504 ## Basic Information - **Project Name**: pms080_504 - **Description**: pmsm foc - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 2 - **Created**: 2020-07-22 - **Last Updated**: 2024-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # pms080_504 #### 介绍 pmsm foc #### 硬件接口 ###### 驱动接口: | UH | UL | VH | VL | WH | WL | | :-----| ----: | :----: |:----- | ----: | :----: | | P0.5 | P0.2 | P0.4 | P0.1 | P0.3 | P0.0 | ###### 磁编接口: | sin | cos | sin_pwm| sin_pwm| | :-----| ----: | :----: | :----: | | P14.8 | P14.0 | P1.2 |P1.3 | 注: 1. sin_pwm,cos_pwm用来捕获测速 2. pcbV2.0将比较器改为迟滞比较器 比较器容易误触发改为迟滞比较器(迟滞电压2.4v-2.7v) 计算过程:http://www.elecfans.com/dianzichangshi/20180226639465_a.html 3. sin,cos信号adc采集不准的问题: - 阻抗匹配的问题; - 最大值的处理: - 对于初始角度,可以通过预先设置预估值(adc_value = Vsin* 分压比 *4096/Vref),获得的角度作为PLL的初始角度;之后的最大值处理:首先通过设置最大值的范围,然后通过采样一个周期的sin和cos的值,计算最大值(通过sin_pwm的中断?);之后将每次获得的峰值进行平均。 4. 磁编信号的处理总结: - sin,cos信号的电压范围为1.9-4.1V,中间值为3V;sin,cos信号存在一个约0.74k上拉电阻; - 目前的方案改善,将两个电阻改为一个750欧的电阻,进行分压(0.95-2.05V);对于V1.0的板子,通过两个1k电阻进行分压,使滞环比较器的负端(基准值)设为1.5V,滞环比较器的上下限(1.075V和1.375V); - 下一版硬件的处理方法:将sin,cos信号接一运放,将两个信号下移1V,范围为0.9V-3.1V;同时将滞环比较器的基准值下降到2V。 ###### 采样接口: | IU | IV | POT(电位器) | | :-----| ----: | :----: | | P14.14| P14.6 | P14.9 | ###### 通讯接口(uart): | TXD | RXD | | :----- | ----:| | P2.5 | P2.2 | #### 软件架构 1. CCU40_0_IRQn 时间62.5us 未用 2. CCU40_1和CCU40_2用来捕获,计算速度 3. ADC 62.5us 周期匹配 - 采集sin,cos;角度计算(PLL) - 采集相电流,电流环,park反变换,svpwm - 串口协议解析(放在串口或主循环?) 4. CCU8 62.5us 1匹配 PWM占空比更新 5. 1ms中断,速度环 TODO:(电位器,温度未采集) #### TODO 1. 倒拉反转,位能性负载,倒拉反转的能量如何处理? - 电动汽车、起重机的能量回馈 - 伺服电机的堵转,悬停 2. 启动的S曲线 #### 版本介绍 1. 开环:开环程序,用于调锁相环参数 2. 电流单闭环:目前采用一套参数,未分段,正弦度一般,还需优化,用于调电流环环参数 3. 双闭环程序