国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 1836|回復: 0
打印 上一主題 下一主題

【飛控開發基礎教程6】開源編隊無人機-SPI(六軸傳感器數據獲取)

[復制鏈接]
跳轉到指定樓層
樓主
發表于 2022-7-19 11:13:49 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
COCOFLY教程
——瘋殼·無人機·系列
SPI(六軸傳感器數據獲取)



   
    圖1


    一、ICM20602 簡介
    六軸傳感器在當今智能穿戴和定位導航產品中被廣泛應用,而六軸傳感器中做的最好的要屬 InvenSense 公司的產品了,ICM20602 便是其推出的優秀六軸傳感器之一。
    ICM20602 集成 3 軸加速度計和 3 軸陀螺儀,其中陀螺儀量程范圍可以選擇
    +/-250dps,+/-500dps,+/-1000dps 和+/-2000dps 這四種,而加速度計量程范圍可選擇+/-2g,+/-4g,+/-8g 和+/-16g 四種。
    ICM20602 支持高達 400KHz 的 I2C 以及高達 10MHz 的 SPI,具有較高的接口兼容性。
    ICM20602 的實物圖如下所示。

   
    圖2
    ICM20602 的引腳如下圖所示。

   
    圖3


    二、SPI 概述
    SPI 是指 Serial Peripheral Interface 的縮寫,即串行外圍設備接口,是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的引腳,SPI 的 4 條通信線為:
    (1)MISO 主入從出接口;
    (2)MOSI 主出從入接口;
    (3)SCLK 由主設備產生的時鐘信號;
    (4)CS 由主設備控制的從設備片選信號。
    STM32F103 的 SPI 的時鐘最高可達 18MHz,支持 DMA。SPI 主從機通信,如下圖所示:

   
    圖4
    當有多個設備掛載在 SPI 總線上,其接線圖如下圖所示。

   
    圖5
    單片機和外圍器件之間進行 SPI 同步串行數據傳輸時,在主器件的移位脈沖下,數據按位傳輸,低位在前,高位在后,為全雙工通信,數據傳輸速度總體來說比 I2C 總線要快,速度可達到幾 Mbp,相比于其它總線,SPI 協議簡單,相對數據速率高,但是 SPI 也有它的缺點,比如沒有指定的流控制,沒有應答機制確認是否接收到數據。

    三、SPI 總線協議
    SPI 通信需要掌握以下知識: 時鐘極性、時鐘相位以及 SPI 的傳輸時序。

    (1)時鐘極性,SPI 通過時鐘極性(CPOL)來決定在總線空閑時,同步時鐘(SCLK)信號線的電平是高電平還是低電平。當時鐘極性為 0 時(CPOL=0), SCLK 信號線在空閑時為低電平;當時鐘極性為 1 時(CPOL=1),SCLK 信號線在空閑時為高電平;
    (2)時鐘相位,SPI 通過時鐘相位(CPHA)用來決定何時進行信號采樣。當時鐘相位為 1 時(CPHA=1),在 SCK 信號線的第二個跳變沿進行采樣;這里的跳變沿究竟是上升沿還是下降沿?這取決于時鐘的極性。當時鐘極性為 0
    時,取下降沿;當時鐘極性為 1 時,取上升沿;如下圖所示:


圖6
    當時鐘相位為 0 時(CPHA=0),在 SCK 信號線的第一個跳變沿進行采樣。跳變沿同樣與時鐘極性有關:當時鐘極性為 0 時,取上升沿;當時鐘極性為 1
    時,取下降沿;如下圖所示:

   
    圖7
    四、 SPI 寄存器
    在本次實驗中使用到的是 STM32 的硬件 SPI,STM32 的硬件 SPI 所涉及的寄存器較多,這里挑選較為重要的來講解。

    (1)SPI_CR1:SPI 控制寄存器 1,如下圖所示:

   
    圖8
    其中 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 狀態寄存器,如下圖所示:

   
    圖9
    其中 TXE 是發送緩沖區狀態位,該位為 0 時發送緩沖區非空,為 1 時發送緩沖區為空;RXNE 為接收緩沖區狀態位,該位為 0 時接收緩沖區為空,該位為1 時,接收緩沖區為非空。
    (3)SPI_DR:SPI 數據寄存器,用于存儲接收或者發送的數據。SPI_DR 的描述如下圖所示:

   
    圖10
    其中 DR[15:0]存放 SPI 數據。
    五、六軸傳感器數據獲取實驗

    六軸傳感器數據獲取實驗使用 STM32 的硬件 SPI 與六軸傳感器 ICM20602 相連接,串口 1 即 UART1,通過 USB 轉串口模塊連接電腦,把 SPI 獲取到的六軸數據通過串口 1 傳輸到電腦端的串口調試助手顯示出來。做該實驗的時候需要把視覺模組暫時取下,并且把 USB 轉串口的線接到視覺模組接口處。六軸傳感器 ICM20602 在無人機頂部的白色 RGB 彩燈盒里,通過軟排把 SPI 及供電口接出,如下圖所示。

   
    圖11
    根據原理圖,可以看到 ICM20602 的的 SPI 接口分別是:PB13、PA5、PA6、PA7,如下圖所示。


    圖12
    串口 1 的配置可以參考《串口(基礎收發),配置代碼(通過調用官方庫) 獲取 ICM20602 的數據代碼編寫的思路如下:

    代碼思路

   
    表1
    SPI 初始化代碼如下:

   
    圖13
    SPI 的讀寫代碼如下。

  
    圖14
    ICM20602 的初始化代碼如下。

  
    圖15
    ICM20602 的讀寫代碼如下。

   
    圖16
    這里注意要把串口的發送也配置好,這樣才能把數據發送到電腦。串口 1 通過 USB 轉串口模塊接到電腦,獲取 ICM20602 代碼如下。


  
    圖17
    保存、編譯、下載代碼,可以看到 USB 轉串口模塊在不斷地打印 ICM20602
    的 X 軸加速度高 8 位,數據如下圖所示:

   
    圖18






更多完整學習資料和對應開源套件,請登陸官網:“瘋殼”

如需定制開發,請通過官網“瘋殼”網頁底部的“聯系我們”進行聯系

    文件下載請點擊: 【6】SPI(六軸傳感器數據獲取).pdf (1.19 MB)


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本一区视频在线播放| 欧美一级免费大片| 午夜国产精品理论片久久影院| 一级毛片一级毛片一级毛片aa| 无人区理论片手机看片| 亚洲品质自拍视频网站| 一级爱| 人人看人人看人做人人模| 日本免费一区二区三区a区| 欧美视频三区| 午夜视频免费| 日本亚洲欧洲高清有码在线播放| 亚洲图区综合网| 日韩视频国产| 亚洲一区影院| 亚洲午夜精品久久久久久成年 | 色综合99| 亚洲人和日本人jzz护士| 色一级片| 亚洲国产高清在线| 亚洲欧美综合区自拍另类| 日本最新新片在线观看免费| 天天色天天综合| 青青青草视频| 天天操操操操操| 色综合天天色综合| 欧洲黄色小说| 亚州不卡| 亚洲欧美日韩国产精品网| 污污成人一区二区三区四区| 亚洲欧洲在线视频| 青草资源站| 色片在线免费观看| 一级免费| 亚洲成a人v欧美综合天堂软件| 日韩亚洲国产欧美精品| 欧美无遮挡一区二区三区 | 日韩精品视频在线免费观看| 日本美女视频韩国视频网站免费 | 日本久久久久中文字幕| 青草草在线观看免费视频|