硬件连接实战:8位/16位并行总线连接、FSMC接口原理、原理图绘制要点、PCB布局布线注意事项
好,咱们进入第二章。上一章我们把并行接口的时序参数掰开揉碎讲了一遍,这一章就该真刀真枪地画原理图、连板子了。很多同学觉得硬件连接嘛,不就是把线对上就行?其实不然。我见过太多项目,软件调得飞起,结果板子一回来,要么花屏,要么干脆不亮,最后查出来是硬件连接上的低级错误。
这一章,咱们就聊聊怎么把这些线连对、连好,以及背后的原理。
8位 vs 16位并行总线:选哪个?
先解决第一个问题:我的LCD该用8位还是16位?
说白了,这取决于你的应用场景和MCU资源。
| 对比项 | 8位并行 | 16位并行 |
|---|---|---|
| 数据线数量 | DB0~DB7,共8根 | DB0~DB15,共16根 |
| 传输效率 | 低,一次传1字节 | 高,一次传2字节 |
| 占用GPIO | 少(约12~14个) | 多(约20~22个) |
| 典型场景 | 低分辨率、低成本 | 高分辨率、高刷新率 |
| 驱动IC支持 | 几乎所有都支持 | 部分高端IC支持 |
我个人习惯是:如果MCU的GPIO够用,且LCD分辨率超过320x240,我倾向于用16位。为什么呢?因为刷屏速度直接翻倍。我在一个工业HMI项目里试过,同样刷一张800x480的图片,16位比8位快了将近一倍,肉眼可见的流畅。
但如果你用的是STM32F103这种小封装芯片,GPIO本来就紧张,那就老老实实用8位。别为了那点速度把其他功能都牺牲了。
FSMC接口原理:为什么它能“自动”刷屏?
接下来聊聊FSMC。这玩意儿是STM32等高端MCU的“大杀器”。
FSMC,全称Flexible Static Memory Controller,灵活静态存储控制器。名字很绕,但原理很简单:它让MCU像访问内部SRAM一样去访问外部设备,比如LCD、NOR Flash、SRAM。
为什么会这样?因为FSMC内部有一套自动化的时序发生器。你只需要配置好时序参数(比如建立时间、保持时间),然后往某个内存地址写数据,FSMC就会自动拉高拉低CS、RS、WR、RD这些控制信号,同时把数据放到总线上。
说白了,你写一句:
*(uint16_t *)0x60020000 = 0x1234;
FSMC就会自动完成:
- 拉低CS(片选)
- 根据地址判断RS(命令/数据)
- 拉低WR(写使能)
- 把0x1234放到数据线上
- 等待设定的时间
- 拉高WR和CS
整个过程不需要CPU干预,CPU可以去做别的事。这就是为什么FSMC能“自动”刷屏。
原理图绘制要点:别让细节毁了你的板子
原理图是硬件设计的起点。我见过太多原理图,看着没问题,一打板就出问题。这里我总结几个关键点。
1. 数据线顺序:别想当然
很多LCD的数据线编号是DB0~DB15,但MCU的FSMC数据线编号是D0~D15。理论上应该一一对应。但有些LCD厂商会“调皮”,比如把DB0和DB1交换。所以画原理图前,一定要仔细看LCD的数据手册,确认数据线的对应关系。
我曾经在一个项目里,没仔细看手册,想当然地把DB0连到D0,结果屏幕显示的颜色完全错乱。查了两天才发现,LCD的DB0其实是LSB,但MCU的D0是MSB。最后在软件里做了位序反转才搞定,但浪费了不少时间。
2. 控制信号:RS、WR、RD、CS
这些信号是并行接口的“指挥系统”。
- RS(命令/数据选择): 通常接FSMC的地址线A0或A16。我习惯接A0,这样命令地址和数据地址只差1,方便软件操作。
- WR(写使能): 接FSMC的NWE。
- RD(读使能): 接FSMC的NOE。
- CS(片选): 接FSMC的NEx(x为片选号)。
3. 电源和去耦电容
LCD的背光电源和逻辑电源通常需要分开供电。背光电流大,逻辑电源纹波要求高。
每个电源引脚旁边都要放一个0.1μF的去耦电容,靠近引脚放置。大电容(10μF~100μF)放在板子入口处。
4. 电平匹配
MCU是3.3V,LCD可能是5V或者1.8V。一定要确认电平是否兼容。如果不兼容,需要加电平转换芯片,或者用电阻分压。
PCB布局布线注意事项:让信号跑得稳
原理图画好了,PCB布局布线才是真正的考验。很多硬件工程师觉得“能连通就行”,但高频信号对布线非常敏感。
1. 数据线等长
8位或16位数据线,最好保持等长。尤其是16位模式,数据线之间的长度差不要超过5mm。否则,信号到达LCD的时间不一致,会导致数据采集错误。
我建议:在布线时,先布数据线,用蛇形线调整长度,确保它们长度一致。
2. 控制信号远离数据线
WR、RD、CS这些控制信号,容易受到数据线的串扰。所以,尽量让控制信号走内层,或者用地线隔离。
3. 电源和地平面
如果条件允许,使用完整的电源层和地层。这能大大降低电源阻抗,减少噪声。
如果只有两层板,那就尽量让地线走粗一些,并且用网格地覆盖空白区域。
4. 背光电路单独走线
LCD背光电流通常较大(几百毫安甚至几安),如果和逻辑电路共用走线,容易产生压降和噪声。所以,背光电源和地要单独走线,远离信号线。
知识结构图:硬件连接全貌
下面这张图,把本章的核心知识点串起来了。你可以把它当作一个检查清单。
总结一下
硬件连接这事儿,说难不难,说简单也不简单。关键是要细心,把每个细节都考虑到。
- 选8位还是16位? 看GPIO和性能需求。
- FSMC怎么用? 理解地址映射,配置好时序。
- 原理图怎么画? 数据线顺序、控制信号、电源去耦、电平匹配,一个都不能少。
- PCB怎么布? 等长、隔离、地平面、背光单独走线。