IMX6ULL | SPI 协议详解与 ADXL345 加速度传感器

发布时间:2026/9/29 11:59:33
IMX6ULL | SPI 协议详解与 ADXL345 加速度传感器
一、SPI 基础介绍SPI 是高速同步串行通信接口通信速度远高于 I2C。I2C 速率100K、400K、1.xM、最高 3.4MHzSPI 速率1MHz ~ 上百 MHz常用于驱动 OLED、加速度计等外设。SPI 传输特点高位先行。SPI 四根信号线引脚名称功能说明SCLK时钟线由 SPI 主机输出同步时钟控制数据收发节奏MOSI主机输出、从机输入主机发送数据给从机MISO主机输入、从机输出从机发送数据回传给主机CS/SS片选线选中要通信的从设备一主多从场景下不同从设备使用独立 CS 引脚通信架构一主多从一个主机可以挂载多个 SPI 从设备依靠 CS 片选来选中当前通信的从机。 时钟可以分频例如 imx6ull 内核 60MHz 时钟分频得到 1MHz 作为 SPI 通信时钟。二、SPI 核心参数CPOL 时钟极性、CPHA 时钟相位SPI 的通信时序由这两个参数组合产生 4 种工作模式主机和从机必须配置完全相同的模式否则无法正常通信。CPOLClock Polarity 时钟极性决定 SCLK 总线空闲状态电平CPOL0总线空闲时 SCLK 为低电平CPOL1总线空闲时 SCLK 为高电平CPHAClock Phase 时钟相位决定接收端在哪一个时钟边沿采样数据CPHA0在 SCLK第一个边沿采样数据CPHA1在 SCLK第二个边沿采样数据SPI 四种工作模式汇总CPOL1CPHA0空闲 SCLK 高电平下降沿采样CPOL1CPHA1空闲 SCLK 高电平上升沿采样CPOL0CPHA0空闲 SCLK 低电平上升沿采样CPOL0CPHA1空闲 SCLK 低电平下降沿采样开发外设驱动时查阅芯片手册确认该芯片使用哪一种 SPI 模式。三、UART / I2C / SPI 三大串行协议对比特性UARTI2CSPI通信类型全双工、异步、串行半双工、同步、串行全双工、同步、串行硬件连线2 根TXD、RXD2 根SCL、SDA4 根SCLK、MOSI、MISO、CS最高速率5MHz100KHz ~ 3.4MHz1MHz ~ 100MHz设备拓扑点对点多主多从一主多从数据位顺序低位先行高位先行高位先行四、IMX6ull SPI 内部机制与读写逻辑内部模块TXFIFO发送缓冲区shift register移位寄存器完成数据移位收发RXFIFO接收缓冲区SPI 非常重要特性写即是读读即是写。SPI 是全双工主机每向外发送一个字节同时就会收到从机发来的一个字节。SPI 写操作流程主机发送从机寄存器地址→ 主机发送需要写入的数据。SPI 读操作流程主机发送要读取的寄存器地址→ 主机发送 Dummy 占位字节占位符一般 0xFF 或者 0x00 → MISO 线上从机返回需要读取的数据。Dummy 字节本身没有意义只是用来产生 SCLK 时钟只有时钟跳动从机才会输出数据给主机。五、ADXL345 加速度传感器ADXL345 是 SPI 接口三轴加速度传感器。分辨率13 位数值范围0 ~ 2¹³‑1加速度量程±16g1g 9.8m/s²最小分度计算32g / (2¹³‑1) 0.0039g32g 是总量程从‑16g 到 16g 合计 32g。三轴实际加速度换算示例读取到原始 ADC 数值之后乘以最小分度 0.0039g得到真实加速度X 轴加速度 X 原始值 × 0.0039Y 轴加速度 Y 原始值 × 0.0039Z 轴加速度 Z 原始值 × 0.0039六、知识点小结SPI 为高速同步全双工接口依靠CPOLCPHA组合四种时序模式主机从机模式必须匹配。SPI 是一主多从架构靠 CS 片选选择设备写即是读读数据必须发送 Dummy 占位字节产生时钟。UART、I2C、SPI 各有优劣UART 异步简单I2C 引脚少支持多主SPI 速度最快引脚最多。ADXL345 三轴加速度计拿到原始采样值要乘以分度系数换算得到实际 g 值。