Basys3板卡主电路的电路原理图请见附录,下面针对板卡上的简单外围电路进行介绍。
1.电源电路
板卡可以通过两种方式进行供电:一种是通过 J4 的 USB 端口供电;另一种是通过J6的接线柱进行供电(5V)。通过 JP2跳线帽的不同选择进行供电方式的选择。电源开关通过SW16进行控制,LD20为电源开关的指示灯。板卡的电源电路如图1.2所示。
图1.2 板卡电源电路
对于大多数的设计,利用USB端口供电都能够满足要求。只有在一些特殊应用场合,USB端口不能满足供电要求,如板卡连接了很多外围设备或电路板,这时需要采用外部电源供电或电池组供电。
采用外部电源供电时,需要将外部电源接头与板卡外部电源接线柱(J6)相连,同时将跳线J2设置为“EXT”状态。外部电源电压应为4.5~5.5V,并且至少能提供 1A 的电流。
采用外部电池组供电时,需要将电池的正极端子与J6的排针“EXT”相连,负极端子与J6的排针“GND”相连。外部电池组的最大电压为5.5VDC,电池组的最小电压取决于实际的应用。如果USB主机功能(J2)使用,至少需要4.6V的供电电压;在其他情况下,最小电压为3.6V。
注意: 只有在特别情况下电源电压才可以为3.6V电压。
板卡上使用的电源电压为3.3V、1.8V和1.0V,分别通过线性稳压芯片从主电源输入电路中获得。板卡电源如表1.4所示。
表1.4 板卡电源
2.Artix-7 FPGA引脚分配
板卡包含16个拨动开关、5个按键、16个独立的LED指示灯和4位7段数码管,如图1.3所示。实际应用中,如果误把分配给按键或拨动开关的FPGA引脚定义为输出,那么容易出现短路现象。因此,按键和拨动开关通过电阻与FPGA相连,以防止短路损坏FPGA。5个按键作为瞬时开关,默认状态为低电平,当被按下时输出高电平。拨动开关根据拨动位置产生恒定高电平或低电平信号。16个独立高效率的LED指示灯的阳极分别通过330Ω电阻与FPGA相连,当对应I/O引脚为高电平时,点亮相应的LED指示灯。此外,上电指示灯、FPGA编程状态指示灯和USB端口状态指示灯,用户不能使用。
图1.3 板卡简单外设电路
板卡上Artix-7 FPGA的引脚分配如表1.5和表1.6所示,表中给出了用户I/O信号、VGA及键盘接口信号、Pmod子板信号及7段数码管显示等信号与FPGA引脚的对应关系。详细内容请查看板卡用户手册。
表1.5 板卡I /O信号与Artix-7 FPGA引脚分配表
表1.6 板卡VGA信号、Pmod子板信号与Artix-7 FPGA引脚分配表
3.LED灯电路
LED灯电路如图1.4所示。当 FPGA 输出为高电平时,相应的 LED 点亮;否则,LED 熄灭。板上配有 16个LED,在实验中灵活应用,可用作标志显示或代码调试的结果显示,既直观明了又简单方便。
4.拨码开关电路
拨码开关电路如图1.5所示。使用该 16位拨码开关时需要注意:当开关拨到下挡时,表示FPGA 的输入为低电平。
图1.4 LED灯电路 |
图1.5 拨码开关电路 |
5.按键电路
按键电路如图1.6所示。板上配有5个按键,当按键按下时,表示FPGA的相应输入脚为高电平。在开发学习过程中,建议每个工程项目都有一个复位输入,这样有利于代码调试。
图1.6 按键电路
6.数码管电路
数码管电路如图1.7所示。板卡使用的是一个4位带小数点的七段共阳数码管,每一位都由七段LED组成。每一段LED都可以单独描述,当相应的输出脚为低电平时,该段位的LED点亮。虽然每一位数码管都有128种状态,但是实际中常用的是十进制数。位选位也是低电平选通。
每一位数码管的七段LED的阳极都连接在一起,形成共阳极节点,七段LED的阴极都是彼此独立的,如图1.8所示。共阳极信号用于4位数码管的输入信号使能端,4位数码管中相同段位的阴极连接到一起,分别命名为CA~CG。例如,4个数码管的D段LED的阴极都连接在一起,形成一个单独的电路节点,命名为CD。这些七段LED的阴极信号用于4位数码管显示,这种信号连接方式会产生多路显示,用户必须根据数码管的阳极使能信号来分别点亮相应数码管的段位。
图1.7 数码管电路 图1.8 共阳极电路节点
为了点亮一段LED,阳极应为高电平,阴极为低电平。然而,板卡使用晶体管驱动共阳极节点,使得共阳极的使能反向。因此AN0~AN3和CA~CG/DP信号都是低电平有效。当AN0~AN3为高电平时,4个数码管均不亮;AN0~AN3为低电平时,对应的数码管的共阳极端为高电平,如果该数码管的阴极信号CA~CG和小数点DP为低电平,则对应LED段点亮。如果AN0~AN3同时为低电平,则4个数码管会显示同样的内容。
实际应用中,经常需要多个数码管显示,一般采取动态扫描显示方式。这种方式利用了人眼的滞留现象,即多个发光管轮流交替点亮。板卡上的4个数码管,只要在刷新周期1~16ms(对应刷新频率为1kHz~60Hz)期间使4个数码管轮流点亮一次(每个数码管的点亮时间就是刷新周期的1/4),则人眼感觉不到闪烁,宏观上仍可看到4位LED同时显示的效果。例如,刷新频率为62.5Hz,4个数码管的刷新周期为16ms,每一位数码管应该点亮1/4刷新周期,即4ms。
4位数码管的扫描显示控制时序图如图1.9所示,当数码管对应的阳极信号为高电平时,控制器必须按照正确的方式驱动相应数码管的阴极为低电平。例如,如果AN1为低电平且保持4ms,7段信号CA、CA和CC为低电平,则对应数码管显示为“7”;若AN1无效,AN0低电平有效且保持4ms,7段信号CB和CC为低电平,对应数码管显示为“1”,这样周而复始,则两个高位数码管始终显示“71”。
图1.9 4位数码管扫描显示控制时序图
7.VGA显示电路
VGA显示电路如图1.10所示。板卡利用14路FPGA信号生成一个VGA端口,VGA端口具有4位的红、绿、蓝基色和两个标准行同步、场同步信号。色彩信号由电阻分压电路产生,支持12位的VGA彩色显示,具有4096种不同的颜色,VGA显示的终端电阻为75Ω。对于每一种红、绿、蓝基色的VGA信号,都有16级信号电平,这样产生的色彩信号的增量在0V(全部关闭)和0.7V(全部打开)之间。由于没有采用视频专用 DAC芯片,所以色彩过渡表现不是十分完美。
图1.10 VGA显示电路
实际应用中,利用FPGA设计视频控制器电路驱动同步信号和色彩信号时,一定要确保正确的时序,否则VGA显示电路不能正常工作。
8.I/O扩展电路
4个标准的扩展连接器如图1.11所示,其中一个为专用AD信号Pmod接口。通过扩展接口可以使用面包板、用户设计的电路或Pmod模块扩展板卡。Pmod是价格便宜的模拟和数字I/O模块,能提供一个A/D&D/A转换、电机驱动器、传感器等许多其他功能。8针连接器上的信号免受ESD 损害和短路损害,从而确保了在任何环境中的使用寿命更长。
图1.11 I/O扩展电路
板卡上标有“JXADC”字样的Pmod扩展连接器与FPGA的辅助模拟输入引脚相连。通过JXADC连接器,可以将差分模拟信号输入到Artix-7(XADC)内部的模拟-数字转换器。
Artix-7内部的XADC模块是一个双通道、12位的模数转换器,转换速率为1MSPS。通过动态配置端口(Dynamic Reconfiguration Port,DRP)可以控制和读取XADC模块。XADC模块也包括一定数量的片上传感器,用来测量片上的供电电压和芯片温度。
9.Pmod模块
Xilinx大学计划提供了各种各样低成本、简单I/O Pmod外围接口模块,是扩展其各种FPGA板卡性能的理想方案。XUP提供的Pmod外围接口模块包括传感器、I/O、数据采集和转换、接插件、扩展存储器等模块,下面介绍一些常用的Pmod模块,按照模块功能划分如下。
(1)输入/输出
1)PmodKYPD:16-Button Keypad,16键键盘。
● 4×4矩阵键盘,16个带有标示的按键;
● 上拉电阻与每行相连,每行和每列都在Pmod接口里有专用的引脚。
2)PmodBTN:Push Buttons,按键开关。
4个消抖触摸式按键开关。
3)PmodSWT:Slide Switches,滑动开关。
4个滑动开关。
4)PmodLED:High Bright LEDs,高亮度LED指示灯。
4个逻辑级输入,4个高亮度红色LED指示灯。
5)Pmod8LD:8 High Bright LEDs,8个高亮度LED指示灯。
8个输入逻辑电平、8个高亮度绿色LED灯。
6)PmodSSD:Seven-segment Display,七段数码显示器。
● 两个高亮度七段数码管显示器;
● 做工小巧,尺寸为0.80英寸×0.80英寸;
● 套件中附带两个6英寸6针下载线和两个6针接口。
7)PmodI 2 S:Stereo Audio Output,立体声音频输出模块。
● 立体声数模转换器,支持所有的主流音频数据接口格式;
● 支持16~24位的多采样率音频,包括48kHz、96kHz和192kHz的采样率;
● 3~5V工作电压,0.80英寸×1.15英寸。
8)PmodAMP2:Audio Amplifier,音频放大器。
● 无滤波、高效率、单声道D类功率放大器;
● 数字增益选择。
9)PmodAMP3:Stereo Power Amplifier,立体声功率放大器。
● 数字输入、立体声、D类音频功率放大器;
● 支持常见的I 2 S音频格式;
● 独立的左右声道,并且能够单独控制每个声道音量;
● 工作电压为3.3V。
10)PmodRS232:Serial Converter & Interface,串行转换器及接口。
● 具有发送和接收数据的功能;
● 可选RTS和CTS同步交换功能(REV.B);
● 做工精巧,1.00英寸×1.30英寸;
● 可以将逻辑电平转换成串行通信所需的RS 232电平。
11)PmodUSBUART:USB to UART Interface,USB转UART连接器。
12)PmodSD:SD Card Slot,SD卡插槽。
为Xilinx大学计划系统和微控制器板卡提供一个SD卡接口。
13)PmodCLP:Character LCD w/parallel Interface,字符LCD w/并行接口。
● 16×2字符显示,带背光功能的液晶屏;
● 尺寸大小:3.3英寸×2.3英寸,并行数据接口。
14)PmodCLS:Character LCD w/serial Interface,字符LCD w/串行接口。
● 16×2字符显示,带背光功能的液晶屏;
● 通过使用UART、SPI或TWI接口来灵活连接;
● 尺寸大小:3.75英寸×1.75英寸。
15)PmodNIC100:Network Interface Controller,网络接口控制器。
● 标准SPI接口;
● IEEE 802.3兼容的以太网控制器;
● 10/100 Mbit/s数据传输率;
● 集成MAC;集成10BASE-T PHY;集成100BASE-TX PHY。
16)PmodBT2:Bluetooth Interface,蓝牙接口。
● 兼容蓝牙2.1/2.0/1.2/1.1 ;
● 具有多种模式,包括从模式、主模式、触发主模式、自动连接主模式、自动连接DTR模式、自动连接ANY模式;
● 简单的UART接口,小尺寸。
17)PmodWiFi:802.11b/g/n WiFi Interface,802.11b/g/n WiFi接口模块。
● IEEE 802.11兼容的射频收发器;
● 序列化的专有MAC地址;
● 1/2 Mbit/s数据率;IEEE 802.11b/g/n兼容;
● 集成PCB天线;传输距离远达400m(1300英尺);
● 通过美国FCC、加拿大IC、欧盟ETSI及日本ARIB无线电监管认证;
● 通过WiFi认证(WFA ID:WFA7150)。
18)PmodOLED:Organic LED Graphic Display,有机LED图形显示。
● 128×32像素、0.9毫米OLED显示屏;
● 标准SPI接口;
● 最高10MHz时钟频率;
● 含内部显示缓冲区。
19)PmodIOXP:I/O Expansion Module,I/O扩展模块。
● 通过I 2 C接口与主机通信的I/O端口扩展模块;
● 用于事件记录的16单元的FIFO;
● 19个可配置I/O接口;
● 可支持最大11×8矩阵的按键解码;
● PWM生成器,集电极开路的中断输出;
● 两个可编程的逻辑块,去抖动的I/O引脚。
20)PmodENC:Rotary Encoder,旋转编码器。
● 旋轴按键编码器;
● 串联电阻的滑动开关。
21)PmodJSTK:Two Axis Joystick,两轴操纵杆。
● 两轴电阻操纵杆(CTS 252A103B60NB),操纵杆也具备一个按键的功能;
● 两个附加的用户按键。
22)PmodRF2:IEEE 802.15 RF Transceiver,射频收发器。
● 满足IEEE 802.15标准;
● 支持ZigBee、MiWi TM 、MIWI P2P等无线网络协议;
● 工作在ISM频段2.405~2.48GHz;
● 简单的SPI通信接口;
23)PmodGPS:GPS Receiver,GPS接收器。
● 标准UART接口;
● 输入电压:3~3.6V;
● 最大更新率10Hz(默认更新率1Hz);
● 超低功耗、超高灵敏度。
(2)数据转换
1)PmodR2R:Resistor Ladder D/A Converter,梯形电阻D/A转换器。
● 频率高达25MHz的8位数字到模拟转换器;
● 由示波器的简单附件来说明数据转换的过程;
● 利用一个工程设计领域应用数十年的经典电路实现数模的转换。
2)PmodDA1:Four 8-bit D/A Outputs,四路8位D/A输出接口。
● 4个D/A转换通道;
● 超低功耗。
3)Pmod-DA2:Two 12-bit D/A Outputs,两路12位D/A输出接口。
● 两个National Semiconductor DAC121S101,12位D/A转换器;
● 两个同步D/A转换通道;
● 做工精细、超低功耗。
4)PmodAD1:Two 12-bit D/A Outputs,两路12位A/D输入接口。
● 两个两级Sallen-Key抗干扰滤波器;
● 两个同步A/D转换通道,每通道可高达1MSa;
● 超低功耗。
5)PmodAD2:Four Channel 12-bit A/D converter,4通道12位A/D转换器。
● 最高可用4个模拟转数字通道;
● 分辨率高达12 bit,I 2 C接口;
● 板上提供2.048V参考电压,参考电压可变。
(3)连接器
1)PmodCON4:RCA Audio Jacks,RCA音频接口。
可灵活配置针头接口和RCA接口。
2)PmodPS2:Keyboard/Mouse Connector,键盘/鼠标接口。
● 电源通路跳线;
● 做工精巧。
(4)传感器/执行器
1)PmodOD1:Open Drain Output,漏极开路输出。
● 4.1A最大输出电流(t<5s);
● 3.0A恒电流(25℃),2.2A恒电流(85℃);
● 一个6针接口用来输入;
● 两个输出螺丝接线端;
● 该模块使用On-Semiconductor的NTHD4508NT功率FET输出晶体管,可以驱动高电流设备。该输出晶体管由一个系统级板卡的逻辑信号来驱动。
2)PmodOC1:Open Collector Output,集电极开路输出。
● 4个输出钳位二极管;
● 最大工作电压为40V;
● 做工精细、精致小巧,0.75英寸×0.80英寸;
● 该模块使用MMBT3904输出晶体管来驱动高电流器件。该输出晶体管由一个系统级板卡的逻辑信号来驱动。该晶体管可以作为一个开关,并可以驱动继电器和启动LED灯、电动机及其他外部设备。
3)PmodACL2:3-Axis MEMS Accelerometer,3轴MEMS加速度计。
基于ADI公司的ADXL3623轴MEMS加速度计。
4)PmodGYRO:3-Axis Digital Gyroscope,3轴数字陀螺仪。
● 便准SPI和I2C接口;
● 250/500/2000dps 可选分辨率;
● 两个可定制中断引脚;
● 支持断电和睡眠模式;
● 用户可配置信号滤波。
5)PmodSTEP:Stepper Motor Driver,步进电动机驱动器。
● 可用于连接4脚或6脚步进电动机;
● 可以通过外部供电,或主板供电;
● 包含信号状态指示灯。
6)PmodMAXSONAR:Ultrasonic Range Finder,超声波测距仪。
● 有效检测范围:6~255英寸(相当于0.15~6.5m),精度为1英尺。
● 工作频率为42 kHz,测量间隔为50ms。
● 连续测量工作模式,采样率为20 Hz,三种测量方式:
● 5字节的串行数据;
● 模拟电压输出,VCC/512表示1英寸。
● 脉冲宽度输出,147µs 表示1英寸。
● 工作电压范围:2.5~5.5V,拖动电流典型值为2mA。
7)PmodCMPS:3-Axis Digital Compass,三轴数字罗盘。
● ±8高斯场检测;
● I 2 C通信接口,最大数据输出率为160Hz。
8)PmodALS:Ambient Light Sensor,环境光传感器。
● 通过一个独立的环境光强传感器示范光强数字传感;
● 3线 SPI™ 通信接口;
● 8比特分辨率。
9)PmodLS1:Infrared Light Detector,红外线探测器。
● 具有4个4针接口的反射或透射光探测器;
● 板载灵敏度调节仪;
● 4个对输入状态监测的板载LED指示灯。
10)PmodTMP2:Thermometer/Thermostat,温度计/恒温器。
● 一个以ADT7420为核心的温度传感器和恒温控制板;
● 支持最高16位的分辨率;
● 标准精度优于0.25℃;
● 拥有4个可选择地址的I2C接口;
● 240ms连续转换时间;
● 可编程的温度阈值控制引脚;
● 支持3.3V和5V接口;
● 无须校准,附带一根10' 4针 MTE 线。
11)PmodMIC:Microphone w/Digital Interface,数字麦克风。
● OnSemi公司的 SA575低电压语音压扩器;
● National Semiconductor公司的 ADCS7476AIM 12位A/D转换器;
● 3~5V的工作电压;
● 做工精巧(0.80英寸×1.10英寸)。
(5)其他
1)PmodBB:Wire Wrap/Bread Board,绕接/面包板。
2)PmodRTCC:Real-time Clock/Calendar,实时时钟/日历。
● 可支持一个纽扣型电池的实时时钟/日历;
● I 2 C接口;
● 可产生方波输出的多功能引脚;
● 两个可使用的闹钟;
● 128B的EEPROM;
● 64B的静态随机存储器(Static Random Access Memory,SRAM),附带一根10' 4针MTE 线。
10.存储器
板卡包含一块32Mbit闪存,通过4(quad-mode,x4)串行外围接口(SPI)模式与Artix-7 FPGA相连。FPGA与闪存之间的连接和引脚排列如图1.12所示。
图1.12 板卡外部存储器
FPGA配置文件可以写入Quad SPI闪存,并且能够通过设置FPGA模式使得板卡上电时自动读取FPGA配置文件。Artix-7 35T配置文件大约需要2MB的存储空间,因此用户可以使用的闪存空间约占48%。
11.时钟
板卡有一个100MHz有源晶振,与引脚W5相连。输入的时钟信号驱动混合模式时钟管理器(Mixed-mode Clock Manager,MMCM)和锁相环(Phase-Locked Loop,PLL),能够产生工程项目需要的各种频率和相位关系的时钟信号。然而,如果使用100MHz的输入时钟信号来驱动MMCMs和PLLs,Artix-7有一些限制条件。对于Artix-7时钟资源和限制条件,用户可以参见Xilinx官网提供的文档——“7 Series FPGAs Clocking Resources User Guide”。
Xilinx提供了LogiCORE TM 时钟IP向导,用于帮助用户生成设计所需要的不同时钟信号。根据用户指定的期望频率和相位关系,该向导能够正确地例化所需要的MMCMs和PLLs,然后生成容易使用的组件,可以添加到用户的设计项目中。进入Vivado集成设计套件流程向导,找到工程管理器窗口界面下的IP目录,即可选择时钟向导。
12.USB-UART桥接(串口)
板卡含有一个USB-UART桥接芯片FTDI FT2232HQ(与J4端子相邻),用户可以通过PC应用程序,使用标准的Windows串口指令与板卡通信。从网址www.ftdichip.com下载USB转串口驱动程序,即可将USB数据包转换为UART或串口数据。串口数据与FPGA之间的收发通过两线串口实现(TXD/RXD)。如果安装了驱动程序,从PC端利用I/O指令可以直接与串口通信,收发串行数据到FPGA的引脚B18和A18。芯片FT2232HQ和Artix-7 FPGA之间的连接如图1.13所示。
图1.13 板卡FT2232HQ连接示意图
板卡上有两个指示灯,用于显示数据收发状态,分别是发送指示灯(LD18)和接收指示灯(LD17)。
芯片FT2232HQ同样用于USB-JTAG电路的控制器,然而USB-UART和USB-JTAG两种功能彼此完全独立,互不影响。如果用户使用FT2232的UART功能,JTAG电路根本不会影响UART数据的传输,反之亦然。利用一个芯片将上述两种功能进行整合的目的是:板卡只需一根Micro USB连接线即可实现编程、UART通信和供电。
13.FPGA调试及配置电路
上电后,必须配置FPGA,然后才能执行任何有用的功能。存储FPGA配置数据的文件为比特流(bitstream)文件,扩展名为.bit。借助Xilinx的Vivado软件可以通过VHDL、Verilog HDL或基于原理图的源文件创建“.bit”文件。在配置过程中,将该“.bit”的文件转移到FPGA内存单元中实现逻辑功能和电路互连。
比特流文件存放于FPGA内部的基于静态随机存储器(SRAM)的存储单元,定义了FPGA的逻辑功能和电路连接。如果关闭板卡电源、按下复位按键或通过JTAG端口写入新的配置文件,原有比特流文件也随之丢失。
典型的Artix-7 35T比特流文件为17 536 096bits,需要花费很长时间传送。在编程下载到板卡之前,通过压缩比特流文件可以减少传送时间,然后允许FPGA在配置过程中自行解压比特流文件。根据设计的复杂程度,利用Vivado集成设计套件在生成比特流文件时进行压缩,可以实现10倍的压缩比。
下载程序有如下3种方式:
用Vivado通过USB-JTAG方式(J4端口,标有“PROG”字样)下载“.bit”文件到FPGA芯片;
● 用Vivado通过Quad-SPI方式下载“.bit”文件到Flash芯片,实现掉电不易失;
● 用U盘或移动硬盘通过J2的USB端口下载“.bit”文件到FPGA芯片(建议将“.bit”文件放到U盘根目录下,且只放1个),该U盘应该是FAT32文件系统。
注意: ① 下载方式通过JP1的短路帽进行选择;
② 系统默认主频率为100MHz。
编程模式选择由板卡最右上角的蓝色跳线JP1(标有“MODE”)确定,M1M2跳线和配置方式的对应如图1.14所示,通过更改“Mode”跳线JP1的位置选择下载模式。
图1.14 板卡配置选项
编程下载成功后,点亮“DONE”指示灯(LD19)。任何时候按下“PROG”按键,FPGA内部的配置存储器都会重新复位。此时,无论选择哪种编程下载方式,FPGA复位后都会立即尝试重新编程下载。
Adept是Xilinx大学计划板卡与PC之间的接口软件,其功能如下:
● 使用户通过计算机配置板卡上的FPGA等逻辑器件;
● 使计算机与开关板进行数据传送,读写指定的寄存器,扩展I /O;
● 自动检测与计算机相连的板卡,并对硬件平台进行诊断和测试。
Adept软件可以在Xilinx大学计划网站进行下载。安装前先不连接板卡,执行安装文件,安装完成后,即可连接板卡并使用Adept软件。不同版本的Adept软件及连接的板卡不同,使得执行Adept软件后的界面也略有不同。
运行Adept软件,软件界面如图1.15所示。在图中的“Config”选项卡中,单击“Browse”按钮,选择设计产生的比特流文件(.bit文件),然后单击“Program”按钮,软件开始对FPGA直接编程。
注意: 这样加载的程序是直接下载到FPGA中的。
图1.15 Adept软件界面