一、MachXO开发板初识
各位同学好,我是你们的FPGA讲师。今天咱们来聊聊MachXO开发板。说实话,我第一次接触Lattice的芯片是在一个工业控制项目里,当时客户要求低功耗、小封装,还要快速启动——MachXO系列正好对上了这些需求。嗯,咱们就从这里开始。
1.1 MachXO系列FPGA的特点
MachXO系列是Lattice半导体推出的低功耗、非易失性FPGA。什么叫非易失性?说白了就是芯片掉电后配置不丢失,上电就能跑,不需要外挂配置芯片。这一点我在做便携设备时深有体会——省掉一个SPI Flash,板子面积能小一圈。
它的核心特点我列一下:
- 瞬时启动:上电后毫秒级完成配置,不像某些FPGA要等几百毫秒
- 低功耗:静态功耗低至微安级别,适合电池供电场景
- 内置Flash:芯片内部集成了配置Flash,无需外部存储器
- IO灵活:支持多种电平标准,3.3V、2.5V、1.8V都能直接对接
- 集成硬核:部分型号内置了ADC、PLL等常用模块
我个人习惯把MachXO看作"胶合逻辑"的绝佳选择。什么意思呢?就是用它来连接不同接口、不同电压的芯片,做电平转换、协议桥接这些脏活累活。你想想看,一个芯片搞定所有,多省事。
1.2 开发板硬件资源介绍
咱们这块MachXO开发板,上面集成了不少外设。我挨个说说,你在做实验时心里有个数。
LED指示灯
板上有8个用户LED,低电平点亮。我在调试时习惯先让LED闪烁——这就像嵌入式世界的"Hello World",能确认FPGA已经正常工作。注意这些LED是直接连到FPGA IO上的,驱动能力有限,别想着用它照明啊。
按键
4个独立按键,按下为低电平。这里有个坑——按键没有硬件消抖。我曾经在项目里吃过这个亏,按键按下一次,FPGA检测到几十次跳变。解决办法?要么加RC滤波,要么在逻辑里做软件消抖。咱们后面章节会细讲。
蜂鸣器
一个无源蜂鸣器,需要PWM驱动。有源蜂鸣器通电就响,无源的要给特定频率的方波才能发声。我记得第一次用无源蜂鸣器时,随便给了个1kHz信号,结果声音又尖又刺耳。后来调整到440Hz(标准A音),听起来舒服多了。
数码管
两个7段数码管,共阴极。驱动方式可以静态也可以动态扫描。动态扫描的原理很简单——人眼有视觉暂留效应,只要刷新频率高于60Hz,看起来就是常亮的。我建议你从静态驱动开始学,理解了再上动态扫描。
UART串口
板载一个USB转UART芯片,通过Micro USB接口连接电脑。波特率最高支持115200。调试时我习惯用115200,因为速度快,传大量数据不卡顿。不过要注意,FPGA端的UART需要你自己用逻辑实现——这也是咱们课程的重点之一。
SPI Flash
板上有8Mbit SPI Flash,可以用来存储用户数据或者作为FPGA的备用配置源。这个Flash的读写时序是标准的SPI模式,后面我们会用它来存储一些参数配置。
| 外设 | 数量 | 接口方式 | 注意事项 |
|---|---|---|---|
| LED | 8个 | GPIO直连 | 低电平点亮 |
| 按键 | 4个 | GPIO直连 | 无硬件消抖 |
| 蜂鸣器 | 1个 | GPIO+PWM | 无源型 |
| 数码管 | 2个 | GPIO直连 | 共阴极 |
| UART | 1路 | USB转串口 | 115200bps |
| SPI Flash | 8Mbit | SPI接口 | 支持页编程 |
核心提示:这些外设的驱动逻辑,本质上都是通过FPGA的GPIO模拟特定时序。你只要掌握了时序图怎么看、状态机怎么写,所有外设驱动都能拿下。
1.3 开发环境搭建
工欲善其事,必先利其器。咱们先装好Lattice Diamond软件。
软件下载与安装
去Lattice官网注册账号,下载Diamond安装包。我建议你下载完整版,别省那点硬盘空间——有些库文件只有完整版才有。安装过程很简单,一路Next就行。不过要注意:
- 安装路径不要有中文和空格
- 关闭杀毒软件,否则可能误删破解文件
- 安装完成后重启电脑
License激活
这是最容易出问题的一步。Diamond需要License文件才能使用。激活步骤:
- 打开Diamond,点击Help → License Manager
- 选择"Install License File"
- 浏览到你存放License文件的位置
- 点击确定,等待验证
注意:我曾经遇到过License文件路径包含中文导致激活失败的情况。建议把License文件放在Diamond安装目录下,路径全英文。
新建工程
激活成功后,咱们建个工程试试手:
File → New → Project
Project Name: led_test
Design Workspace: 选择你的工作目录
Device: 选择MachXO系列对应型号
Synthesis: Lattice LSE(默认即可)
建好工程后,你会看到左侧的File List面板。右键点击"Input Files",选择"Add File",就可以添加你的Verilog代码了。
小技巧:我习惯在工程目录下建三个文件夹——src(源码)、sim(仿真文件)、doc(文档)。这样项目大了也不会乱。
知识体系总览
下面这张图展示了本章的核心内容结构,你可以对照着梳理思路:
好了,第一章的内容就到这里。你先把Diamond装好,下一章咱们开始写第一行Verilog代码——让LED亮起来。
公众号:蓝海资料掘金营,微信deep3321