前言
电机控制单电阻采样机制是在一个pwm波形内采集两相电流adc数据,但某些扇区边界条件下只能获得一路电流adc数据, 需要对pwm波形进行变形用于构造电流采样区域。
背景介绍
根据电机控制拓扑结构,单电阻采样在一个pwm控制周期内可以取得两相电流数据:
在扇区边沿无法获得两相电流信号。
波形产生
st专利的方法是在波形的中间部分产生变形波形,在变形后的波形上就可以得到两相电流adc数据;
当然还有目前比较流行的波形移位方法也可以做到相同效果。波形如下:
stm32系列单片机timer有足够的功能,可以产生上面两种波形,机制如下:
pwm波中间变形
1. 设定ccr4的dma通道,并且设定此时timer1的preload为禁止状态;
tim_oc1preloadconfig(tim1,tim_ocpreload_disable);
2. 在ccr4比较值部分产生dma事件;
dma_initstructure.dma_peripheralbaseaddr= (uint32_t)(&(tim1->ccr1));
dma_initstructure.dma_memorybaseaddr= (uint32_t)(uint32_t)(hdmabuff2);
dma_initstructure.dma_dir =dma_dir_peripheraldst;
dma_initstructure.dma_buffersize= 2u;
….
tim_dmacmd(tim1,tim_dma_cc4,enable);
3. 在1点上将ccr1数据直接修改为周期数据+1;
4. 在2点上将ccr1数据修改为ccr1’的数据;
5. 时间计算上按照上面的图示设定,中间凹陷时间为两边补充波形时间之和。
波形移位变形
1. 设定timer1的update事件的dma通道
dma_initstructure.dma_peripheralbaseaddr =(uint32_t)(&(tim1->ccr1));
dma_initstructure.dma_memorybaseaddr =(uint32_t)(uint32_t)(hdmabuff2);
dma_initstructure.dma_dir =dma_dir_peripheraldst;
dma_initstructure.dma_buffersize = 2u;
……
tim_dmacmd(tim1,tim_dma_update,enable);
2. 在1点上更新ccr1数据为ccr1数据;
3. 在2点上更新ccr1数据为ccr1’数据;
4. 保证前后的移位时间相同。
一文搞懂电阻
宏集案例丨宏集PC Runtime软件助推食品行业生产线数字化革新
基于深度学习对在2018年的10个预测解析
PC这个字差不多要走入历史了
科创板南微医学监事冯达介绍、履历信息
一个PWM波形内采集两相电流ADC数据
仟金顶周涛:赋能泛建材价值链企业,推动数字化转型
如何提高MAX4007的工作速度
低EMI/EMC辐射开关转换器简化了ADAS设计
NV612X GaNFast™ 功率半导体器件的热处理
农药残留快速测试仪的性能及参数
深刻了解ios10.2,越狱新人也不用担心!
工程师电子制作故事:1000米4路无线遥控窗帘(图文)
汽车电子中ECU控制原理及类型介绍
CB Insights 2021 AI100名单发布,一流科技等6家中国企业入选
三星首款可折叠智能手机已开卖,市场需求极大
国星光电宣布一项目技术改造项目获政府补助资金
FP-AI-FACEREC1,机器学习市场渗透新篇章
推动人工智能安全发展
TMS320f28335控制AD7656的硬件电路设计