OpenEP2C5-C用户手册
概述
本用户手册描述了微雪电子FPGA Altera系列开发板[1]基本操作和示例使用教程,旨在帮助用户快速上手入门。
硬件设计
本章节主要讲解最小核心板硬件的设计思路,带你见证从一个芯片蜕变到最小核心电路板的过程。
从核心板的简介图可以看到除了主控芯片外,还有AMS1117稳压器件、EPCS16 串行FLASH器件、晶振、JTAG接口、LED和按键等器件。那么这些器件是如何与主芯片连接在一起的,为什么要这样连接?都发挥着什么作用?
整体电路设计框架
电源电路
电源电路是核心板子能够正常工作最基本的电路。查芯片手册可知,该芯片需要1.0V/1.2V电压来供给内部逻辑电压(VCCINT)和PLL数字电压(VCCA_PLL)等,如:IO电压(VCCIO)可接入1.2 V、1.5 V、1.8 V、2.5 V、3.0 V和3.3 V等不同的电压来给每个片区提供不同的电压标准。因此,在设计上,把输入的5V电压分别转换为3.3V、1.2V等来维持板子正常工作。同时为了方便检测电源的工作状态,板子在3.3V电源输出处接上LED发光二极管(电源指示灯)。电源电路原理图如下:
引脚名称 | 描述 |
---|---|
VCC5 | 外部输入5V供电电压 |
VCC33 | 经AMS1117-3.3稳压器件转压的3.3V电压,一般用于供给时钟、配置电路等电压和特殊功能引脚高电平等。 |
VCC12 | 经AMS1117-1.2稳压器件转压的1.2V电压,一般用于供给的VCCINT、VCC_PLL电压等。 |
时钟电路
在FPGA设计中时钟的最好解决方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控设计中的每一个时序器件,只要有可能就因该尽量在设计项目中采用全局时钟,FPGA都具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。在器件中,这种全局时钟能提供最短的是在延时。在设计中我们用到一个全局时钟口CLK,由于它是单个时钟口,所有我们考虑用有源晶振时钟作为外部时钟来源。板字采用的是50MHz的晶振,为系统提供精准的时钟源,其原理图如下:
引脚名称 | 描述 |
---|---|
CLK | 时钟输入 |
复位电路
复位电脑包括RST复位电路和nCONFIG重置电路。RST复位采用RESET按键开关构成的阻容复位电路,按下后,低电平有效产生复位信号。nCONFIG重置电路则由nCONFIG按键来触发,按下后可以使FPGA进行重新配置而不需要重启板子电源。其原理图如下:
引脚名称 | 描述 |
---|---|
RESET | 低电平复位 |
nCONFIG | 低电平复位,恢复逻辑高电平即重新配置 |
配置/下载接口
配置又称加载或下载,是对FPGA内容进行编程的一个过程。每次上电后需要进行配置是基于SRAM工艺FPGA的一个特点。在FPGA内部,有许多可编程的多路器、逻辑、互连线节点和RAM初始化内容等,都需要配置数据来控制。FPGA中配置RAM就起到了这样一个作用,它存放了配置数据的内容。
根据FPAG在配置电路中的角色,其配置数据可以使用3种方式载入(Download)到目标器件,这三种分别是:FPGA主动(Active)方式、FPGA被动(Passive)方法和JTAG方式。JTAG接口是一个业界标准接口,Altera FPGA基本上都可以支持JTAG命令来配置FPGA,而且JTAG配置方式比其他任何一种配置方式优先级都高,因此,我们在板子提供了JTAG配置方式,其配置接口电路图如下所示:
用户可以使用专用的Altera下载器USB Blaster[2]进行下载调试。如需编程到EPCS芯片需要对下载文件格式进行转换[3]
引脚名称 | 描述 |
---|---|
TDI | 用于测试数据的输入 |
TDO | 用于测试数据的输出 |
TMS | 模式控制管脚,决定JTAG电路内部的TAP状态机的跳转 |
TCK | 测试时钟,其他信号线都必须与之同步 |
配置电路
为了使FPGA掉电后仍然能够保持程序数据,FPGA需要外接配置芯片,这里选用了Altera公司的串行FLASH存储器EPCS16。EPCS16属于增强型配置器件,容量高达16Mbit,支持对打容量FPGA的单片配置,它们可以由JTAG接口进行在系统编程(In System Programming)。其对应配置电路原理图如下:
LED电路
板载4个用户LED,每个LED都是直接由FPGA芯片上一个引脚来驱动的,当给对应的引脚一个逻辑低电平时,点亮LED,原理图如下所示:
扩展板接口
这一系列Open板子采用核心板和扩展板分离的方式,这种灵活的设计模式一方面方便用户根据自己的需求自行设计外接电路,方便快捷;另一方面核心板和底板接口设计充分考虑了与其他FPGA板子的兼容和通用性,方便用户升级换代。
开发板基本操作
上电和下载
给CoreEP2C5板子供电,需要给板子上对应的5V和GND接入5V的供电电源。供电正常的情况下,PWR_LED亮起。板载了JTAG下载标准接口,可使用专用的USB Blaster[4]下载器接入JTAG接口进行下载操作,连接图如下所示。
对于OpenEP2C5-C标准板的供电,相对简单,因为底板上有个专用的5V DC接口,用户直接把核心板接入底板,并用配送的电源线直接接入5V DC接口,然后把开关调到ON即可。
使用Quartus II下载示例程序中的Verilog和VHDL,请参看视频教程:
入门实验
在下列入门实验中的都要给板子供电。在提供的示例程序中有Verilog、VHDL、NIOS C三种语言,在实验时要下载对应的测试程序。
下例实验中用的板子为OpenEP4CE10-C,其他型号的Altera板子也是类似的操作,若有部分实验不一样会有特别说明。
点亮LED
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
LED |
LED_hello_world | |
步骤 |
| ||
现象 |
|
| |
实验视频 |
控制摇杆JOYSTICK实验
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
JOYSTICK | ||
步骤 |
| ||
现象 |
| ||
实验视频 |
8 Push Buttons按键实验
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
8 Push Buttons |
—— | |
步骤 |
|
||
现象 |
|
||
实验视频 |
-- |
8 LEG LED Board数码管实验
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
8 SEG LED Board |
—— | |
步骤 |
|
||
现象 |
|
||
实验视频 |
-- |
4x4 Keypad矩阵键盘控制数码管实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
4x4 Keypad | ||
步骤 |
|
|
|
现象 |
|
|
|
实验视频 |
DS18B20温度传感器实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
DS18B20 | ||
步骤 |
|
|
|
现象 |
|
|
|
蜂鸣器实验
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
Buzzer/PWM |
—— | |
步骤 |
|
||
现象 |
|
PS/2键盘实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
PS2 | ||
步骤 |
|
| |
现象 |
|
| |
实验视频 |
VGA显示实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
VGA_color | VGA | —— |
步骤 |
|
||
现象 |
|
||
实验视频 |
-- |
字符LCD1602实验
语言 |
Verilog |
VHDL |
Nios II C |
---|---|---|---|
例程名 |
LCD1602 |
—— | |
步骤 |
|
||
现象 |
|
点阵LCD12864实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
LCD12864 | —— | —— |
步骤 |
|
||
现象 |
|
3.2寸LCD屏显示触摸实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | LCD32 |
步骤 |
| ||
现象 |
|
USB通信实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | USB | —— |
步骤 |
|
||
现象 |
|
|
|
备注 |
|
|
|
实验视频 |
-- |
-- |
SD-Card实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | SD-Card |
步骤 |
| ||
现象 |
|
|
Ethernet以太网口通信实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | ENC28J60 |
步骤 |
| ||
现象 |
|
UART串口通信实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
UART | ||
步骤 |
|
|
|
现象 |
|
|
|
实验视频 |
I2C EEPROM实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
AT24CXX | ||
步骤 |
|
| |
现象 |
|
| |
备注 |
|
| |
实验视频 |
AT45DB实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | AT45DBXX |
步骤 |
| ||
现象 |
|
PCF8563 时钟实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | PCF8563 |
步骤 |
| ||
现象 |
|
USB转FIFO实验
语言 |
Verilog | VHDL | Nios II C |
---|---|---|---|
例程名 |
—— | —— | FT245 |
步骤 |
| ||
现象 |
|
参考资料
- ↑ Altera系列开发板
- ↑ USB Blaster产品简介
- ↑ 通过JTAG口对FPGA器件进行在线配置(也称可编程串行配置),详见:USB Blaster
- ↑ 详见:USB Blaster