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次,發文人進小黑屋喔~

評論