There was an error while loading. Please reload this page.
MPU-9250是一九軸慣性測量單元(IMU, Inertial Measurement Unit)IC。九軸指的是三軸的陀螺儀,三個方向的加速度計,和三個方向的磁力計,來測量物體在三維空間中的角速度,加速度,以及磁場,並以此解算出物體的姿態。
在這個練習中,我們使用GY-91這個模組,裡面包含MPU-9250九軸IMU以及BMP-280氣壓計,以STM32 MCU讀取其量測資料,並透過UART顯示在終端機上。MPU-9250設計上對外的通訊介面有I2C和SPI兩種,我們先使用SPI為例。要能正確讀取MPU-9250資料,需了解STM32 SPI介面的使用方式,以及MPU-9250的詳細使用方式,首先收集需要的技術文件如下:
SPI是一種4線同步序列資料協定。一端為一”主控裝置(Master)”,另一端為一或多個 ”從屬裝置(Slave)”。
1 Master 對 1 Slave:
1 Master 對 3 Slave:
SPI的四個訊號為:
SPI的通訊是由master主控。當master要與某一slave溝通的時候,會將與此slave連接的CS拉為低電位。在傳輸過程中CS保持低電位,直到此次傳輸完成。傳輸過程中,master打出SCK clock訊號,並同步打出MOSI輸出資料,以及同步從MISO接收資料。
SPI的傳輸有CPOL和CPHA兩設定參數控制取值的時間關係,總共有4種組合:
CPOL(clock polarity) 決定閒置時 clock 的電位。
CPHA(clock phase) 決定在 clock 的哪個 edge 取值。
參考上圖可知:
mpu9250.c