標題: 飛控開發(fā)基礎-[6] STM32 SPI(六軸傳感器數(shù)據(jù)獲取) [打印本頁]
作者: 設計開發(fā)工程 時間: 2020-3-26 18:07
標題: 飛控開發(fā)基礎-[6] STM32 SPI(六軸傳感器數(shù)據(jù)獲取)
圖片1.png (290.15 KB, 下載次數(shù): 73)
下載附件
2020-3-26 17:54 上傳
SPI(六軸傳感器數(shù)據(jù)獲取)
一、ICM20602簡介 六軸傳感器在當今智能穿戴和定位導航產(chǎn)品中被廣泛應用,而六軸傳感器中做的最好的要屬InvenSense公司的產(chǎn)品了,ICM20602便是其推出的優(yōu)秀六軸傳感器之一。
ICM20602集成3軸加速度計和3軸陀螺儀,其中陀螺儀量程范圍可以選擇+/-250dps,+/-500dps,+/-1000dps和+/-2000dps這四種,而加速度計量程范圍可選擇+/-2g,+/-4g,+/-8g和+/-16g四種。
ICM20602支持高達400KHz的I2C以及高達10MHz的SPI,具有較高的接口兼容性。
ICM20602的實物圖如下所示。
圖片2.png (682.17 KB, 下載次數(shù): 64)
下載附件
2020-3-26 17:54 上傳
ICM20602的引腳如下圖所示。
圖片3.png (34.44 KB, 下載次數(shù): 48)
下載附件
2020-3-26 17:55 上傳
二、SPI概述SPI是指Serial Peripheral Interface的縮寫,即串行外圍設備接口,是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的引腳,SPI的4條通信線為:
(1)MISO主入從出接口;
(2)MOSI主出從入接口;
(3)SCLK由主設備產(chǎn)生的時鐘信號;
(4)CS由主設備控制的從設備片選信號。
STM32F103的SPI的時鐘最高可達18MHz,支持DMA。
SPI主從機通信,如下圖所示:
圖片4.png (10.17 KB, 下載次數(shù): 50)
下載附件
2020-3-26 17:56 上傳
當有多個設備掛載在SPI總線上,其接線圖如下圖所示。
圖片5.png (52.07 KB, 下載次數(shù): 57)
下載附件
2020-3-26 17:56 上傳
單片機和外圍器件之間進行SPI同步串行數(shù)據(jù)傳輸時,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,低位在前,高位在后,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達到幾Mbp,相比于其它總線,SPI協(xié)議簡單,相對數(shù)據(jù)速率高,但是SPI也有它的缺點,比如沒有指定的流控制,沒有應答機制確認是否接收到數(shù)據(jù)。
三、SPI總線協(xié)議SPI通信需要掌握以下知識: 時鐘極性、時鐘相位以及SPI的傳輸時序。
(1)時鐘極性,SPI通過時鐘極性(CPOL)來決定在總線空閑時,同步時鐘(SCLK)信號線的電平是高電平還是低電平。當時鐘極性為0時(CPOL=0),SCLK信號線在空閑時為低電平;當時鐘極性為1時(CPOL=1),SCLK信號線在空閑時為高電平;
(2)時鐘相位,SPI通過時鐘相位(CPHA)用來決定何時進行信號采樣。當時鐘相位為1時(CPHA=1),在SCK信號線的第二個跳變沿進行采樣;這里的跳變沿究竟是上升沿還是下降沿?這取決于時鐘的極性。當時鐘極性為0時,取下降沿;當時鐘極性為1時,取上升沿;如下圖所示:
圖片6.png (953.43 KB, 下載次數(shù): 76)
下載附件
2020-3-26 17:57 上傳
當時鐘相位為0時(CPHA=0),在SCK信號線的第一個跳變沿進行采樣。跳變沿同樣與時鐘極性有關:當時鐘極性為0時,取上升沿;當時鐘極性為1時,取下降沿;如下圖所示:
圖片7.png (107.78 KB, 下載次數(shù): 63)
下載附件
2020-3-26 17:58 上傳
四、 SPI寄存器在本次實驗中使用到的是STM32的硬件SPI,STM32的硬件SPI所涉及的寄存器較多,這里挑選較為重要的來講解。
(1)SPI_CR1:SPI控制寄存器1,如下圖所示:
圖片8.png (338.76 KB, 下載次數(shù): 59)
下載附件
2020-3-26 18:00 上傳
其中SPE為SPI使能控制位,等于1時使能SPI,等于0時關閉SPI;BR[2:0]為SPI的波特率控制位,BR[2:0]等于000則波特率為fPCLK/2,等于001則波特率為fPCLK/4,等于010則波特率為fPCLK/8,等于011則波特率為fPCLK/16,等于100則波特率為fPCLK/32,等于101則波特率為fPCLK/64,等于110則波特率為fPCLK/128,等于111則波特率為fPCLK/256;MSTR為SPI主從模式選擇位,等于0時為從模式,等于1時為主模式;CPOL為SPI時鐘極性設置位,為0則空閑時鐘為低電平,為1則空閑時鐘為高電平;CPHA為SPI時鐘相位設置位,等于0時,在第一個時鐘跳邊沿開始采集,等于1時,在第2個時鐘跳邊沿開始采集。
(2)SPI_SR:SPI狀態(tài)寄存器,如下圖所示:
其中TXE是發(fā)送緩沖區(qū)狀態(tài)位,該位為0時發(fā)送緩沖區(qū)非空,為1時發(fā)送緩沖區(qū)為空;RXNE為接收緩沖區(qū)狀態(tài)位,該位為0時接收緩沖區(qū)為空,該位為1時,接收緩沖區(qū)為非空。
(3)SPI_DR:SPI數(shù)據(jù)寄存器,用于存儲接收或者發(fā)送的數(shù)據(jù)。SPI_DR的描述如下圖所示:
其中DR[15:0]存放SPI數(shù)據(jù)。
五、六軸傳感器數(shù)據(jù)獲取實驗六軸傳感器數(shù)據(jù)獲取實驗使用STM32的硬件SPI與六軸傳感器ICM20602相連接,串口1即UART1,通過USB轉(zhuǎn)串口模塊連接電腦,把SPI獲取到的六軸數(shù)據(jù)通過串口1傳輸?shù)诫娔X端的串口調(diào)試助手顯示出來。做該實驗的時候需要把視覺模組暫時取下,并且把USB轉(zhuǎn)串口的線接到視覺模組接口處。六軸傳感器ICM20602在無人機頂部的白色RGB彩燈盒里,通過軟排把SPI及供電口接出,如下圖所示。
圖片11.png (551.01 KB, 下載次數(shù): 56)
下載附件
2020-3-26 18:04 上傳
根據(jù)原理圖,可以看到ICM20602的的SPI接口分別是:PB13、PA5、PA6、PA7,如下圖所示。
圖片11-1.png (99.45 KB, 下載次數(shù): 44)
下載附件
2020-3-26 18:04 上傳
串口1的配置可以參考《串口(基礎收發(fā)),配置代碼(通過調(diào)用官方庫)
獲取ICM20602的數(shù)據(jù)代碼編寫的思路如下:
代碼思路
1 | | 1、定義結構體; 2、使能時鐘; 3、填充結構體; 4、裝載結構體。 |
| | 1、定義結構體; 2、使能時鐘; 3、填充結構體; 4、裝載結構體; 5、使能SPI。 |
| | 1、讀一個字節(jié); 2、寫一個字節(jié)。 |
| | 1、從傳感器讀; 2、從傳感器寫; 3、ICM20602初始化。 |
SPI初始化代碼如下:
圖片12.png (80.94 KB, 下載次數(shù): 57)
下載附件
2020-3-26 18:05 上傳
SPI的讀寫代碼如下。
圖片13.png (46.18 KB, 下載次數(shù): 51)
下載附件
2020-3-26 18:05 上傳
ICM20602的初始化代碼如下。
圖片14.png (2.01 MB, 下載次數(shù): 54)
下載附件
2020-3-26 18:06 上傳
ICM20602的讀寫代碼如下。
圖片15.png (34.25 KB, 下載次數(shù): 71)
下載附件
2020-3-26 18:06 上傳
這里注意要把串口的發(fā)送也配置好,這樣才能把數(shù)據(jù)發(fā)送到電腦。串口1通過USB轉(zhuǎn)串口模塊接到電腦,獲取ICM20602代碼如下。
圖片15-1.png (40.09 KB, 下載次數(shù): 64)
下載附件
2020-3-26 18:06 上傳
保存、編譯、下載代碼,可以看到USB
轉(zhuǎn)串口模塊在不斷地打印ICM20602的X軸加速度高8位,數(shù)據(jù)如下圖所示:
圖片16.png (449.84 KB, 下載次數(shù): 60)
下載附件
2020-3-26 18:07 上傳
-
圖片10.png
(324.57 KB, 下載次數(shù): 66)
下載附件
2020-3-26 18:01 上傳
-
圖片9.png
(293.55 KB, 下載次數(shù): 64)
下載附件
2020-3-26 18:00 上傳
作者: 2265109256 時間: 2022-10-9 14:01
您好,可以分享一下完整代碼嗎
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
日韩天堂网
|
超碰在线中文字幕
|
黄色片视频在线观看
|
国产网站在线
|
天天射影院
|
国内外成人免费视频
|
天天操天天看
|
亚洲欧美日韩一区二区三区四区
|
国产www视频
|
亚洲人精品|
在线亚洲欧美
|
欧美成人精品欧美一级乱黄
|
日韩一二区
|
91福利网站|
三上悠亚一区二区
|
久久久久久久免费视频
|
国产精品高潮呻吟
|
亚洲国产精品久久
|
日韩一区二区视频
|
波多野结衣乳巨码无在线观看
|
日韩一区不卡
|
亚洲免费网站
|
国产一区二区精品丝袜
|
青青艹在线视频
|
久久精品人人
|
一区二区三区国产精品
|
一级a毛片
|
国产盗摄视频
|
欧美日韩一区二区三区视频
|
国产伦精品一区二区三区免.费
|
黄av在线
|
国产三级成人
|
成人免费视频视频
|
久久久精品网
|
国产视频黄色
|
日韩一区二区三区在线播放
|
a视频在线免费观看
|
久草资源网
|
中文在线观看免费网站
|
成人三级在线观看
|
超碰97免费|