本篇文章主要介紹,通過 MCU :S32K144 對 NSA9260 寄存器進行讀寫操作,並通過串口工具列印出讀寫寄存器的值。
一、 簡介
1.1 Novosense NSA9260 Boost
1、NSA9260 是一個橋式汽車壓力傳感器調理晶片
2、支持 AEC-Q100 認證
3、專有的 OWI 通信模式
4、工作電壓範圍:4.5~5.5V
5、封裝形式:SSOP16
1.2 NSA9260 應用場合
1、壓力傳感器及變送器
2、汽車制動系統
3、汽車空調系統
1.3 NSA9260 晶片框架圖
二、 演示
2.1 設計思路
1、通過 MCU(S32K144) 給 NSA9260 Sensor 供電和通信
2、通過 OWI 協議讀寫 NSA9260 Sensor 寄存器
3、讀取 NSA9260 Sensor 寄存器的值,串口列印出來
2.2 硬體資源
1) WPI Echoes(S32K144-Q100)
2) WPI LPClink2 Debugger
3) NovoSense NSA9260 Sensor
4) WPI USB Programming Dongle
下面是硬體連接圖:
2.3 軟體資源
1) 代碼開發:S32 Design Studio for ARM v2.2
2) 串口工具:MobaXterm_Per
代碼部分展示:
OWI 主機在發送開始條件後需要發送尋址和讀寫控制信息,包含 8 位的寄存器地址,2 位字節數控制位和 1 位讀寫控制位。寄存器地址指示讀寫寄存器的首地址( MSB 在前)。字節數控制位指示連續讀寫的字節數, 00 :讀寫 1 個字節, 01 :讀寫 2 個字節, 10 :讀寫 3 個字節, 11 :讀寫 4 個字節。讀寫控制位指示是讀操作還是寫操作,0 :寫操作, 1 :讀操作。
在讀操作中,OWI 主機發送完讀寫控制位後,將 OWI 線拉高一段時間後(<1/4 OWI周期),再將引腳設為輸入狀態。晶片會在 OWI 為高后,開始連續發送指定寄存器地址開始的1/2/3/4(由字節數控制位決定)
字節的內容及其 2 位奇偶校驗碼(C1 和 C0),OWI 主機在接收到全部數據後重新獲得總線控制權,如圖所示。
其中,
C1 = Read_data[7] ^ Read_data[5] ^ Read_data[3] ^ Read_data[1];
C0 = Read_data[6] ^ Read_data[4] ^ Read_data[2] ^ Read_data[0].
OWI 主機可以根據該奇偶校驗位判斷讀取的數據是否正確。
在寫操作中,OWI 主機發送完讀寫控制位後,繼續發送 1/2/3/4 個字節(由字節數控制位決定),數據將被依次寫入指定的寄存器地址及其後續地址,如圖所示。
2.4 串口顯示
執行完代碼,打開串口顯示工具,按下按鍵,讀寫寄存器的值會顯示如下圖。
三、 注意事項
NSA9260 的 REG_LVL 寄存器默認值是 0,供電的電壓範圍是 4.5~5.5V ,給NSA9260 供電的電壓需在這個範圍之內,否則晶片不工作,通信失敗。
四、 Reference
[1] NSA9260X Datasheet Rev1.2CN
歡迎在博文下方留言評論,我們會及時回復您的問題。如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com
作者:Naib Zhou / 周甜甜
評論
milleryan
4 個月前