在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

對一款國產(chǎn)3D霍爾傳感器的SPI封裝

云深之無跡 ? 來源:云深之無跡 ? 2023-08-15 11:33 ? 次閱讀

嵌入式系統(tǒng)低速接口-SPI

嵌入式系統(tǒng)低速接口-SPI(完結(jié))

對一款國產(chǎn)的3D霍爾傳感器的SPI封裝.上

這篇文章完成我們的封裝,以及在STM32F4的板子上面測試。

一次費(fèi)我這么多引腳,我吐了??磥淼蒙螴IC,然后就是板子的引腳選擇注意在cubuMX里面和實(shí)際的板子絲印多次比對,一個(gè)中斷腳改了兩次,氣死我了。

BUTT_OUT 管腳用于檢測磁鐵與芯片之間的按鍵功能,并且也可以配置為 Trigger 模式,觸發(fā)單次測量。

INT:主機(jī)向芯片發(fā)送持續(xù)感應(yīng)模式或單次測量命令,芯片完成一次對應(yīng)測量項(xiàng)的測量后,INT 腳會置 1,并且在芯片發(fā)送讀取命令,讀回測量數(shù)據(jù)以前,都保持為 1。主機(jī)向芯片發(fā)送喚醒睡眠模式命令后,當(dāng)芯片周圍測量項(xiàng)的變化量超出寄存器中設(shè)定的變化閾值時(shí),INT 腳會置 1,并且在芯片發(fā)送讀取命令,讀回測量數(shù)據(jù)以前,都保持為 1。

芯片開啟喚醒睡眠模式后,當(dāng)芯片周圍的某一測量項(xiàng)強(qiáng)度發(fā)生變化,且當(dāng)前強(qiáng)度與基準(zhǔn)值的差值,超出閾值寄存器中設(shè)定值時(shí),芯片 INT 腳會拉高。在主機(jī)通過測量數(shù)據(jù)回讀幀(data Read Frame),一次性將測量數(shù)據(jù)讀回后,INT 腳拉低,否則保持為高電平。芯片 INT 腳不會主動(dòng)拉低,即某一時(shí)刻被測量項(xiàng)的強(qiáng)度與基準(zhǔn)值差值,超出設(shè)定閾值,INT 腳拉高后,如果下一時(shí)刻,被測量項(xiàng)的強(qiáng)度減弱,此時(shí)差值低于設(shè)定閾值,但主機(jī)沒有讀回測量數(shù)據(jù),INT 腳并不會主動(dòng)拉低。

010abf12-3b1b-11ee-9e74-dac502259ad0.png

除了重置芯片,其他命令發(fā)送完后芯片均會返回芯片運(yùn)行狀態(tài)(status)說明。

01281cba-3b1b-11ee-9e74-dac502259ad0.png

重置

01499cf0-3b1b-11ee-9e74-dac502259ad0.png

018738f8-3b1b-11ee-9e74-dac502259ad0.png

01cd810a-3b1b-11ee-9e74-dac502259ad0.png

定義registerName變量,用于保存寄存器地址。

定義一個(gè)comWR數(shù)組,用于保存寫入命令的數(shù)據(jù)。

將要寫入的寄存器地址Register,左移2位后賦值給registerName。這里的左移2位很可能是因?yàn)榧拇嫫鞯刂沸枰宰?Word)對齊。

組裝寫入命令數(shù)據(jù):

comWR[0]寫入命令字WRITE_REGISTER

comWR[1]寫入要寫入數(shù)據(jù)的高8位

comWR[2]寫入要寫入數(shù)據(jù)的低8位

comWR[3]寫入目標(biāo)寄存器地址registerName

這樣就組裝好了一個(gè)完整的寄存器寫入命令。

所以這段代碼的主要作用就是根據(jù)傳入的寄存器地址Register和要寫入的數(shù)據(jù)writeData,規(guī)范地組裝成一個(gè)寄存器寫命令,保存在comWR數(shù)組中。

01f5e3fc-3b1b-11ee-9e74-dac502259ad0.png

再來一段延時(shí)的代碼

定義一個(gè)uint8_t類型的循環(huán)變量i。

for循環(huán)從0循環(huán)到4,共執(zhí)行5次。

每次循環(huán)中調(diào)用__NOP()空操作。實(shí)際上是一個(gè)微秒級的延時(shí)函數(shù)

0204cade-3b1b-11ee-9e74-dac502259ad0.png

事實(shí)上,在HAL庫里面是有一個(gè)延時(shí)的函數(shù)的

