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

本文详细介绍了如何使用NI提供的SPI和I2CDriverAPI与FPGA进行通信,包括硬件选择、I2C通信注意事项、硬件连接示例和LabVIEW软件配置。作者通过实例展示了如何在PXI-7854R板上连接多个传感器,如温度传感器、加速度计和陀螺仪,并指导如何在FPGA上配置SPI和I2C接口。
摘要由CSDN通过智能技术生成

        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 发送。 

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

        电源由 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

接地

接地

 

电路示例

 

完成后,打开项目。

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

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

配置 SPI 引脚。

配置 I2C 引脚。

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

 

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

final_main.vi

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

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

  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值