请选择 进入手机版 | 继续访问电脑版
搜索
热搜:
查看: 3573|回复: 1

AS5055,使用MSP430单片机用于角度测量的应用和注意事项

[复制链接]

1

主题

4

帖子

257

积分

中级会员

Rank: 3Rank: 3

积分
257
发表于 2015-4-25 17:28:00 | 显示全部楼层 |阅读模式
本帖最后由 ayl439 于 2015-4-25 17:28 编辑

       前言:角度测量,早期大多用光电编码器实现,早些年就听说过磁编码器的方案,相比光电编码器主要有功耗和体积的优势,正好近期有项目需求,了解了以下AMS的磁编码器,认为非常符合需求,遂确定使用磁编码器方案。

       传感器芯片选型:AMS的磁编码器产品很多,进行比较后认为AS5055较为合适,该芯片使用SPI接口,封装较小,编程简单,并且很容易控制功耗,尤其在低速的场合,能达到极低的功耗。我的应用需要9、10位的分辨,考虑到磁编码器实质上是AD出的结果,必然存在一定的抖动,要留一定的裕量,该型号12位的分辨率足够用了。
      
       设计上的细节和注意事项:
       1、主控MCU的选择:低功耗设备,尤其是超低功耗设备,MCU的典型选择就是MSP430单片机,也是我常用的单片机,当然近年M0和M0+的出现也提供了更多可选方案。这里选用性价比较高的MSP430G2303。原理图参考附件。

       2、硬件上一定要注意电源和滤波,否则会产生不必要的噪声,会加剧AD读数跳变,影响有效角度分辨率。
       3、结构上的注意事项:由于该芯片基于磁性原理,结构设计上也要注意,如磁铁的选用、芯片和磁铁要远离铁磁性的金属(铁磁性金属靠近磁铁是会影响磁感线)等等,建议详细研读AMS提供的几篇数据手册,否则会很大程度上影响角度测量的精度。
       4、软件相关:由于SPI总线是非常常见的总线形式,且MCU有硬件SPI,用起来非常简单,这里不再赘述。代码非常简单(硬件SPI的配置跟MCU相关,不同的MCU配置方法是不同的,这里未列出):
uint MRE_RW(uint cmd)
{
    uint rtn_val;
    MRE_EN;
    rtn_val = UCB0_SPI_RW_Byte((uchar)((cmd>>8)&0x00FF));
    rtn_val <<= 8;
    rtn_val += UCB0_SPI_RW_Byte((uchar)(cmd&0x00FF));
    MRE_DI;
    return rtn_val;
}
其实就是读写其中相应的寄存器而已,比如读写角度时直接调用下面的语句:
MRE2_RW(0xFFFF);
非常简单吧………………哈哈!确实太好用了!

原理图

原理图
回复

使用道具 举报

77

主题

266

帖子

9703

积分

版主

Rank: 7Rank: 7Rank: 7

积分
9703
发表于 2015-4-27 09:01:52 | 显示全部楼层
不错~感谢~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ams社区

GMT+8, 2021-1-16 07:32 , Processed in 0.068561 second(s), 16 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表