第二课:开发板开箱与硬件资源——认识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 Slice156
Block RAM4.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,稳定可靠。

板级架构总览

下面这张图是我画的板级架构图,帮你理清各个模块之间的关系:

ECP5 FPGA LFE5U-85F DDR3 512MB SPI Flash 配置存储 DDR总线 SPI LED x4 按键 x4 PMOD x4 HDMI USB-UART ECP5开发板板级架构图 核心芯片与接口关系 FPGA核心 内存 存储 人机交互 扩展接口

接口速查表

为了方便你快速查阅,我把所有接口整理成了表格:

接口名称 数量 主要用途 注意事项
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