1. ECP5开发板初探:认识ECP5系列FPGA
各位同学好,我是你们的FPGA讲师。今天咱们来聊聊ECP5开发板。说实话,我第一次拿到这块板子时,心里还挺兴奋的——这小家伙虽然个头不大,但能干的事情可真不少。
先说说为什么选ECP5。Lattice的ECP5系列,说白了就是为「低成本、低功耗、高性能」这三个目标而生的。我做过不少项目,从通信基站到工业控制,ECP5的身影随处可见。它不像高端FPGA那样动辄几千块,但性能绝对够用。
开发板资源一览
咱们这块板子,核心芯片是LCMXO3LF-6900C。这个名字有点长,我拆开给你看:
- LCMXO3:Lattice的MachXO3系列,主打低功耗
- LF:表示支持LPDDR存储器接口
- 6900:逻辑单元数量,约6900个LUT
- C:商业级温度范围
嗯,这里要注意,6900个LUT听起来不多,但做入门级项目绰绰有余。我曾经用这个芯片做过一个4通道的PWM控制器,逻辑资源才用了不到30%。
LCMXO3LF-6900C特性速览
| 参数 | 数值 | 我的评价 |
|---|---|---|
| 逻辑单元 | 6900 LUT | 够用,别贪多 |
| 嵌入式存储器 | 256 kbit | 存点小数据没问题 |
| DSP模块 | 8个 | 做滤波、乘法够用 |
| PLL | 2个 | 时钟管理够用 |
| 工作电压 | 1.2V核心 | 低功耗是亮点 |
我个人习惯,拿到新芯片先看它的I/O bank分布。ECP5有4个bank,每个bank可以独立配置电压。这个设计很灵活——比如你一边接3.3V的LED,另一边接1.8V的DDR,完全没问题。
板载外设概览
开发板上除了芯片,还有一堆外设。咱们一个一个看:
LED指示灯
板子上有4个用户LED,连接在FPGA的普通GPIO上。我建议你第一个实验就从点亮LED开始——别小看这个,它能帮你验证开发环境、下载线、芯片是否都正常工作。
按键输入
板载4个独立按键,按下为低电平。这里有个坑——按键有机械抖动。我曾经在项目里没做消抖处理,结果按一次按键,计数器跳了3次。后来老老实实加了20ms的延时消抖。
时钟源
开发板提供25MHz的有源晶振。为什么是25MHz?因为ECP5内部的PLL可以轻松倍频到100MHz、200MHz。我个人习惯,系统时钟一般跑50MHz,既保证性能,又不会让时序收敛太痛苦。
USB接口
板子通过USB Type-C供电,同时也提供UART串口通信。注意,这个USB不是用来下载FPGA程序的——下载需要单独的JTAG接口(一般用Lattice的专用下载器)。
知识体系结构图
下面这张图,是我画的本章节知识脉络。你看一眼,心里就有数了:
开发环境准备
工欲善其事,必先利其器。咱们需要安装Lattice Diamond软件。我建议你下载3.12版本,这个版本对ECP5支持最稳定。安装时注意:
- 选择完整安装(约4GB空间)
- 安装路径不要有中文
- 驱动要装好,否则下载器认不到
核心要点: 第一次上电前,先用万用表测一下板子的3.3V和1.2V电源对地电阻。正常值应该在几十欧姆以上。如果短路了,千万别上电——我见过有人把板子烧了,就是因为没做这个检查。
小结
好了,这一章咱们把ECP5开发板的底细摸了个遍。你知道了芯片型号的含义,了解了板载外设的分布,也清楚了开发环境的准备事项。下一章,咱们就要动手写代码了——点亮第一个LED,让板子「活」起来。
记住,做硬件开发,细心比聪明更重要。多看数据手册,多测信号,多留余量。这是我做了十几年硬件设计最深的体会。