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

这篇具有很好参考价值的文章主要介绍了【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通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

        电源由 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通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

电路示例

 

完成后,打开项目。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

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

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

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

配置 SPI 引脚。

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

配置 I2C 引脚。

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

 

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

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

final_main.vi

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

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信,现场可编程门阵列【LabVIEW FPGA】,labview,LabVIEW FPGA

使用I2C Engine.vi避免复杂的FPGA编程。您可以为 SPI 执行此操作。文章来源地址https://www.toymoban.com/news/detail-787470.html

到了这里,关于【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 串行通信协议(I2C、SPI、UART、SCCB、CAN)

    推荐一部书,在这本书里面介绍了I2C、SPI、UART和CAN等通信协议,写的蛮不错的。 串行通信 :设备与设备之间,传输数据按顺序依次1bit位接1bit位进行传输。 并行通信 :设备与设备之间,通过多条传输线,可以同时传输多个bit位的信号。 1.简单的双向两线制总线协议标准、半

    2024年02月14日
    浏览(64)
  • 详解UART、I2C、SPI常用通信协议(全是细节)

            UART、I2C和SPI是我们在嵌入式开发中比较常见的通信协议了,没有最好的通信协议,每个通信协议都有自己的优缺点。如果想要通信速度快,SPI 将是理想的选择;如果用户想要连接多个设备而不是过于复杂,I2C 将是理想的选择,因为它最多可以连接 127 个设备并且易

    2024年02月15日
    浏览(40)
  • 【开源】调试利器:高速USB转UART、SPI、I2C、JTAG

    在前面的文章 动态库封装实例 中使用了一个CH347高速USB转UART、SPI、I2C、JTAG桥接模块,已经开源👉 GitHub仓库。 CH347 High Speed USB Bridge 是基于沁恒CH347芯片设计的一款调试利器,支持高速USB,可以实现USB to UART,USB to SPI,USB to I2C,USB JTAG,USB to GPIO。 概况 Type-C接口,USB2.0,支持

    2024年02月03日
    浏览(51)
  • 高速USB转JTAG/SPI/I2C/UART/GPIO应用

    高速USB转接芯片CH347是一款集成480Mbps高速USB接口、JTAG接口、SPI接口、I2C接口、异步UART串口、GPIO接口等多种硬件接口的转换芯片。 接口示意图: 应用示意图: JTAG接口特点 工作在 Host/Master主机模式; 硬件信号:TMS、TCK、TDI、TDO和TRST; 支持自定义协议的快速模式和bit-bang模式

    2023年04月23日
    浏览(43)
  • 详细介绍GPIO、I2C、SPI通讯原理以及物理层原理

    目录 一. GPIO 1. 什么是GPIO? 2. GPIO组成原理 3. GPIO工作原理 二. I2C 1. 什么是I2C? 2. I2C组成原理 3. I2C的特性 4. I2C的通讯模式 5. I2C的通讯过程 6. I2C接口工作模式 7. 硬件拉高拉低的过程 8. 一对多 9. 开发流程 三. SPI 1. 什么是SPI? 2. SPI优与缺点 3. SPI组成原理 4. SPI通讯模式 5. 通讯

    2024年02月02日
    浏览(108)
  • vivado技巧|如何在fpga内部实现i2c信号透传(fpga内部两组i2c inout信号互连)

    大家好,我是数字小熊饼干,一个练习时长两年半的ic打工人。我在两年前通过自学跨行社招加入了IC行业。现在我打算将这两年的工作经验和当初面试时最常问的一些问题进行总结,并通过汇总成文章的形式进行输出,相信无论你是在职的还是已经还准备入行,看过之后都会

    2024年03月18日
    浏览(139)
  • USB转SPI USB转IIC 串口转SPI串口转IIC SPI I2C模块

            一款支持USB转SPI、USB转I2C、USB转GPIO、USB转PWM、USB转ADC的模块。提供上位机工具,开发协议。 资料下载, 链接:https://pan.baidu.com/s/1sw3RCMwjhrMO4qzUBq9bjA     提取码:qzjp         串口转多协议模组为了客户调试一些功能简单化,目前有串口转GPIO、串口转PWM、串口

    2024年01月18日
    浏览(48)
  • 【FPGA】十一、I2C通信回环

    文章目录 前言 一、I2C简介 二、I2C原理 2.1、I2C物理层 2.2、I2C协议层 2.2.1、I2C协议 2.2.2、I2C数据传输格式 2.2.3、I2C写操作 2.2.4、I2C读操作 三、项目设计 3.1、任务需求 3.2、状态机设计 3.3、程序代码 3.4、仿真验证 总结         在前面的文章内容中我们提到常用的三个低速串行

    2024年02月16日
    浏览(47)
  • DMA技术在STM32中优化UART、SPI和I2C通信性能的研究与实现

    DMA(Direct Memory Access,直接存储器访问)技术可以在STM32微控制器上优化UART、SPI和I2C等通信性能。 DMA可以实现数据的高速传输,减轻CPU的负担,提高系统性能。在本篇文章中,我将探讨DMA技术在STM32中优化这些通信协议的研究和实现。 一、DMA工作原理 DMA可以实现外设与存储器

    2024年01月20日
    浏览(41)
  • 串口RS232 RS485最本质的区别!-!I2C通讯协议 最简单的总线通讯!-深入理解SPi通讯协议!

    来自 先讲串口通讯,因为不管是R4232还是R485,都是串口通讯的变种。知道了串口通讯,再来看232和485,就很容易理解了。串口通讯非常容易实现,它在两个芯片之间就可以实现信号的传输。在进行串口通讯时,首先要约定好真格式和波特率。这是一帧我们常见的帧格式,一共

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包