第二课:开发板开箱与硬件资源——认识ECP5开发板上的“五脏六腑”
拿到一块新的开发板,我个人的习惯是——先别急着上电。先把它翻来覆去地看一遍,像医生看X光片一样,把板子上的“器官”认全了。你想想看,连板子上有什么资源都不清楚,后面写代码的时候很容易抓瞎。
今天我们就来拆解一下ECP5开发板的板级架构。说白了,就是搞清楚这块板子上到底有哪些核心芯片和接口,它们各自是干什么用的。
核心大脑:ECP5 FPGA芯片
板子正中央那颗最大的芯片,就是我们的主角——Lattice ECP5 FPGA。我手头这块是LFE5U-85F-8BG381C,85K LUT(查找表)的规模。嗯,这里要注意,ECP5家族有25K、45F、85F几个型号,85F算是中高端了。
这颗芯片的特点是什么?
- 低功耗:相比同级别的Xilinx Artix-7,功耗能低30%左右。我在一个便携式项目里用过,电池供电完全扛得住。
- 内置DSP块:做数字信号处理、滤波、FFT都很方便。
- 高速SerDes:支持千兆以太网、PCIe、HDMI等高速接口。
核心参数速览:
| LUT数量 | 85,000 |
| DSP Slice | 156 |
| Block RAM | 4.6 Mbit |
| SerDes通道 | 4路,每路最高3.2 Gbps |
内存系统:DDR3与Flash
FPGA再强,没有内存也跑不起来。这块板子配了两颗DDR3颗粒,一共512MB。为什么需要DDR3?因为FPGA内部的Block RAM太小了,存个视频帧都不够。DDR3就是用来做大容量缓存的。
我曾经在一个图像处理项目里,用DDR3存一帧1080p的RGB图像,刚好占满。如果你要做视频处理,512MB其实刚刚够用,再大一点就更好了。
Flash芯片是SPI接口的,用来存储FPGA的配置文件。每次上电,FPGA从Flash里读取bitstream,加载到内部SRAM中。这里有个坑——Flash的擦写次数有限,我建议调试阶段用JTAG直接下载,别频繁擦写Flash,否则容易报废。
避坑指南:我曾经有一块板子,因为反复擦写Flash超过1000次,结果Flash坏了,FPGA再也起不来了。后来换了个新Flash才解决。所以调试时尽量用JTAG在线下载,别老烧Flash。
人机交互:LED与按键
板子上有4个LED和4个按键。LED是低电平点亮,按键按下为低电平。这个细节很重要——写代码的时候别搞反了。
LED可以用来指示状态,比如PLL锁定、数据传输完成、错误标志等。按键呢,我一般用来做复位、模式切换、手动触发等。别看它们简单,调试的时候特别有用。
扩展接口:PMOD、HDMI、USB
PMOD接口是FPGA开发板上的“万能插座”。这块板子有4个PMOD口,每个12pin,可以接各种外设模块——ADC、DAC、传感器、LCD屏等等。我建议你至少备一个PMOD按键模块和一个PMOD OLED屏,调试时能省很多事。
HDMI接口是视频输出用的。ECP5的SerDes可以直接驱动HDMI,不需要额外的HDMI芯片。我做过一个1080p@60Hz的显示项目,直接用FPGA的LVDS引脚输出,配合外部电阻网络,效果还不错。
USB接口是USB-UART桥接芯片(FT232),用来和电脑通信。调试时用串口打印log,比用LED闪烁方便多了。波特率我一般设115200,稳定可靠。
板级架构总览
下面这张图是我画的板级架构图,帮你理清各个模块之间的关系:
接口速查表
为了方便你快速查阅,我把所有接口整理成了表格:
| 接口名称 | 数量 | 主要用途 | 注意事项 |
|---|---|---|---|
| PMOD | 4个 | 连接外设模块(ADC、DAC、传感器等) | 注意3.3V电平,部分模块需要5V |
| HDMI | 1个 | 视频输出(最高1080p@60Hz) | 需要外部电阻网络匹配阻抗 |
| USB-UART | 1个 | 串口调试、程序下载 | 默认波特率115200 |
| JTAG | 1个 | FPGA在线调试、烧录 | 使用Lattice Diamond Programmer |
| LED | 4个 | 状态指示 | 低电平点亮 |
| 按键 | 4个 | 用户输入 | 按下为低电平 |
小技巧:如果你第一次用这块板子,我建议你先点亮一个LED试试。写一个简单的计数器,让LED以1Hz的频率闪烁。这能验证FPGA、时钟、电源、LED驱动电路是否都正常工作。我每次拿到新板子,第一件事就是做这个“呼吸灯”测试。
总结一下
ECP5开发板的核心就是那颗85K LUT的FPGA,配上512MB DDR3和SPI Flash,再加上LED、按键、PMOD、HDMI、USB这些接口。说白了,这就是一个“麻雀虽小五脏俱全”的FPGA实验平台。
你想想看,有了这些资源,你能做什么?
- 用PMOD接一个摄像头,做实时图像采集
- 用HDMI输出视频,做一个简单的游戏机
- 用USB-UART和电脑通信,做一个数据采集系统
- 用DDR3做大容量缓存,做高速信号处理
嗯,这些我们后面都会讲到。今天先把板子认全了,后面写代码的时候心里就有底了。
公众号:蓝海资料掘金营,微信deep3321