电子说
步骤1:数字模式生成器
Pattern Generator的背景知识覆盖不多,所以让我们开始吧。如果您需要帮助来设置和校准AD2或安装Waveforms 2015,请查看此快速入门I‘ble Collection。
在开始之前,请注意,AD2的数字通道不是旨在用作大负载的来源。直接将多个LED和电阻直接连接到通道上。如果需要驱动更大的负载,则这些通道可用于触发大电流驱动器,例如MOSFET,H桥等,但不用作主要源。
一次您已经设置好AD2和波形,请单击“模式”按钮打开模式生成器。
将打开“模式生成器”窗口。
顶部有三个主要工具栏,第一个带有“文件”,“控件”和“窗口”选项。
在“文件”下,您会看到几个选项。
”“新建”模式”可让您打开模式生成器的新实例。
您可以打开一个新的空实例,也可以克隆所有当前实例设置进入新实例。一次只能使用一个实例。其他实例在使用中时将处于待机状态。
您可以“保存”当前模式生成器设置,或“打开”先前保存的项目。
“导出”使您可以将当前的模式生成器预览图数据保存为最常见格式的窗口图像,例如* .bmp,*。jpg,*。tif等,或作为带有绘图窗口信息的数据文件,格式为* .csv,*。txt或* .tdms。
“关闭模式”将关闭模式生成器窗口。只要您没有完全关闭Waveforms 2015,就不会清除当前设置。只需再次单击“模式”按钮,窗口就会弹出并打开所有相同的设置。
在“控件”下,您可以访问该工具的“运行”和“停止”命令。
“窗口”可让您在当前打开的任何工具窗口,Waveforms 2015欢迎窗口或“帮助”窗口之间进行切换。
步骤2:运行/停止和触发选项
下一个工具栏用于运行/停止工具以及设置触发器。
将启动该工具。运行时,此按钮将转换为以停止工具。
对于触发设置,可让您确定所需的触发源类型。您可以选择“无”,也可以使用一些外部信号,甚至可以使用其他波形工具之一,例如示波器。您还可以通过将触发器设置为“手动”,然后单击窗口左下角的来手动触发信号。
等待时间。一旦满足触发条件,信号将进入空闲状态,并在该时间内输出空闲值。一旦该时间到期,模式生成器就会开始运行。从20 ns到24 hr的任何时间都是有效的,或者您可以选择“ none”根本不等待。
使您可以设置一旦模式生成器,模式将运行多长时间已触发,并且任何等待时间都已到期。可以选择20 ns到24 hr之间的任何时间,也可以选择“连续”以不重置图案。请注意,选择“连续”会随着时间的推移将累积的舍入误差引入到图案输出中,从而导致相移。将运行时间设置为码型时基的某个整数倍(例如,对于1 kHz信号,输入1 ms运行时间)将定期重置码型输出,并且任何累积的误差将连续重置为0。
使您可以设置要让设置的模式重复多少次,然后才能将输出返回到空闲状态。您可以将其设置为1到30,000个周期之间的任意值,或选择无限。
如果选中,则必须为输入的周期数触发码型发生器。 “重复”框。例如,如果选择了“手动”,则在重复框中输入“ 5”,然后选中“重复触发”,则必须单击底部的手动触发按钮五次。码型发生器的输出将在触发器之间处于空闲和布防状态,然后在5次触发后处于空闲状态并重置为就绪状态。取消选中该复选框,码型生成器将自动为设置的周期数输出定义的码型,而无需其他触发实例。
步骤3:信号控制设置
在触发设置下方是信号控件以及绘图窗口设置。首先,我们来看一下信号控件,因为有几种配置它们的方法。
单击添加单个信号,总线或ROM逻辑。
单击“信号”会打开一个小窗口,您可以在其中选择要添加为单个信号的通道。可以按任何顺序添加任何频道。通过按住键盘上的“ Shift”或“ Ctrl”按钮并单击其他通道以突出显示它们,可以一次添加多个通道。对于我们的示例,让我们添加4个单个信号,通道15-12。
单击“添加”将选定的通道添加到列表中。看起来应该像这样。
当新通道出现在网格中时,您将看到各种选项以进一步定义通道。暂时不用担心这些选项。我们将在下一步中定义每个通道。
现在让我们来看一下添加总线。单击“总线”打开总线配置窗口。
在窗口顶部,您可以在“名称”框中编辑总线的名称。 。在左侧窗口的下方,选择要添加到总线的通道。可以选择尚未使用的任何通道。通过按住键盘上的“ Shift”或“ Ctrl”按钮并单击其他通道以突出显示它们,可以一次添加多个通道。选定频道后,单击将其添加到右侧的窗口中。在右侧窗口中突出显示任何通道,都可以通过单击将其删除,也可以通过单击或更改其在总线中的相对位置。
使用“格式”框,可以更改数字输入和显示总线数据的方式。有很多选择。
“字节序”框使您可以在最高有效位(MSB)或最低有效位(LSB)之间进行选择。选择“ MSB”会将最高有效位分配给右侧窗口中显示的顶部通道。相反,选择“ LSB”会将最低有效位分配给右侧窗口中显示的顶部通道。
通过MSB和LSB框,您可以确定用于总线值的索引。如果您熟悉编写计算机代码的二进制操作,则类似于对值进行位移位。将添加其他占位符位以进行填充。例如,您选择4位总线,但将MSB框设置为7(LSB框将自动调整为4)。在绘图窗口中该总线的数字表示形式将是8位(b0000 0000 →在LSB位置的数字上加上4 0),而不是4位(b0000),即使您只是将4个I/O通道上的信号。 MSB的值可以高达31,而LSB的值可以低至-32。
现在,让我们添加一个具有十进制格式和MSB字节序的8位总线。 MSB和LSB框分别默认为“ 7”和“ 0”,这对于我们的示例来说很好。我们将总线命名为“ ABCDEFGp”,因为它将是我们的7段显示器的段选择总线。
单击“确定”以添加公交车到电网。您的网格应如下所示。
最后一个信号选项是ROM Logic,可用于可视化真值表和测试状态机逻辑。选择“ ROM Logic”以打开配置窗口。
在顶部,您可以在框中重命名ROM逻辑通道。 。
使您可以确定输入的采样频率。如果输入上的状态变化发生的速度快于采样频率,则输出可能不会记录正确的值。确保将采样频率设置为高于预期的输入频率。
在左侧,您将拥有“输入”窗口,而在右侧,您将拥有“输出”窗口。对于两个窗口,单击添加通道。 允许您删除选定的频道,而和允许您在窗口中上下移动频道。
单击,并将DIO 8和DIO 9添加为输入。
添加DIO 11作为输出。不要单击,因为我们必须定义真值表。
如果要重命名DIO通道,请双击“名称”列下的“ DIO x ”,其中 x 是DIO编号。对于我们的示例,让我们将“ A”分配给DIO 9,将“ B”分配给DIO 8,将“ C”分配给DIO11。完成后,ROM Logic配置窗口应如下所示。
现在让我们设置真值表。单击选项卡以打开真值表编辑器。
让我们做一个简单的AND真值表。使用两个输入时,有4种可能的组合,因此我们需要添加4行。单击来执行此操作。正如我们之前所见,将删除选定的行,而和则允许您向上或向下移动选定的行。在A列中,从上至下输入值0、0、1和1。在栏目B中,从上至下输入0、1、0和1。最后,在C列中从上至下输入0、0、0和1。该表应如下所示。
填写完所有内容后,单击将ROM逻辑通道添加到网格中。网格现在应该看起来像这样。
在查看各个通道设置之前,让我们遍历顶部的其余通道控件。
p》
允许您删除所选通道,或者可以清除整个网格。突出显示一个通道后,您也可以按键盘上的“ Delete”删除该通道。
使您可以编辑所选信号的属性或参数。单击“属性”将打开A)信号的名称和通道选择; B)总线的名称,通道选择,格式,字节序等; C)ROM逻辑的属性选项卡。单击“参数”将打开信号和总线的信号类型编辑器窗口(我们将在下一节中介绍),以及ROM Logic的“真值表”选项卡。您还可以通过单击每个通道名称旁边的网格中的来访问每个通道的属性窗口。单击将打开参数窗口。
使您可以确定要在网格列中显示的数据。并非所有列都将用于所有信号,但是有些列将使用所有它们。
“模式”窗口的右侧是绘图窗口。显示定义的模式。在该窗口的顶部,有三个用于编辑窗口的选项。 允许您在自动或手动缩放绘图时基之间进行选择。选中手动后,允许您调整时间范围,而允许您设置窗口的开始时间。
下一个是网格本身。我已经提到了其中的一些部分,所以让我们看一下通道参数列。
步骤4:定义通道
第一列是“输出”。根据您在“类型”列中选择的类型,此下拉菜单中最多有四个选项。 “ PP”代表推/拉,是全幅1/0信号。接下来是“ OD”,表示开漏。信号将在0到Z之间摆动,根据定义,这是一个不确定的值。 (我用AD2进行的测试显示Z仅为几毫伏,但不是真正的0或1值。)接下来,我们有“ OS”,代表开源。信号在1和Z之间摆动。最后是“ TS”,它是三态。信号可以是1,Z或0。
下一列是“空闲”。您可以设置在工具不运行时AD2在DIO引脚上输出的值。此设置与其他设置无关,即即使您将通道设置为漏极开路,您也可以在空闲时输出1,因此请注意如何设置以避免短路。可能的设置是“初始”,0、1或Z。
下一个是“类型”列,其后是最多三个“参数”列。您可以在此处设置要输出的信号类型及其可能的参数。可以将单通道信号设置为:
-常数,将信号设置为1,Z或0,并无限期保持该值。
-时钟,它将根据设置的频率和所选的输出类型输出方波。也可以选择占空比和相位。
-脉冲,它根据系统时钟分频和设置的计数器来更改通道的输出状态。就像时钟信号类型一样,但是可以为您提供对信号的更多控制和自定义。
工具开始运行时的信号状态。 设置信号将保持低电平的计数数量。 设置信号将保持高电平的计数数量。将“高”除以“低”和“高”之和将决定您的占空比。添加“低”和“高”时间值将确定您的总时间。 是计数器的初始值,并且只是一个可编程的延迟,可以在右边的秒数中看到。当达到初始计数器值时,信号将输出“开始”状态并开始对高/低状态值进行计数。 在AD2内的FPGA芯片上对100 Mhz系统时钟进行分频。然后,将该分频后的时钟值用作时钟信号以开始计数。 设置在分频器启动和低/高值计数之前将等待的系统时钟周期数。它像系统延迟而不是计数器延迟一样工作。每个设置都有一个与之相关的时间值,以及最小和最大设置,所有这些都显示在设置框的右侧。
-随机,听起来就是这样。计算机生成一个随机位串。您可以调整位更改状态的频率。
-自定义,可以根据需要定义自己的信号。
确定信号的采样频率。 设置信号可以具有的样本数量。确定要使用的样本数量后,可以单击下面的小绘图窗口来设置每个样本,但是对于许多样本而言,这可能很困难。窗口右侧的数据表可让您分别设置每个样本,然后将其反映在底部的图中。 允许您导入保存的自定义模式文件,或者可以将自定义数据导出为* .csv,*。txt或* .tdms文件,或者作为最常见的自定义编辑器窗口的图像导出图像文件格式。单击关闭自定义编辑器。
第5步:定义通道,第2部分
Buss具有与Single相同的类型选项信号,但带有一些其他计数器选项,这些选项只能通过同步总线信号来完成。计数器选项有:
-二进制计数器,它是一个简单的二进制计数器,即格雷计数器,它通过只允许一次在连续数字之间进行一次更改来递增/递减计数。单击此处以获取有关格雷码/计数器的更多信息。二进制和灰度计数器都具有相同的设置选项。您可以设置频率,即LSB在高/低之间切换的速率,在第一个计数周期内计数器将启动的初始值以及它是向上计数还是向下计数。计数器可以从2 n 向上或向下计数,其中 n 是分配给总线的通道数。一旦达到最大值(向上)或0(向下),计数器将从头开始,然后忽略定义的初始值。
-Johnson计数器,也称为环形计数器,是格雷码的一种变体,它一次添加一个通道,从LSB(左方向)或MSB(右方向)开始,直到所有通道都打开。然后,一次关闭每个通道,再次从LSB或MSB开始,直到所有通道都关闭。然后重复该循环。 Johnson计数器共有2n 个可能的组合,其中 n 是分配给总线的通道数。单击此处以获取更多有关Johnson计数器的信息。
-遍历0/1计数器,这些计数器依次“遍历”所有位,一次一个。频率确定位改变状态的速率。您可以将行走设置为从LSB(左方向)或MSB(右方向)开始。 允许您设置0/1持续多少计数,从0到 n,,其中 n 是分配给总线的通道数。
现在我们已经处理了所有这些,让我们回到示例中。使用每个通道的“参数”窗口,将DIO 15-12设置为“ PP”输出,“ 0”空闲,“自定义”类型,“ 200 Hz”频率和“ 4”个采样。对于DIO 12,将样本1设置为“ 1”,将其他样本保留为“ 0”。
其余3个通道的设置类似。对于DIO 13,将样本2设置为“ 1”。 DIO 14,将样本3设置为“ 1”,对于DIO 15,将样本4设置为“ 1”。这些将与四个数字中的每个数字相关联。将DIO 12绑定到数字1,将DIO 13绑定到数字2,将DIO 14绑定到数字3,将DIO 15绑定到数字4,这可能有助于重命名它们以标识各自的数字。一旦全部设置,四个单个通道应看起来像
对于总线“ ABCDEFGp”,打开总线的“参数”窗口。将总线设置为“自定义”类型,“ PP”输出,“ 1”空闲,1.6 kHz频率和“ 32”样本。设置此总线的最简单方法是使用数据表。单击并将其拖动到左侧以扩展数据表。从“ ABCDEFGp”列下的第1行开始,您可以输入该样本的总线值。在总线“属性”窗口中确定如何输入该值。我们之前选择了“十进制”格式。如果您愿意,还可以单独设置每个总线通道。
如果您不熟悉多路复用LED,则想法是一次只打开一个网段,但如此快地循环遍历所有网段您看不到它们闪烁。第一位数字将显示数字“ 1”和小数点。要在7段中使“ 1”亮起,我们需要点亮段B和C。将行1设置为“ 253”(0b11111101)以设置段B。将行2设置为“ 251”(0b11111011)以进行设置接下来的5行设置为“ 255”(0b11111111),以保持所有分段关闭。将第8行设置为“ 127”(0b01111111)以打开小数点。由于总共有8个LED,第9-16行是数字2的段分配。第17-24行是数字3的行,第25-32行是数字4的行。我提供了两个图像以显示完整的图像下表包含十进制和二进制值。
连接AD2接头上的数字引脚根据制造商的规格连接到7段显示器。对于KW4-561系列显示器,我已按图所示连接了我的显示器。
点击运行显示。您应该看到以下内容。
如果具有公共阴极显示,请进行所有相同的连接和信号定义,但将所有位都反转分配所有4个信号和整个总线表。
尝试将用于数字的4个单独信号放入一条4位总线。
现在让我们快速看一下我们前面定义的ROM逻辑通道。我们设置真值表以匹配简单的AND逻辑门的输出,如果通道A和B都记录一个高值,则C将输出一个高值。如果A或B之一或两者都为低电平,则C输出低电平信号。
让我们建立一个快速电路来说明这一点。如下所示连接电路。
和正在运行的电路的简短gif。
第6步:就是这样!
如您所见,Analog Discovery 2上的码型生成器是一个强大的工具,可帮助您测试和分析高电平。
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !