Skip to content
This repository was archived by the owner on Dec 17, 2021. It is now read-only.

STM32 #4 SPI:以MPU 9250九軸慣性測量單元為例

Shih En edited this page Apr 21, 2018 · 21 revisions

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

SPI是一種4線同步序列資料協定。一端為一”主控裝置(Master)”,另一端為一或多個 ”從屬裝置(Slave)”。

1 Master 對 1 Slave:

1 Master 對 3 Slave:

SPI的四個訊號為:

  • MISO: Master In, Slave Out。Master透過此腳接收從slave傳來的資料。
  • MOSI: Master Out, Slave In。Master透過此腳接傳送資料給slave。
  • SCK: 由master提供clock輸出給slave當成通訊clock
  • NSS: Slave select. 該腳可以被master當作要和哪個slave做溝通

GY-91 Pinouts

  • VIN: Voltage Supply Pin
  • 3V3: 3.3v Regulator output
  • GND: Ground
  • SCL: I2C Clock / SPI Clock
  • SDA: I2C Data or SPI Data Input
  • SDO/SAO: SPI Data output / I2C Slave Address configuration pin
  • NCS: Chip Select for SPI mode only for MPU-9250
  • CSB: Chip Select for BMP280

STM32F103-Nucleo -- GY-91連接:

STM32F103-Nucleo GY-91
GND GND
3V3 VIN
PA5 (SPI1 SCK) SCL
PA6 (SPI1 MISO) SDA
PA7 (SPI1 MOSI) SDO/SAO
PA4 (SPI1 SS) NCS

Clone this wiki locally