ams AS5047P 磁编码器介绍

一.AS5047P 磁编码器介绍

  1. AS5047P 磁编码器概述

       AS5047P  是一款高分辨率旋转位置传感器,适用于高速(最高达 28k rpm)下的全 360 ° 范围角度测量,该传感器将垂直于芯片表面的磁场分量转换为电压,从而获取转动角度信息。该传感器主要特点如下:

  • 14 位绝对角度位置传感器;
  • 适用于最高 28K rpm 转速的测量,动态角度误差最大值约为 ±0.2°;
  • 通信支持 标准 4线SPI 串行接口;
  • 拥有 SPI、ABI、PWM、UVW 多种接口选择;
  • ABI 接口可配置输出为 4096/4000/2048/2000/1600/1200/1024/800/400/200/100 步每转。
      AS5047P 非常适合支持 BLDC 电机换向以应对具有挑战性的工业应用,例如工厂自动化、楼宇自动化、机器人、PMSM(永磁同步电机)和步进电机闭环调节,以及对光学编码器的替换。


     2. AS5047P 寄存器结构

    易失性寄存器如图 1.1 所示,每个寄存器地址均为 14 位。


                                                                                              图 1.1 易失性寄存器

简单介绍如下:

  • NOP:该寄存器执行空操作,没有实际功能。
  • ERRRFL:该寄存器用于存储错误信息,包含奇偶校验错误、无效命令错误、帧错误。
  • PROG:该寄存器用于对 OTP 存储器进行编程。
  • DIAAGC:该寄存器用于存储磁场强度诊断信息及自动增益值。
  • MAG:该寄存器用于存储CORDIC 幅度信息。
  • ANGLEUNC:该寄存器用于存储没有动态角度误差补偿的角度信息。
  • ANGLECOM:该寄存器用于存储具有动态角度误差补偿的角度信息。

  1. AS5047P 与 主机的数据传输

    (1)AS5047P-SPI 通信时序

      AS5047P 只支持 SPI 从机模式 与主机进行数据传输,采用的是 SPI mode=1 (CPOL=0, CPHA=1),以下是 SPI mode=1时序图 2 所示:


                                                                                      图 1.2 SPI mode=1 时序图

    (2)AS5047P-SPI 传输过程:

    一个 SPI 事务由一个 16 位的命令帧和一个 16 位的数据帧组成。命令帧结构如图 3  所示:



                                                                                                  图 1.3 AS5047P-SPI 命令帧结构

        一个 命令帧包含  14 位的寄存器地址和一个读 / 写位,用于指示执行读 / 写操作,bit 15 位为奇偶校验位,由bit [14:0 ] 中 1 的个数计算得到,若 bit[14:0] 中有奇数个  1,则 bit 15 置 1,否则置0。以读取 0X3FFF 寄存器为例,地址为 0X3FFF,读写位 为 1,bit [14:0 ]为 111 1111 1111 1111,其中有 15 个 1,因此 PARC 为 1,故命令帧为 1111 1111 1111 1111,0XFFFF。

数据帧结构如图 1.4 所示:

                                                                                                图 1.4 AS5047P-SPI 数据帧结构

   奇偶校验位由低15位计算得到,如果在上一个 SPI 命令帧中发生错误,则 EF 会置 1。

   SPI 读操作在 CSn 上升沿时采样 MISO 上的数据,DATA 会在下一次命令传输过程中通过 MISO 被读出,即在发送命令的同时可以读到上一次命令指定的寄存器中的数据。具体过程如图 1.5 所示:



                                                                                      图 1.5 AS5047P-SPI 读操作流程

    以上介绍仅针对读操作的流程,更多详细信息可查看 AS5047P Datasheet。

二. 使用 LPC845 EVK 读取 AS5047P 的流程

    1. 硬件连接

    首先要将 AS5047P EVK与  按照图 2.1 方式连接,硬件连接实物图如图 2.2 所示:

                                                           图 2.1 硬件连接示意图


                                                            图 2.2硬件连接实物图


2. 软件配置(本文使用的代码均以 NXP 提供的 LPC845 SDK 为基础进行修改)

     读取 AS5047P 的角度信息,在保证时序无误的前提下直接读取寄存器 ANGLECOM(0X3FFF)下的数据,无需配置其他寄存器。


     (1)SPI 初始化

                                                                  图 2.3 SPI 初始化代码

  (2) 时钟配置

                                                  图 2.4 时钟配置代码

(3)读取寄存器数据,其中 regValue 寄存器返回的数据。


                                                                           图 2.5 传输数据代码


 3. 功能验证:

 手动转动电机,我们通过串口助手观察返回的数据如图 3 所示,数据随着电机的转动而变化:


                                    图 3  串口助手数据

 

参考文档:

 [1]. AS5047P Datasheet

AS5047P_DS000324_3-00.pdf (ams.com)

[2]. AS5047P磁编码器ESP32驱动程序、硬件电路设计、SPI通信时序、逻辑波形分析

AS5047P磁编码器ESP32驱动程序、硬件电路设计、SPI通信时序、逻辑波形分析、注意事项-CSDN博客

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论