5
12
46
初级技术员
在上一篇“[应用方案]聊聊极海哪些MCU适用于编码器应用”文章中介绍过绝对值编码器方案分为4类:无MCU方案、多圈系统和协议转换方案、只做多圈系统方案、原始模拟信号解算方案。其中APM32F1103xB适用于多圈系统和协议转换方案和原始模拟信号解算方案。这里简单聊一下APM32F1103xB在编码器应用的注意点。
基于APM32F103TB的方案框图如下所示(参考https://mp.weixin.qq.com/s/c9hOVrUUzmQ7oQsDjKX7Kw):
UART通信注意点:UART通信主要为了实现编码器协议,如多摩川协议。大部分通信速率2.5Mbps,由于APM32F103xB的UART最大通信速率是4.5Mbps,所以编码器协议通信速率也可以配置为4Mbps。这里需要注意主频必须是UART通信速率的n倍,如果不是整数倍关系,UART时序误差变大,存在通信出错的可能性。根据多摩川协议,主机发送命令和从机发送数据之间需要3us间隔,这里可以采用结合空语句进行延时,每个命令的延时不同,都需要调试好。由于UART发送需要连续发送多个字节(如下图所示),如果不采用DMA功能,UART发送的字节之间会有空闲时序延时,所以,需要借助DMA才能实现无延时的连续字节发送。
SPI通信注意点:SPI主要与单圈芯片进行通信,获取单圈信息。SPI通信速率约高,抗干扰能力越差,而且,有的单圈芯片的SPI通信速率有限。鉴于电机磁干扰比较大,建议SPI通信速率10Mbit/s。在PCB布线时候,SPI时钟线和数据线尽量短。
ADC电压采样注意点:由于主电电压和电池电压变化相对比较缓慢,为了提高CPU执行效率,建议采用DMA循环采样模拟,不占用CPU运行时间。如果电源环境比较差,还可以考虑对ADC值进行滤波处理。
其他注意点:为了提高位置信息的实时性,建议在伺服驱动器发送UART命令的同时,启动SPI读取单圈数据,在发送UART数据前更新位置信息到UART发送数组中。这样,可以实现位置传输零延时,提高系统的实时性。
基于APM32F103TB的方案框图如下所示:
UART通信注意点:与多圈系统和协议转换方案注意点一样。
ADC采样注意点:为了提高角度准确性,需要保证ADC1和ADC2同时采样SIN和COS模拟信号。APM32F103xB的两个ADC的具有主从模式,当ADC1和ADC2都配置为规则同步模式时,ADC1和ADC2可以实现同步采样,参考配置如下图所示。需要注意的是,在启动ADC采样时,ADC1和ADC2都要进行软件启动转换规则通道,即先使能“ADC_SoftwareStartConvCmd(ADC2,ENABLE);”再使能“ADC_SoftwareStartConvCmd(ADC1,ENABLE);”,否则,ADC2不采样。对于主电和电池电压采样,可以配置为注入通道,当SIN和COS信号采集完成的空闲时间,可以启动注入通道。
除了以上SPI通信、UART通信、ADC采样等注意点,绝对值编码器还有很多细节需要处理,需要在开发过程中不断积累经验。
最后提一下功耗问题,常温下, APM32F103xB在STOP模式下功耗一般在12uA左右,由于芯片个体差异,会存在1uA左右的误差。非MCU电路板器件选择好,主电掉点后,整个编码器的功耗能做到20uA以内,这个可以满足大部分产品需求了。
使用特权
发表回复 本版积分规则 回帖后跳转到最后一页
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注21ic项目外包
扫码关注21ic视频号
扫码关注21ic抖音号
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才 | 论坛帮助
京公网安备 11010802024343号