AS5600是一顆使用N/S磁場來辨識角度的磁編碼器,模組的價格僅幾十塊台幣,在精度及速度要求不高的場合還滿好用的。
得知有這樣的產品,立馬購入測試。
一開始先選擇最簡單的類比輸出方式(只須接VCC、OUT、GND)來做測試,但其OUT腳位的電壓值卻沒有隨著上方磁鐵的旋轉而發生任何變化。不得不只好找它的Datasheet來讀,才發現其"PGO"腳被電路板的一顆電阻給拉到低電位了,這樣AS5600會進入Programming Option B的模式(使用OUT腳來編輯角度範圍),才導致其無法正常輸出。
這時可以選擇使用接線將PGO腳位連接到高電位,或是將電路板上的這顆電阻拆下即可。
底下是一些使用的記錄:
這個模組出廠是預設使用3.3V,若要使用於5V的環境只須要將下圖中這顆0歐姆的電阻拆掉即可。
考量類比輸出模式是晶片內部先將演算出的角度數位信號,透過D/A轉換輸出到OUT腳,而我們再將這個信號經由A/D轉換得到數位信號進行分析應用,再加上類比信號受干擾的機會,大大增加了其不穩定性,所以最後選擇了使用I2C來取得角度位置訊息。
實際使用I2C與其通訊後,發現其表現與我讀其Datasheet的理解不大一樣。原本預期可以連續讀取相連位址的暫存器,但它只回應了一個位址的資料後即帶了一個NA,必須再重新下一次讀取指令才能讀取下一個位址。不知道是我少看了什麼、少做了什麼,或是理解錯誤?
(預期可以如上圖一樣連續讀取)
(實際上只回傳了一個位址的資料後即帶了一個NA)
最後只好屈服,每次都指定位址及讀取兩次角度訊息。
再來提醒一下,變更一些設定是有次數限制的(永久變更),有些只能變更一次,有些是三次。(我沒有實際做,只是從Datasheet上看到)
我最後實際應用的接線:
以上如有錯誤還請指正,感謝!