獲取當(dāng)前的系統(tǒng)tick計(jì)數(shù)作為起始tick值。

將需要延時(shí)的ms數(shù)保存在wait變量中。

如果延時(shí)小于HAL_MAX_DELAY,添加一個(gè)系統(tǒng)tick頻率uwTickFreq,這個(gè)操作是為了保證至少延時(shí)1個(gè)tick。

循環(huán)查詢當(dāng)前tick和起始tick之差,直到大于或等于需要延時(shí)的tick數(shù)wait。

這樣就可以實(shí)現(xiàn)精確的ms級延時(shí)等待。

整體來說,這是一種常見且高效的延時(shí)實(shí)現(xiàn)方法,通過查詢系統(tǒng)tick計(jì)數(shù)器來判斷延時(shí)時(shí)間,避免了空輪詢耗時(shí)。

但是自帶的延時(shí)函數(shù)是ms的,我們需要ns的,所以上面就又寫了一個(gè)。

主機(jī)向芯片發(fā)送喚醒睡眠模式命令(0x28)

0220d8fa-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)是設(shè)置的命令

芯片上電后,進(jìn)行內(nèi)部初始化,當(dāng)電源穩(wěn)定后讀取OTP的值到對應(yīng)的寄存器中,上電后4ms內(nèi)完成OTP的讀取,在上電后4ms內(nèi)不允許進(jìn)行通信,當(dāng)初始化完成后芯片進(jìn)入空閑狀態(tài),允許通信測量。

023831e4-3b1b-11ee-9e74-dac502259ad0.png

這里就這樣寫就行

02550df0-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)就是一個(gè)中斷的接口

數(shù)據(jù)OK了以后,就設(shè)置為了,這個(gè)是引腳中斷。

027af074-3b1b-11ee-9e74-dac502259ad0.png

讀取到這值以后

02a40c7a-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)就是

02c50952-3b1b-11ee-9e74-dac502259ad0.png

定義counter變量,初始化為1,用于保存需讀取的數(shù)據(jù)計(jì)數(shù)。

定義com變量,用于保存讀取命令,其中包含了軸信息axis。

進(jìn)入for循環(huán),循環(huán)4次,對應(yīng)4個(gè)軸(XYZ)。

每次循環(huán):

根據(jù)axis的最低位值,如果為1則計(jì)數(shù)加2,如果為0則計(jì)數(shù)不變。

然后右移axis的位,判斷下一位。

這樣通過位運(yùn)算判斷axis的每一位,根據(jù)每個(gè)軸是否啟用來累加計(jì)數(shù)。

最后counter保存總的需讀取數(shù)據(jù)計(jì)數(shù)。

02e586aa-3b1b-11ee-9e74-dac502259ad0.png

接著把中斷號碼來還原,等著下次繼續(xù)

用于解析傳感器讀取回來的數(shù)據(jù),并計(jì)算出三軸xyz的數(shù)據(jù)。

主要邏輯是:

從DataReadFrame數(shù)組取出兩兩字節(jié)的數(shù)據(jù),分別對應(yīng)溫度t和三軸xyz。

對xyz各軸數(shù)據(jù),通過位運(yùn)算(左移8位)和按位或運(yùn)算來組合兩個(gè)字節(jié)的數(shù)據(jù)。

例如x軸,高字節(jié)DataReadFrame[3]左移8位,低字節(jié)DataReadFrame[4]不變,最后進(jìn)行按位或,就可以組合成16位有符號整數(shù)數(shù)據(jù)。

溫度t也是同樣的處理過程。

030acd2a-3b1b-11ee-9e74-dac502259ad0.png

開始選擇SPI

03495e28-3b1b-11ee-9e74-dac502259ad0.png

對著數(shù)據(jù)手冊好好看

035d9d70-3b1b-11ee-9e74-dac502259ad0.png

CS引腳

03855310-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)就是中斷了

0399f0b8-3b1b-11ee-9e74-dac502259ad0.png

TRIG

03c20e18-3b1b-11ee-9e74-dac502259ad0.png

記得打開中斷開關(guān)

03d31b68-3b1b-11ee-9e74-dac502259ad0.png

為了好計(jì)算,時(shí)鐘都是1Mhz

03f16942-3b1b-11ee-9e74-dac502259ad0.png

0419a6b4-3b1b-11ee-9e74-dac502259ad0.png

第一次通過

 error: call to undeclared library function 'printf' with type 'int (const char *, ...)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]

043d904c-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)是忘了加頭文件,以及如果用microLIB就要加stdio

04570ee6-3b1b-11ee-9e74-dac502259ad0.png

