第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 | 高电平 | 上升沿 |
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等)
连接方式
把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 本章知识体系
下面这张图,把本章的核心脉络串起来了。你想想看,从协议到芯片再到工具,其实是一条线:理解协议 → 掌握控制器 → 搭好环境 → 开始调试。
本章小结: 我们回顾了SPI的四线信号和四种工作模式,梳理了全志T113 SPI控制器的关键特性,也明确了开发板和逻辑分析仪的选型与连接方法。这些是后续所有调试工作的基础。硬件环境搭好了,后面才能安心调驱动、抠性能。