【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信

        NI提供了 SPI and I2C Driver API:下载SPI and I2C Driver API - NI

        该API使用FPGA数字I / O线与SPI或I2C设备进行通信。

        选择数字硬件时,要考虑三个选项:

  • NI Single-Board RIO硬件可同时使用SPI和I2C驱动程序。
  • NI 9401 C系列模块与SPI驱动程序配合使用效果最佳。
  • NI 9402 C系列模块最适合I2C驱动程序。

         I2C通信要求设备即时将DIO线置于三态。如果没有外部硬件,9401将无法执行此操作。 NI因此建议将9402用于I2C通信。

        

        该示例已在 PXI-7854R 板上进行了测试,但我希望它也能在其他类似的板上工作(参见 I2C&SPI API 设备兼容性)。目标是使用 SPI 总线从两个温度传感器读取温度,并通过 I2C 总线从陀螺仪和加速度计获取数据。FPGA 托管 I2C 和 SPI 通用层的电路,每个命令均从主机 VI 发送。 

        在面包板上,一切都是这样接线的: 

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第1张图片

        电源由 FPGA 引脚提供,电压为 3.3V。切勿忘记每条线上的上拉电阻(建议值:4.7k)。

 

        注意:在 ADXL 345 上,要激活 I2C:将 SDO 引脚接地。

        

硬件和软件要求

 传感器:

  • LM 74(温度传感器)x2
  • ADXL 345(加速度计)
  • MPU 6050(陀螺仪)

硬件:

  • PXI-7854R (FPGA)
  • PXIe-8135(Windows 7下的PXI控制器)
  • SCB-68

软件

  • LabVIEW 2018
  • FPGA模块
  • I2C&SPI API(VIPM 上提供:I2C&SPI API) 
  • R系列驱动程序(2018版)

实施或执行代码的步骤

首先,使用不同的传感器构建电路,并通过 SCB-68 将它们连接到 FPGA。如果您使用相同的硬件,我建议您使用以下引脚:

SCB-68 针

FPGA引脚

面包板引脚

67

连接器1/DIO37

SDA

33

连接器1/DIO36

SCL

32

连接器1/DIO24

味噌

65

连接器1/DIO33

时钟时钟

31

连接器1/DIO32

抽烟

63

连接器1/DIO29

CS0

29

连接器1/DIO28

CS1

57

连接器1/DIO22

3.3V

23

接地

接地

 【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第2张图片

电路示例

 

完成后,打开项目。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第3张图片

项目你如果不使用相同的设备,则需要重新配置FPGA IO:打开FPGA和VI主FPGA.vi

然后,修改您在 FPGA 上选择的引脚的 IO。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第4张图片

配置 SPI 引脚。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第5张图片

配置 I2C 引脚。

注意:您可以看到我修改了 FPGA 引脚的名称,以使程序更易于阅读。 

 

重新配置引脚后,重新编译 FPGA。完成后,您可以运行 VI Final_main.vi。 

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第6张图片

final_main.vi

注意:要对 FPGA 进行编程,您只需将 I2C Engine.vi 拖放到 FPGA 代码上即可。它将为您制作整个通用层。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信_第7张图片

使用I2C Engine.vi避免复杂的FPGA编程。您可以为 SPI 执行此操作。

你可能感兴趣的:(FPGA】,labview,LabVIEW,FPGA)