第1章 课程导论与硬件准备

各位同学,欢迎来到《SPI接口驱动调试与全志T113性能调优实战》。我是你们这门课的主讲。说实话,做嵌入式这么多年,SPI这个接口看起来简单,但真正把它调稳、调快,坑还真不少。这一章我们先打好基础,把协议、芯片特性和工具都备齐。

1.1 SPI协议基础回顾

SPI,全称Serial Peripheral Interface,摩托罗拉发明的。它是个同步、全双工的串行总线。为什么这么多年还在用?说白了就四个字:简单、够快。

一条SPI总线需要四根线:

  • SCLK — 时钟,由主机产生
  • MOSI — 主机输出,从机输入
  • MISO — 主机输入,从机输出
  • CS — 片选,低电平有效

我刚开始学的时候,总觉得这跟I2C差不多。后来踩了坑才明白,SPI没有应答机制,也没有设备地址。你拉低CS,对方就得响应。所以硬件上必须一一对应,或者用GPIO做片选扩展。

时钟极性与相位

这是SPI最容易搞混的地方。CPOL决定时钟空闲电平,CPHA决定数据采样沿。组合起来就是四种模式:

模式 CPOL CPHA 空闲时钟 采样沿
模式0 0 0 低电平 上升沿
模式1 0 1 低电平 下降沿
模式2 1 0 高电平 下降沿
模式3 1 1 高电平 上升沿
避坑提醒: 我曾经在一个项目里,从机数据手册写的是模式0,结果逻辑分析仪抓出来怎么都对不上。后来发现手册里CPOL和CPHA的时序图画反了。所以,别光看表格,一定要拿示波器或逻辑分析仪实测确认。

1.2 全志T113 SPI控制器特性

T113这颗芯片,我用了快三年。它集成了两个SPI控制器,每个都支持DMA。嗯,这里要注意,不是所有SoC的SPI都带DMA,T113在这方面算良心的。

主要特性我列一下:

  • 支持主模式和从模式
  • 4种SPI模式全支持
  • 数据位宽:8位、16位、32位可配
  • 内置FIFO:发送64字节,接收64字节
  • 支持DMA传输,降低CPU占用
  • 时钟最高可达100MHz(实际受PCB走线限制)
  • 支持多片选,最多4个从设备

我个人习惯,拿到一块新板子,第一件事就是看芯片参考手册里的SPI章节。T113的SPI寄存器不算多,但有个坑——FIFO阈值设置。设不好,要么溢出,要么空读。后面调试章节我会专门讲这个。

1.3 开发板与逻辑分析仪准备

工欲善其事,必先利其器。这门课我们用的开发板是全志T113-S3官方评估板。你手头如果有其他T113核心板,也问题不大,引脚定义稍微对一下就行。

硬件清单

  • 全志T113-S3开发板 × 1
  • USB转TTL串口模块 × 1(用于调试串口)
  • 逻辑分析仪 × 1(建议24MHz以上采样率)
  • 杜邦线若干
  • SPI从设备模块(如Flash W25Q64、SPI LCD等)
我的建议: 逻辑分析仪别买太便宜的。我之前用过一个8块钱的,采样率标称24MHz,实际抓SPI时钟20MHz就开始丢数据。后来换了Saleae的逻辑分析仪,虽然贵点,但波形干净,调试效率高很多。

连接方式

把SPI从设备接到开发板的SPI1接口。T113-S3评估板上,SPI1的引脚通常是这样:

信号 引脚号 说明
SPI1_CS PH5 片选
SPI1_CLK PH6 时钟
SPI1_MOSI PH7 主机输出
SPI1_MISO PH8 主机输入

逻辑分析仪的通道,我习惯这样接:CH0接SCLK,CH1接MOSI,CH2接MISO,CH3接CS。这样一眼就能看出时序关系。

1.4 本章知识体系

下面这张图,把本章的核心脉络串起来了。你想想看,从协议到芯片再到工具,其实是一条线:理解协议 → 掌握控制器 → 搭好环境 → 开始调试。

第1章知识体系结构图 第1章 知识体系结构 SPI协议基础 T113 SPI控制器 硬件与工具准备 四线信号 CPOL/CPHA 四种模式 主/从模式 FIFO与DMA 多片选支持 开发板 逻辑分析仪 从设备连接 核心目标 理解SPI协议 → 掌握T113控制器特性 → 搭建调试环境

本章小结: 我们回顾了SPI的四线信号和四种工作模式,梳理了全志T113 SPI控制器的关键特性,也明确了开发板和逻辑分析仪的选型与连接方法。这些是后续所有调试工作的基础。硬件环境搭好了,后面才能安心调驱动、抠性能。