ST MP157 设备树及驱动开发-SPI驱动

555 阅读1分钟

1 硬件电路

image.png

2 设备树

image.png

  • cs-gpios”属性是用来设置 SPI 的片选引脚。SPI 主机驱动就会根据此属性去控制设备的片选引脚,本实验我们使用 PZ3 作为片选引脚。关于 cs-gpios 属性的详细描述可以参考绑定文档:Documentation/devicetree/bindings/spi/spi-controller.yaml。如果一个 SPI 接口下连接了多个 SPI 芯片,那么 cs-gpios 属性里面就要添加所有 SPI 芯片的片选信号,比如:cs-gpios = <&gpio1 0 0>, <&gpio1 1 0>, <&gpio1 2 0>, <&gpio1 3 0>;上述描述说明此时 SPI 节点下有 4 个 SPI 芯片,第一个 SPI 芯片的片选引脚为 gpio1_0,以此类推。
  • 第996行,设置 SPI 最大时钟频率为 8MHz,这是 ICM20608 的 SPI 接口所能支持的最大的时钟频率。 image.png

3 驱动开发(摘录)

3.1 icm20608reg.h

image.png

3.2 icm20608reg.c(初始化)

image.png image.png image.png image.png

3.2 icm20608reg.c(读写数据)

  • 连续读连续写 image.png image.png
  • 单读单写 image.png
  • 读取ICM20608的数据,读取原始数据,包括三轴陀螺仪、三轴加速度计和内部温度。 image.png

4 运行测试(摘录)

image.png image.png