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开始——别小看这个,它能帮你验证开发环境、下载线、芯片是否都正常工作。

小技巧: 我刚开始学FPGA时,总喜欢把LED接在高速引脚上。后来发现,LED闪烁频率超过30Hz人眼就看不出来了。所以做LED控制时,记得分频到1-2Hz。

按键输入

板载4个独立按键,按下为低电平。这里有个坑——按键有机械抖动。我曾经在项目里没做消抖处理,结果按一次按键,计数器跳了3次。后来老老实实加了20ms的延时消抖。

时钟源

开发板提供25MHz的有源晶振。为什么是25MHz?因为ECP5内部的PLL可以轻松倍频到100MHz、200MHz。我个人习惯,系统时钟一般跑50MHz,既保证性能,又不会让时序收敛太痛苦。

USB接口

板子通过USB Type-C供电,同时也提供UART串口通信。注意,这个USB不是用来下载FPGA程序的——下载需要单独的JTAG接口(一般用Lattice的专用下载器)。

警告: 千万别在板子通电时插拔JTAG线!我吃过这个亏,有一次不小心烧了下载器的电平转换芯片。正确做法是:先断电,再插线,最后上电。

知识体系结构图

下面这张图,是我画的本章节知识脉络。你看一眼,心里就有数了:

ECP5开发板初探 芯片特性 板载外设 开发工具 6900 LUT DSP/PLL LED/按键 25MHz时钟 USB/UART Diamond IDE 本章知识体系:从芯片到外设,再到开发工具

开发环境准备

工欲善其事,必先利其器。咱们需要安装Lattice Diamond软件。我建议你下载3.12版本,这个版本对ECP5支持最稳定。安装时注意:

  • 选择完整安装(约4GB空间)
  • 安装路径不要有中文
  • 驱动要装好,否则下载器认不到

核心要点: 第一次上电前,先用万用表测一下板子的3.3V和1.2V电源对地电阻。正常值应该在几十欧姆以上。如果短路了,千万别上电——我见过有人把板子烧了,就是因为没做这个检查。

小结

好了,这一章咱们把ECP5开发板的底细摸了个遍。你知道了芯片型号的含义,了解了板载外设的分布,也清楚了开发环境的准备事项。下一章,咱们就要动手写代码了——点亮第一个LED,让板子「活」起来。

记住,做硬件开发,细心比聪明更重要。多看数据手册,多测信号,多留余量。这是我做了十几年硬件设计最深的体会。


专注资料整理