第一章:课程导论与硬件准备
各位同学好,我是你们的讲师。做嵌入式这些年,我调试过不下二十种LCD屏幕,从最便宜的12864到带触控的RGB接口屏。说实话,SPI接口的LCD是最容易上手,但也是最容易出“玄学问题”的。为什么花屏?为什么刷新慢?为什么初始化后没反应?
这一章,我们先搭好整个课程的框架,把工具备齐。磨刀不误砍柴工,对吧?
1.1 SPI LCD驱动全景图
先看一张整体结构图。我习惯把SPI LCD驱动拆成三个层次:硬件层、驱动层、应用层。你想想看,任何一个显示问题,最终都能落到这三层中的某一层。
核心观点: 90%的SPI LCD故障,根源都在时序和初始化配置上。示波器就是你的“照妖镜”。
这张图我建议你保存下来。每次遇到问题,先问自己:问题出在哪一层? 我曾经有一个项目,屏幕总是间歇性花屏,折腾了三天驱动代码,最后发现是背光电路的电源纹波太大。嗯,这就是典型的硬件层问题。
1.2 示波器选型与探头补偿
做SPI调试,示波器是必备的。但选什么样的?我个人的经验是:带宽100MHz以上,采样率1GSa/s起步。为什么?SPI时钟跑到20MHz甚至40MHz时,你需要看到信号的边沿细节,带宽不够,上升沿全被滤掉了,你看到的波形就是“假的”。
| 示波器参数 | 最低要求 | 推荐配置 | 我的备注 |
|---|---|---|---|
| 带宽 | 50 MHz | 100 - 200 MHz | 测20MHz SPI时钟,50MHz勉强够,100MHz才安心 |
| 采样率 | 500 MSa/s | 1 GSa/s 以上 | 采样率不够,波形会“混叠”,你看到的不是真实的 |
| 通道数 | 2 通道 | 4 通道 | 4通道可以同时看SCLK、MOSI、MISO、CS,非常方便 |
| 存储深度 | 1 Mpts | 10 Mpts 以上 | 抓长序列时,存储深度决定了你能看多久的波形 |
关于探头补偿: 拿到示波器第一件事,不是开机就测,而是做探头补偿。把探头接到示波器自带的1kHz方波输出端,用非金属螺丝刀调整探头上的微调电容,直到屏幕上显示一个完美的方波,没有过冲也没有圆角。这一步不做,你后面测到的所有波形都可能不准。
我记得有一次帮同事排查问题,他坚持说SPI时钟有毛刺,我过去一看,探头没补偿,方波都变成正弦波了。所以,探头补偿是基本功,别偷懒。
1.3 逻辑分析仪基础
示波器看波形细节,逻辑分析仪看协议时序。两者是互补的,不是替代关系。我个人习惯是:先拿逻辑分析仪看整体协议对不对,再用示波器抓关键边沿看信号质量。
逻辑分析仪的核心参数就两个:采样率和通道数。对于SPI调试,24MHz采样率基本够用,但如果你要分析8MHz以上的SPI时钟,建议用100MHz以上的逻辑分析仪。
避坑指南: 我曾经买过一个几十块钱的逻辑分析仪,标称24MHz采样率,实际抓20MHz SPI时钟时,数据全是错的。后来用示波器一对比,发现它的采样率虚标,实际有效采样率不到10MHz。所以,便宜的逻辑分析仪只能用来抓低速信号(1MHz以下),高速SPI还是得上正经设备。
逻辑分析仪使用三步走
- 连接: 把通道0接SCLK,通道1接MOSI,通道2接MISO(如果有),通道3接CS。地线一定要接,不接地信号全是噪声。
- 设置触发: 一般用CS下降沿触发,因为CS拉低表示一次SPI传输开始。
- 解码: 设置SPI协议参数:CPOL(时钟极性)、CPHA(时钟相位)、数据位宽(通常是8位)、MSB/LSB优先。解码出来,直接看数据对不对。
你想想看,如果初始化序列发错了,屏幕没反应,你用逻辑分析仪一看,哦,原来是寄存器地址写错了。这比对着代码一行行看效率高太多了。
1.4 本章小结
这一章我们搭好了知识框架,也备齐了工具。记住三句话:
- SPI LCD驱动 = 硬件层 + 驱动层 + 应用层,问题定位先分层。
- 示波器看信号质量,带宽和探头补偿是底线。
- 逻辑分析仪看协议正确性,采样率决定你能看多快的信号。