摘要
本篇筆記主要記錄在調(diào)試Allegro microsystem 公司生產(chǎn)的A1333 高速,低延遲,帶有診斷和ASIL D 認證的無接觸式的0~360°的角度位置傳感器IC時遇到的一些問題。
A1333簡介
A1333可以無接觸測量0~360°角度,符合ISO262的功能安全認證ASIL D等級。 帶有自診斷功能,是一種霍爾效應的SoC,包含三部分,CVH(Circular Vertical Hall) 前端,數(shù)字信號處理部分,和電機換向和編碼器輸出,而且片上還有EEPROM,可以用來存儲參數(shù),因為符合ASIL D等級認證,所以是汽車應用的理想選擇,廣泛用于,電動轉(zhuǎn)向,油門控制等系統(tǒng),有24腳eTSSOP 封裝的和14腳封裝的, 24腳的是雙軌的,14腳封裝的是單軌的。
系統(tǒng)框圖
從系統(tǒng)框圖也可以看出,總體包含我們前面說的由三部分組成,CVH前端,數(shù)字信號處理和電機換向輸出UVW,/編碼器輸出。
典型應用框圖
一般我們都是用一個單片機來配合控制A1333, A1333有SPI 接口和ABI接口,這次我們以SPI接口為例子。
理論上任何一款帶SPI的單片機都可以完成和A1333的通信,但如果是汽車應用,要選用帶有ASIL 認證的單片機。 我們以MPC5744p 這款帶有ASIL D認證的單片機為例子。 采用4線SPI 接口和 A1333通信,使用SPI 的模式3 CPHA, CPOL 為1,1 配置。
引腳介紹
因為我們這次是以SPI通信來和A1333交換數(shù)據(jù),所以SPI 通信的一些參數(shù)要注意下。
輸入輸出時序圖
SPI通信幀格式
A1333有三種SPI通信格式,有三種分別是16位,17位,和20位。
其實我們的驅(qū)動軟件就是要支持幾種格式,完成通信,而讀寫邏輯也在書冊中給出了。
寫邏輯
總結(jié)起來就是,寫的時候包含一位低,一位讀寫控制位,寫為高,讀 為低,6位寄存器地址位,8位數(shù)據(jù),如果是16位幀格式就完了, 如果是20位幀格式,末尾還需加上4位CRC校驗。 要實現(xiàn)一個16位數(shù)據(jù)的寫操作,需要發(fā)送兩次寫邏輯來完成。
至于代碼的實現(xiàn),可以采用SPI查詢模式,也可以采用中斷或者DMA方式,這個都可以,一定要注意寫一個16位的數(shù)據(jù)要通過兩次寫操作才能完成。
讀邏輯
讀操作總結(jié)起來就是一句話,按照格式同樣的內(nèi)容發(fā)兩遍這樣第二遍才能獲取結(jié)果。
代碼實現(xiàn)上也是這樣操作,包含一位低,一位讀寫控制位,寫為高,讀 為低,6位寄存器地址位,8位數(shù)據(jù)。 按照書冊要求,結(jié)合SDK可以很容易的完成驅(qū)動的開發(fā)和使用,重點在調(diào)試。
驅(qū)動開發(fā)
本次我們使用SDK,結(jié)合上位機初始化配置工具完成驅(qū)動的生成。 其中SPI的配置如下。
在根據(jù)自己的實際應用硬件配置相應管腳就可以生成代碼了,生成的工程是空的,我們需要調(diào)用生成的驅(qū)動函數(shù)來完成對A1333的驅(qū)動,其實就是完成讀寫函數(shù),然后在主程序中通過狀態(tài)機去調(diào)用實現(xiàn)不同地址,不同寄存器的操作,包含角度的讀取,零點的校準,等操作。
測試
按照手冊要求完成了驅(qū)動開發(fā),可是通訊的時候,A1333沒有反應,用示波器測到的波形如下。
發(fā)送的數(shù)據(jù)和時鐘波形都是正確的,可是A1333從機沒有反應,讀取到的值全是0, 是有問題的,應檢查軟件代碼和硬件排查問題。
軟件上首先排查驅(qū)動有沒有問題,經(jīng)過多次手冊閱讀和軟件排查發(fā)現(xiàn)配置和驅(qū)動都沒有問題,最后就排查硬件,因為是從硬件工程師手里拿到的板子,一開始沒有排查硬件,后來和硬件工程師一塊排查,發(fā)現(xiàn)TEST腳沒有接地,而是被拉到了電源柜VCC上,這樣導致A1333工作不正常,TEST腳是廠家測試用的,一般正式用要拉地。 后將TEST腳拉地,A1333有了數(shù)據(jù)回應。
經(jīng)過排查是因為Test 管腳沒有接地,直接接到了Vcc上, Test 應該接地按照手冊要求,經(jīng)硬件工程師更改電路,將Test飛線接地,工作正常。
EEPROM解鎖
A1333含有EEPROM可以用來存儲參數(shù),但是在操作前需要解鎖,而解鎖是需要特殊密碼指令的。
就是連續(xù)發(fā)送這5條寫指令,然后讀取0x3C寄存器,按照解鎖指令和時序發(fā)送完指令后,可以讀取0x3C地址,如果 寄存器的最低位 bit0 如果返回為1,表明解鎖成功。 驅(qū)動測試波形如下。
解鎖成功后,就可以進行EEPROM的操作,更改參數(shù),例如零點的校準角度,等等,這里就不在贅述。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51106瀏覽量
753674 -
接口
+關(guān)注
關(guān)注
33文章
8605瀏覽量
151199 -
調(diào)試
+關(guān)注
關(guān)注
7文章
578瀏覽量
33946 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91599 -
allegro
+關(guān)注
關(guān)注
42文章
656瀏覽量
145181
發(fā)布評論請先 登錄
相關(guān)推薦
評論