【技术专辑】在NI myRIO上学习LabVIEW FPGA – Hello World!

相关文章

 

在NI myRIO上使用LabVIEW FPGA:

 

第1部分:什么是LabVIEW FPGA

 

第2部分:Hello World(闪烁LED)

 

第3部分:读取模拟值

 

第4部分:FIFO 

 

第5部分:第3方代码

 

概观

 

这是NI myRIO文章系列中利用LabVIEW FPGA的第2部分。在上一篇文章中,我们介绍了FPGA的基础知识,如何创建LabVIEW项目,如何访问myRIO嵌入式设备,甚至编写了我们的第一个FPGA应用程序。本文将展示如何利用我们刚刚学到的东西与现实世界交互。它将解释如何访问myRIO的数字输入和输出端口,以及如何使用LabVIEW中称为移位寄存器的概念来使用先前代码循环迭代中的数据。然后我们将一个简单的发光二极管连接到myRIO的数字线之一,并通过每秒打开和关闭它来使其闪烁。

 

连接硬件

 

首先,我们需要一个发光二极管(LED)来切换。建议您使用3.3V LED,因为myRIO只能在数字线路上提供3.3伏电压。正如我们将在后面的文章中看到的那样,当涉及到阅读时,它将能够更进一步。请注意,常规5V LED也可以工作,但可能不那么明亮。然后我们需要计算一个限流电阻的值,该电阻将串联在LED和数字线之间。这是必要的,因为发光二极管非常敏感,没有电阻来限制电流,它基本上会“缩短”数字线路和myRIO的接地。虽然它不会破坏myRIO,但它很容易打破LED。更不用说忽略限流电阻被认为是一种糟糕的布线实践。关于这个主题在网上有很多很棒的材料,我们不会过多地讨论这个理论。看一下接线示意图(图1)我们可以看到Resistance,R可以如下找到:

 

【技术专辑】在NI myRIO上学习LabVIEW FPGA - Hello World!

 

其中Vs是源电压,在我们的例子中是3.3V。Vf是LED的正向电压,通常在数据表中规定,在我们的情况下为1.4V。最后,我是将LED驱动到全亮度所需的电流。该值也可以在大多数数据表中找到,通常约为20-30 mA。将这些数字代入我们的等式中,我们发现推荐的串联电阻值限制流过LED的电流在60到95欧姆之间。在撰写本文时,我能找到的最接近的电阻值是330欧姆,它工作正常。根据经验,最好减少更多 电流比较少。如果说,当电阻超过1 KOhm时,您可能会失去组件的大部分亮度,但肯定会有一些灵活性。如图1和图2所示,为了本教程的目的,我们将使用myRIO的端口C的数字线0。

 

【技术专辑】在NI myRIO上学习LabVIEW FPGA - Hello World!

图1 电路图

 

【技术专辑】在NI myRIO上学习LabVIEW FPGA - Hello World!

图2  330欧姆电阻绕LED的阳极缠绕,并使用两根母对母跳线建立与myRIO的连接。

 

编写FPGA代码

 

就像在第一篇文章中一样,让我们创建一个新的LabVIEW项目,将其另存为“myRIO FPGA Series 2.lvproj”并添加NI myRIO作为目标设备。然后我们需要创建一个新VI并将其保存在与“ FPGA.VI ” 相同的目录中。在这个VI中,我们需要创建一个  while循环(A)来确保我们的代码连续运行。像上次一样,我们将一个False  布尔常量连接到停止条件终端(B),以确保我们的代码永远不会停止执行。 然后我们需要从项目的C 端拖放DIO0 资源(C)到我们的FPGA VI,如图3所示。默认情况下它将处于读状态,因此请确保右键单击DIO0资源并选择“Change to Write”。然后我们创建另一个布尔常量,我们将反转每个循环迭代(D)。为了保持先前循环迭代的值,我们将使用移位寄存器(E)。想象一下移位寄存器作为一个内存块,它“记住”上次运行时连接到它的内容。要添加移位寄存器,首先将数据连接到while循环,然后右键单击终端并选择“Replace with Shift Register ...”。这样我们现在可以在每次while循环运行时继续反转该值,从而打开和关闭LED。然后我们应该添加一些时间(F.),否则我们的代码将继续切换LED方式太快,我们无法看到!通过双击计时功能并选择“计数器单位”为“mSec”(G),确保时间配置为毫秒。最后,我们还可以创建一个指标来仔细检查我们的反相逻辑是否实际按预期工作(H)。

 

【技术专辑】在NI myRIO上学习LabVIEW FPGA - Hello World!

图3  LabVIEW FPGA代码及附带说明

 

运行FPGA代码

 

如果您已正确使用教程并运行FPGA VI,则在编译后您应该看到前面板上的LED指示灯和实际LED同时闪烁。恭喜,您现在已经使用LabVIEW和NI myRIO通过几个简单的步骤成功实现了FPGA的硬件I / O接口。您可以尝试调整时序值,如图3中的(F)所示,看看它如何改变LED切换的频率。或者,您也可以尝试将LED的Anode连接到另一个DIO线,更改代码并重新编译,以确保您了解教程涵盖的内容。

 

在下一篇文章中,我们将介绍如何使此LED不仅闪烁,还可以改变亮度。此外,您将使用称为电位计的可变电阻来控制它!

  • 【技术专辑】在NI myRIO上学习LabVIEW FPGA – Hello World!已关闭评论
    A+
发布日期:2019年03月04日  所属分类:参考设计