AMS5601的ardunio和STM32驱动开发

AMS5601的ardunio和STM32驱动开发

本文有麦粒电子撰写,并提供相应产品服务。

  • 前言

    目前ams关于磁编码芯片用的比较多的可能是ams5600,能够输出pwm信号,电压信号以及I2C通信数字读取。这款芯片目前在市面上也比较容易买到,价格相对也便宜。有需要的AS5600模块可以点击链接了解。

    但是在编码器应用中,尤其在在电机应用。对编码器的输出信号还有一种A、B、Z相对信号的方式。在这种情况下ams5600绝对值位置检测显得就不能满足要求。由此,我们把目光注意到了ams5601。这款芯片功能和ams5600一脉相承,只是多了一个A、B向输出的类型和按钮检测。

  • 简介

    AS5601是一个12bit精度的磁编码器芯片,能够输出增量AB信号,iic信号,push信号。引脚信息如下图所示。
    AMS5601的ardunio和STM32驱动开发
    下图为本文使用的as5601模块
    AMS5601的ardunio和STM32驱动开发
    AMS5601的ardunio和STM32驱动开发

    值得注意的是as5601内部有给LDO稳压芯片,所以其可以有2种电压操作模式(5V和3.3V),相应的电路图如下图所示。可根据自己的情况选择。
    AMS5601的ardunio和STM32驱动开发

  • 开发

    准备:径向圆形磁铁;ardunio开发板;as5601模块;杜邦线若干。

    1.将控制板利用杜邦线连接as5601的相应IIC,AB,电源等接口。
    2.圆形磁铁放置再AS5601芯片正上方,最远距离为3mm,当然如果磁铁磁性够强,也可以更远。
    3.编写ardunio驱动代码。如下图所示
    AMS5601的ardunio和STM32驱动开发

    输出结果如下所示
    AMS5601的ardunio和STM32驱动开发

  • 注意点

    as5601提供永久零点写入功能,分别是Burn_Angle Command和Burn_Setting Command 。区别是一个可以写入3次,一个只能写入一次。如下如图所示。
    AMS5601的ardunio和STM32驱动开发

  • 后续增加了更加详细的as5601的寄存器命令功能,AB相检测,永久烧录功能,并且再STM32上实现驱动开发。详情请点击如下链接。****
    AMS5601的ardunio和STM32驱动开发

上一篇:从源码角度理解Java设计模式——装饰者模式


下一篇:Java设计模式--装饰器模式到Java IO 流