047a43b6-3b1b-11ee-9e74-dac502259ad0.png

這個(gè)是因?yàn)椋阍谖募用娴奶砑邮菬o用的,記得在這里添加

04a33140-3b1b-11ee-9e74-dac502259ad0.png

OK

04d46634-3b1b-11ee-9e74-dac502259ad0.png

確定無誤

04fb553c-3b1b-11ee-9e74-dac502259ad0.png

上傳成功

0516941e-3b1b-11ee-9e74-dac502259ad0.png

這里就是調(diào)試,但是我沒有磁鐵不知道是不是沒有感應(yīng)到信號

053320ac-3b1b-11ee-9e74-dac502259ad0.png

調(diào)試頁面

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8694

    瀏覽量

    151925
  • 封裝
    +關(guān)注

    關(guān)注

    127

    文章

    7997

    瀏覽量

    143411
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1722

    瀏覽量

    92130
  • 霍爾傳感
    +關(guān)注

    關(guān)注

    0

    文章

    42

    瀏覽量

    10062

原文標(biāo)題:對一款國產(chǎn)的3D霍爾傳感器的SPI封裝.中

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    怎樣去選擇一款合適的霍爾電流傳感器

    霍爾電流傳感器的主要優(yōu)點(diǎn)有哪些?怎樣去選擇一款合適的霍爾電流傳感器呢?
    發(fā)表于 09-30 08:54

    TMAG5170 3D霍爾效應(yīng)位置傳感器介紹

    德州儀器 (TI) 推出業(yè)內(nèi)超精確的 3D 霍爾效應(yīng)位置傳感器。借助 TMAG5170,工程師能夠在高達(dá) 20 kSPS 的速度下無需校準(zhǔn)即可實(shí)現(xiàn)超高精度,從而在工廠自動(dòng)化和電機(jī)驅(qū)動(dòng)應(yīng)用中進(jìn)行更快
    發(fā)表于 11-04 08:11

    奧地利微電子推出3D霍爾傳感器AS5410

    奧地利微電子公司近日推出全球首基于全功能3D霍爾平臺的線性位置傳感器AS5410。獨(dú)特的3D霍爾
    發(fā)表于 06-08 09:03 ?2216次閱讀

    3D霍爾傳感器的前景如何

    霍爾開關(guān)、速度霍爾、電流霍爾,到線性/角度霍爾、3D霍爾,各類
    發(fā)表于 10-11 09:38 ?2159次閱讀

    國內(nèi)首!燦瑞科技發(fā)布基于3D霍爾技術(shù)的可編程3D霍爾傳感器

    11月1日,記者從燦瑞科技(688061.SH)獲悉,該公司發(fā)布了國內(nèi)第一款3D霍爾傳感器OCH1970。該產(chǎn)品也是燦瑞科技針對消費(fèi)電子、工業(yè)市場獨(dú)立設(shè)計(jì)的第
    的頭像 發(fā)表于 11-03 13:16 ?2538次閱讀

    具有雜散磁場補(bǔ)償?shù)?b class='flag-5'>3D霍爾效應(yīng)位置傳感器

    CUR 4000 – 具有雜散磁場補(bǔ)償?shù)?b class='flag-5'>3D霍爾效應(yīng)位置傳感器
    的頭像 發(fā)表于 08-22 14:29 ?692次閱讀
    具有雜散磁場補(bǔ)償?shù)?b class='flag-5'>3D</b><b class='flag-5'>霍爾</b>效應(yīng)位置<b class='flag-5'>傳感器</b>

    3D霍爾傳感器與三軸的霍爾開關(guān)傳感器有什么區(qū)別和聯(lián)系

    霍爾微電子全新推出3D 3霍爾傳感器 ,那么3D霍爾
    的頭像 發(fā)表于 09-20 11:52 ?1077次閱讀

    海伯森3D閃測傳感器斬獲創(chuàng)新產(chǎn)品金獎(jiǎng)

    海伯森3D閃測傳感器HPS-DBL60于2022年4月在國內(nèi)首發(fā),是一款工業(yè)級2D/3D復(fù)合光學(xué)精密測量
    的頭像 發(fā)表于 09-26 14:15 ?877次閱讀

    3D霍爾效應(yīng)位置傳感器的基本原理及其應(yīng)用案例

    本文將回顧 3D 霍爾效應(yīng)位置傳感器的基本原理,介紹這種傳感器在機(jī)器人、篡改檢測、人機(jī)接口控制和萬向電機(jī)系統(tǒng)中的應(yīng)用。然后以 Texas Instruments 的高精度、線性
    的頭像 發(fā)表于 08-01 10:04 ?1474次閱讀
    <b class='flag-5'>3D</b><b class='flag-5'>霍爾</b>效應(yīng)位置<b class='flag-5'>傳感器</b>的基本原理及其應(yīng)用案例

    TMAG5170D-Q1具有SPI接口的雙芯片高精度3D線性霍爾效應(yīng)傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMAG5170D-Q1具有SPI接口的雙芯片高精度3D線性霍爾效應(yīng)傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-09 10:31 ?0次下載
    TMAG5170<b class='flag-5'>D</b>-Q1具有<b class='flag-5'>SPI</b>接口的雙芯片高精度<b class='flag-5'>3D</b>線性<b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>數(shù)據(jù)表

    TMAG5170 具有 SPI 接口的高精度 3D 線性霍爾效應(yīng)傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMAG5170 具有 SPI 接口的高精度 3D 線性霍爾效應(yīng)傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-12 10:44 ?0次下載
    TMAG5170 具有 <b class='flag-5'>SPI</b> 接口的高精度 <b class='flag-5'>3D</b> 線性<b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>數(shù)據(jù)表

    TMAG5170-Q1 具有 SPI 接口的高精度3D線性霍爾效應(yīng)傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMAG5170-Q1 具有 SPI 接口的高精度3D線性霍爾效應(yīng)傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-12 09:43 ?0次下載
    TMAG5170-Q1 具有 <b class='flag-5'>SPI</b> 接口的高精度<b class='flag-5'>3D</b>線性<b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>數(shù)據(jù)表

    適用于電器旋鈕的3D霍爾效應(yīng)傳感器

    電子發(fā)燒友網(wǎng)站提供《適用于電器旋鈕的3D霍爾效應(yīng)傳感器.pdf》資料免費(fèi)下載
    發(fā)表于 08-30 11:14 ?0次下載
    適用于電器旋鈕的<b class='flag-5'>3D</b><b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>

    3D霍爾效應(yīng)傳感器在機(jī)器人設(shè)計(jì)中的機(jī)械優(yōu)勢

    電子發(fā)燒友網(wǎng)站提供《3D霍爾效應(yīng)傳感器在機(jī)器人設(shè)計(jì)中的機(jī)械優(yōu)勢.pdf》資料免費(fèi)下載
    發(fā)表于 09-03 11:36 ?0次下載
    <b class='flag-5'>3D</b><b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>在機(jī)器人設(shè)計(jì)中的機(jī)械優(yōu)勢

    使用 TI 的霍爾效應(yīng)和線性 3D 霍爾效應(yīng)傳感器替代簧片開關(guān)應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《使用 TI 的霍爾效應(yīng)和線性 3D 霍爾效應(yīng)傳感器替代簧片開關(guān)應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-10 09:35 ?1次下載
    使用 TI 的<b class='flag-5'>霍爾</b>效應(yīng)和線性 <b class='flag-5'>3D</b> <b class='flag-5'>霍爾</b>效應(yīng)<b class='flag-5'>傳感器</b>替代簧片開關(guān)應(yīng)用說明
    主站蜘蛛池模板: 香蕉久久久久久狠狠色 | 久久精品国产6699国产精 | 亚洲性人人天天夜夜摸 | 国产免费私拍一区二区三区 | 国产色噜噜| 亚洲成成品网站有线 | 亚洲播播播| 欧美不卡1卡2卡三卡老狼 | 亚洲h视频在线 | 激情性爽三级成人 | 丁香六月在线 | 黄视频福利 | 四虎4hu永久免费国产精品 | 午夜在线影视 | 国产精品丝袜xxxxxxx | 中文字幕佐山爱一区二区免费 | 美女黄18以下禁止观看 | 成年片免费网址网站 | 在线日韩一区 | 免费看欧美一级特黄a大片一 | 久久国内精品 | 亚洲人成a在线网站 | 色多多视频成人影院 | 久久综合色婷婷 | 欧美亚洲另类在线观看 | 色视频国产 | 99久久精品免费观看国产 | 日xxxx| 欧美成人性色 | 你懂的网站在线观看 | 天天干天天玩天天操 | 婷婷性 | 国产三级日本三级在线播放 | 欧美黑人性受xxxx精品 | 五月天婷婷网亚洲综合在线 | 91aaa免费观看在线观看资源 | 美女一级毛片毛片在线播放 | 你懂的在线免费视频 | 手机在线免费视频 | 美女网站视频色 | 国产成人经典三级在线观看 |