SPARTAN-3E说明书第2章
- 格式:pdf
- 大小:180.51 KB
- 文档页数:6
滑动开关位置和符号Spartan -3E 开发板有4个滑动开关,如图2-1所示。
开关位于板的右下角,编号为SW3到SW0。
SW3在最左边,SW0在最右边。
SW3 SW2 SW1 SW0 (N17) (H18) (L14) (L13)图2-1 四个滑动开关操作当开关置于“上”,为“开”状态,FPGA 的管脚被连接到3.3V ,逻辑为“高”。
当开关置于“下”,为“关”状态,FPGA 的管脚被连接到地,逻辑为“低”。
开关的典型机械振颤时间为2ms ,板上没有去抖动电路,但这类电路可以很容易的由板上的FPGA 编程完成。
UCF 位置约束图2-2 提供了4个滑动开关的UCF 约束,包括了指定的I/O 管脚和使用的I/O 类型标准。
上拉(PULLUP )电阻不是必须的,但它定义了当开关滑动到中间位置时的输入值。
第二章开关,按钮与旋钮 上 下NET "SW<0>" LOC = "L13" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<1>" LOC = "L14" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<2>" LOC = "H18" | IOSTANDARD = LVTTL | PULLUP ; NET "SW<3>" LOC = "N17" | IOSTANDARD = LVTTL | PULLUP ;图2-2 滑动开关的UCF 约束按钮开关位置和符号Spartan -3E 开发板有4个按钮开关,如图2-3所示。
开关位于板的左下角,编号为BTN_NORTH ,BTN_EAST ,BTN_SOUTH ,BTN_WEST 。
连接开关的FPGA 管脚见图2-3的括号内,以及图2-5的UCF 文件中。
图2-3 围绕着旋转-按压开关的四个按钮开关操作如图2-4所示,按下按钮将FPGA 管脚连接到3.3V 。
当按钮没被按下时,通过内部下拉电阻产生逻辑“低”。
图2-5显示如何在UCF 文件中指定一个下拉电阻。
按钮没有去抖动电路。
BTN_NORTH(V4)BTN_WEST (D18) BTN_EAST (H13)BTN_SOUTH (K17)ROT_A: (K18)需要内部上拉 ROT_B: (G18)需要内部上拉ROT_CENTER: (V16)需要内部下拉注意:1. 所有BTN 字头的按钮输入都需要一个内部的下拉电阻2. 在一些FPGA 应用中BTN SOUTH 也用做软复位按钮UG230_c2_02_021206图2-4 按钮开关需要FPGA 的输入管脚连接内部下拉电阻在一些应用中,BTN_SOUTH 按钮也用作软复位开关,用于选择性的复位FPGA 内部的一些功能。
UCF 位置约束图2-5 提供了4个滑动开关的UCF 约束,包括了指定的I/O 管脚和使用的I/O 类型标准,并且给每个输入管脚定义了下拉电阻。
NET "BTN_EAST" LOC = "H13" | IOSTANDARD = LVTTL | PULLDOWN ; NET "BTN_NORTH" LOC = "V4" | IOSTANDARD = LVTTL | PULLDOWN ; NET "BTN_SOUTH" LOC = "K17" | IOSTANDARD = LVTTL | PULLDOWN ; NET "BTN_WEST" LOC = "D18"| IOSTANDARD = LVTTL | PULLDOWN ;图2-5 按钮开关的UCF 约束旋转-按压开关位置和符号旋转-按压开关位于四个单独的按钮开关中央,如图2-3所示。
此开关提供3个输出。
ROT_A 和ROT_B 为凸轮编码输出。
ROT_CENTER 为中央按钮开关输出。
操作旋转-按压开关集成了两种不同的功能。
当被扭动时,凸轮开关会旋转并产生输出信号。
凸轮也可以被按压,这时与按钮开关一样。
按压开关按住旋转-按压开关的旋钮使相应的FPGA 管脚连接到3.3V ,如图2-6所示。
FPGA 管脚内部的下拉电阻用于产生逻辑低。
图2-9显示如何在UCF 文件中指定下拉电阻。
按压开关没有去抖动电路。
3.3V按钮FPGA 的IO 管脚BTN_*信号UG230_c2_03_021206旋转-按压钮FPGA的IO管脚3.3VROT_CENTER信号UG230_c2_05_021206图2-6按钮开关需要FPGA的输入管脚连接内部下拉电阻旋转凸轮编码器原理上说,旋转凸轮编码器就是连接到一个中心轴上的凸轮。
扭动中心轴将对两个按压开关进行操作,如图2-7所示。
取决于转动的方向,其中一个开关将先于另一个开关断开。
同样的,当继续旋转时,此开关将先于另一个开关接通。
但是,在凸轮的静止位置,也叫做detent位置,此时两个开关都接通。
上拉电阻在每个断开的输入管脚产生一个逻辑“1”。
指定上拉电阻的细节见UCF文件。
旋转凸轮编码器GND图2-7 旋转凸轮编码器的基本电路图接通一个开关将使FPGA管脚连接到“地”,产生一个逻辑“低”。
开关开路时FPGA内部的上拉电阻将信号提升到逻辑“高”。
图2-9中的UCF文件描述了如何指定上拉电阻。
用FPGA电路解码“A”和“B”输入是非常简单的,但必须考虑输入管脚上的机械开关噪声,即“抖动”。
如图2-8所示,抖动会错误的产生额外的旋转事件,甚至会使旋转方向的判断发生错误。
相关的例子参见“相关资料”中的旋转编码器参考设计一节。
图2-8 旋转凸轮编码器的输出可能包含机械抖动UCF 位置约束图2-9提供了旋转凸轮编码器的UCF 约束,包括了指定的I/O 管脚和使用的I/O 类型标准,并且给每个输入管脚定义了下拉电阻。
(译者注:原文有误)NET “ROT_A” LOC = “K18” | IOSTANDARD = LVTTL | PULLUP ; NET “ROT_B”LOC = “G18” | IOSTANDARD = LVTTL | PULLUP ; NET “ROT_CENTER”LOC = “V16” | IOSTANDARD = LVTTL | PULLDOWN ;图2-9旋转凸轮编码器的UCF 约束分立的LED 灯位置和符号Spartan -3E 开发板上有8个单独的表面安装(SMT )LED 灯,位于滑动开关的上方,如图2-10所示。
LED 灯编号为LED7到LED0。
LED7在最左,LED0在最右。
向右旋转当“B ”为低时“A ”的上升沿 识别为向右(顺时针)旋转“A ”断开时的抖动插入了错误的右向“咔嗒”“B ”断开时的抖动插入了错误的左向“咔嗒”。
(“A ”为低时“B ”的上升沿)图2-10 八个分立的LED 灯L E D 7:(F 9)L E D 6:(E 9) L E D 5:(D 11)L E D 4:(C 11)L E D 3:(F 11)L E D 2:(E 11)L E D 1:(E 12) L E D 0:(F 12)UG230_c2_04_021206操作每个LED灯有一边连接到地而另一端通过390Ω限流电阻连接到FPGA的一个管脚上。
要点亮LED,只需将相关的FPGA信号驱动到“高”。
UCF位置约束图2-11提供了LED灯的UCF约束,包括了指定的I/O管脚,使用的I/O类型标准,输出摆率和输出驱动电流。
(译者注:原文有误)NET "LED<7>" LOC = "F9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<6>" LOC = "E9" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<5>" LOC = "D11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<4>" LOC = "C11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<3>" LOC = "F11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<2>" LOC = "E11" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<1>" LOC = "E12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;NET "LED<0>" LOC = "F12" | IOSTANDARD = LVTTL | SLEW = SLOW | DRIVE = 8 ;图2-11 八个LED灯的UCF约束相关资料旋转编码器参考设计Rotary Encoder Interface for Spartan-3E Starter Kit (Reference Design)/s3estarter。