AMS5601的ardunio和STM32驅動開發 本文有 "麥粒電子" 撰寫,並提供相應產品服務。 前言 目前ams關於磁編碼晶元用的比較多的可能是ams5600,能夠輸出pwm信號,電壓信號以及I2C通信數字讀取。這款晶元目前在市面上也比較容易買到,價格相對也便宜。 "有需要的AS5600模塊可 ...
AMS5601的ardunio和STM32驅動開發
本文有麥粒電子撰寫,並提供相應產品服務。
前言
目前ams關於磁編碼晶元用的比較多的可能是ams5600,能夠輸出pwm信號,電壓信號以及I2C通信數字讀取。這款晶元目前在市面上也比較容易買到,價格相對也便宜。有需要的AS5600模塊可以點擊鏈接瞭解。
但是在編碼器應用中,尤其在在電機應用。對編碼器的輸出信號還有一種A、B、Z相對信號的方式。在這種情況下ams5600絕對值位置檢測顯得就不能滿足要求。由此,我們把目光註意到了ams5601。這款晶元功能和ams5600一脈相承,只是多了一個A、B向輸出的類型和按鈕檢測。
簡介
AS5601是一個12bit精度的磁編碼器晶元,能夠輸出增量AB信號,iic信號,push信號。引腳信息如下圖所示。
下圖為本文使用的as5601模塊
值得註意的是as5601內部有給LDO穩壓晶元,所以其可以有2種電壓操作模式(5V和3.3V),相應的電路圖如下圖所示。可根據自己的情況選擇。
開發
準備:徑向圓形磁鐵;ardunio開發板;as5601模塊;杜邦線若幹。
1.將控制板利用杜邦線連接as5601的相應IIC,AB,電源等介面。
2.圓形磁鐵放置再AS5601晶元正上方,最遠距離為3mm,當然如果磁鐵磁性夠強,也可以更遠。
3.編寫ardunio驅動代碼。如下圖所示
輸出結果如下所示
註意點
as5601提供永久零點寫入功能,分別是Burn_Angle Command和Burn_Setting Command 。區別是一個可以寫入3次,一個只能寫入一次。如下如圖所示。
後續增加了更加詳細的as5601的寄存器命令功能,AB相檢測,永久燒錄功能,並且再STM32上實現驅動開發。詳情請點擊如下鏈接。****