
开源协议
:Public Domain
描述


最近学习电机控制,买了一个轿车助力转向电机,位置反馈是用的旋转变压器,这种传感器也经常用于新能源电动汽车电机上,专用芯片听说比较贵,于是自己用单片机自己做了个解码板。
供电电压+3.3V适合电池供电,数据更新速度每秒1万次,数据分辨率(0-36000 最后一位跳就算12位),带宽1591赫兹(我不懂带宽什么意思),理论跟踪速度最大95500转每分钟(未测试)
spi主机单发模式,格式16位,MSB在前,串行时钟相位配置前边沿采样 / 后边沿移位,串行时钟极性配置待机时低电平,接收的从机器需要先上电。
我以前没搞过单片机互相通讯,所以搞成了单发模式,发完1一个数据CS拉高。
旋变任意角度自动校零方法:
CW32 43脚拉低后再拉高进入角度自动调零程序,新烧写的单片机必须执行本操作,自动调整零后偏差较大应重复调零
匹配不同旋变需要更改激磁线圈并连的电容,就是那4个103电容,需要用LCR表测出旋变励磁线圈电抗,比如我这个是+200欧左右,我就并连了4个103电容。
硬件部分:
采用单片机输出1路20KHZ PWM,经过LMV放大驱动旋变励磁线圈,另一个运放反相,接另一个激磁线, COS和SIN进入差分放大后进入单片机两个ADC口。

单片机输出一路20KHZPWM,经过RC滤成正弦波,再进入运放放大,另外一个运放反相,这两个运放一块驱动旋转变压器。

用LCR表测出旋转变压器电感,再并联电容使谐振频率和驱动频率一样,C1增加稳定度。

旋转变压器COS和SIN分别进入两个差分放大器,然后进入单片机两个ADC口

CW32单片机电路
软件部分:
单片机每个口对应采样率是1MHZ,采集100点后中断,用DFT算出采集的COS和SIN序列的实部和虚部,旋转相位到0度,用实部进ATAN2算出角度,当前角度保存到寄存器,等测出下次角度后相减算出角度差,再算出角度差的COS和SIN,反馈回ATAN2前,旋转进ATAN2的角度实现锁相,这样得到的角度就和转速没关系了,抵消了系统延迟。
相移计算
zhuansu = 95500
shijian = 100
xiangyi =90-atan2(159155 / (zhuansu / 60), shijian)*180/3.1415927
1.s是源代码,1.bin是固件,分别有两个程序,一个是直接用COS12864显示出角度,两外一个通过SPI口输出,得到数据后要马上处理,不然电机转速高的时候会出现很大相移。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论