1 硬件电路
2 设备树
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 接口所能支持的最大的时钟频率。
3 驱动开发(摘录)
3.1 icm20608reg.h
3.2 icm20608reg.c(初始化)
3.2 icm20608reg.c(读写数据)
- 连续读连续写
- 单读单写
- 读取ICM20608的数据,读取原始数据,包括三轴陀螺仪、三轴加速度计和内部温度。
4 运行测试(摘录)