亚洲综合图片区自拍_思思91精品国产综合在线观看_一区二区三区欧美_欧美黑人又粗又大_亚洲人成精品久久久久桥本

國(guó)產(chǎn)3D霍爾傳感器的SPI封裝技術(shù)分析

2023-08-15 10:13:40 來(lái)源:云深之無(wú)跡

拿到一個(gè)供應(yīng)商給的傳感器,正好是項(xiàng)目用的上,直接進(jìn)行一手研究,順便把封裝和最近搞的SPI用起來(lái)。

關(guān)于SPI的相關(guān)知識(shí)可以先去看我寫(xiě)的兩個(gè)文章。


【資料圖】

這個(gè)是國(guó)產(chǎn)的傳感器框圖

國(guó)外的一款

這個(gè)地方是使用協(xié)議時(shí)候一些要注意的地方

標(biāo)準(zhǔn)的CMOS器件

測(cè)量時(shí)候的一些點(diǎn)參數(shù),算功耗的時(shí)候有用

靈敏度有點(diǎn)小

這個(gè)是幾倍于國(guó)產(chǎn)芯片的靈敏度

芯片安裝時(shí)候的方向

方向

我們先從測(cè)量法方式開(kāi)始封裝

SPI的通訊使用的是模式3

主機(jī)一開(kāi)始發(fā)送的0001就是一個(gè)COMMAND,連續(xù)測(cè)量的意思,接著就是對(duì)里面的ZYXT進(jìn)行測(cè)量,接著把發(fā)送的權(quán)力交給我們的從機(jī),從機(jī)開(kāi)始工作。

對(duì)應(yīng)的把里面的一個(gè)項(xiàng)設(shè)置1就是對(duì)這個(gè)通道進(jìn)行測(cè)量。

OK,這就是第一步,我們把commad做好

第二個(gè)也是這樣的封裝

我們這個(gè)在使用SPI信號(hào)的時(shí)候需要有一個(gè)拉低信號(hào)線的操作

這兩行宏定義是對(duì)SPI通信中的片選信號(hào)引腳進(jìn)行控制的。

#define CS_Clr() HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET)

CS_Clr()定義了拉低片選信號(hào)的操作。

它調(diào)用了HAL庫(kù)的GPIO寫(xiě)引腳函數(shù),將CS_GPIO_Port端口的CS_Pin引腳寫(xiě)入GPIO_PIN_RESET低電平。

#define CS_Set() HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET)

CS_Set()定義了拉高片選信號(hào)的操作。

同樣通過(guò)HAL庫(kù)GPIO函數(shù),將同一片選引腳寫(xiě)入GPIO_PIN_SET高電平。

這樣,在代碼中可以通過(guò)簡(jiǎn)單調(diào)用CS_Clr()和CS_Set()兩個(gè)宏來(lái)控制SPI的片選信號(hào),不需要每次都寫(xiě)一長(zhǎng)串GPIO控制代碼。

這個(gè)時(shí)序圖就是我們的讀寄存器

讀這個(gè)0x16寄存器的位置,這個(gè)數(shù)值

22->88,這個(gè)確實(shí)是要移動(dòng)2位

可以按照上面封裝的樣子把讀取的傳感器地址寫(xiě)好

把這個(gè)操作合并在一起第一個(gè)八位是操作,后一個(gè)八位是寄存器的地址,但是要注意移位。

我們發(fā)送兩個(gè)字節(jié),所以這里就是2,接著回收的數(shù)據(jù)的數(shù)據(jù)是3個(gè)字

這個(gè)地方就是一個(gè)字節(jié)

data這里就要連續(xù)傳輸了,要2個(gè)字節(jié)

數(shù)據(jù)在此

資料看見(jiàn)的

文章應(yīng)該還有很長(zhǎng)的,馬上要12點(diǎn)了,完整的版本就看下一篇吧。

編輯:黃飛

標(biāo)簽:

上一篇:鋰離子電池充電器電路圖解析
下一篇:最后一頁(yè)