0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将两个PSI2C控制器通过EMIO接口互连起来?

电子工程师 来源:XILINX开发者社区 作者:XILINX开发者社区 2021-05-20 15:46 次阅读

I2C 总线的两根信号线 SCL 和 SDA 需要上拉才能正常工作,当板卡上没有合适的硬件设置或者没有合适的 I2Cslave 设备,我们就无法进行 I2C 软件测试。那么是否可以将两个 PSI2C 控制器通过 EMIO 接口互连起来呢?

因为在 PL 内部无法设置信号线上拉,所以不能直接将 I2Cmaster 控制器的 scl_o/sda_o 连接到 I2C slave 控制器的 scl_i/sda_i。有另一种方法来实现上拉的效果,就是通过在顶层 wrapper 里 scl_T 和 sda_T 的组合逻辑来模拟 scl_i 和 sda_i,具体逻辑如下,

assign i2c0_scl_i = i2c1_scl_t && i2c0_scl_t;

assign i2c0_sda_i = i2c1_sda_t && i2c0_sda_t;

assign i2c1_scl_i = i2c0_scl_t && i2c1_scl_t;

assign i2c1_sda_i = i2c0_sda_t && i2c1_sda_t;

这些信号都是两个 PS I2C 控制器的 emio 信号从 block design 导出到顶层 wrapper,其中四个 emio 信号在从 block design 导出到顶层 wrapper 之前需要做逻辑反相。

i2c0_scl_t、i2c0_sda_tn、i2c1_scl_t、i2c1_sda_tn

反相操作如图中 util_vector_logic_0~3所示,

5e2744a4-b558-11eb-bf61-12bb97331649.png

附件是个例子工程 (附件可点击阅读原文 输入0513获取),基于 vck190 es1 board 和 Vivado2020.2。里面包含 block design tcl脚本、顶层 wrapper、prebuilt xsa 文件和 vitis application 源码。Vitis application 把i2c0 配置为 master、i2c1 为 slave,然后做读写校验测试。可以通过串口输出信息来判断是否测试成功,block design 里也介入了 ila,可以在 hardware manager 里检查相关信号。下面是 i2c0_scl_i/i2c0_sda_i/i2c1_scl_i/i2c1_sda_i 波形 :

原文标题:开发者分享 | 如何在 Versal 平台实现两个 PS I2C 控制器的回环

文章出处:【微信公众号:XILINX技术社区】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16152

    浏览量

    177260
  • Versal
    +关注

    关注

    1

    文章

    152

    浏览量

    7637

原文标题:开发者分享 | 如何在 Versal 平台实现两个 PS I2C 控制器的回环

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    金属层1工艺的制造流程

    金属层1工艺是指形成第一层金属互连线,第一层金属互连线的目的是实现把不同区域的接触孔连起来,以及把不同区域的通孔1连起来。第一金属层是大马士革的铜结构,先在介质层上挖沟槽,再利用电镀(
    的头像 发表于 11-15 09:12 63次阅读
    金属层1工艺的制造流程

    TPA6130A2如果不需要I2C功能,是否可以I2C两个引脚悬空?

    如果不需要I2C功能,是否可以I2C两个引脚悬空。 2.如果I
    发表于 11-01 08:16

    如何将自定义逻辑从FPGA/CPLD迁移到C2000™微控制器

    电子发烧友网站提供《如何将自定义逻辑从FPGA/CPLD迁移到C2000™微控制器.pdf》资料免费下载
    发表于 09-23 12:36 0次下载
    <b class='flag-5'>如何将</b>自定义逻辑从FPGA/CPLD迁移到<b class='flag-5'>C</b>2000™微<b class='flag-5'>控制器</b>

    ths3001和buf634组成功放,为什么连起来之后不正常了?

    昨天单独测试了ths3001做的反比例放大,和三buf634并联组成的缓冲,测试效果正常,ths3001的增益为20db,缓冲的增益为-1.5db。 然后今天早晨我把
    发表于 09-19 07:16

    TPA3112/TPA3116通过两个引脚GAIN01控制增益,可以两个引脚悬空可靠吗?

    TPA3112TPA3116款D类功放芯片通过两个引脚GAIN01控制增益。实际使用TPA3112时发现将引脚悬空也能起到给高电平的功能,但是芯片手册没有说明,实际运用的时候
    发表于 08-12 07:09

    三菱plcFx2N2AD可以接两个压力传感

    三菱PLC FX2N-2AD是一款具有模拟输入功能的可编程逻辑控制器,可以接收模拟信号并将其转换为数字信号,以便进行进一步的处理和控制。在某些应用场景中,可能需要同时接入两个压力传感
    的头像 发表于 06-20 10:13 628次阅读

    两个PLC之间如何交互信号

    在工业自动化系统中,PLC(Programmable Logic Controller,可编程逻辑控制器)是核心的控制设备。在许多复杂的应用场景中,需要两个或多个PLC之间进行信号交互,以实现更高
    的头像 发表于 06-14 16:57 3562次阅读

    通用串行总线Type-C®端口控制器接口规范

    随着USB供电的持续成功,有必要定义一共同的USB Type-C 端口管理和简单的 USB Type-C® 端口控制器之间的
    发表于 03-27 15:36 1次下载

    arcgis中如何关联两个属性表

    在ArcGIS中,关联两个属性表是一重要的操作,可以通过此操作两个表中的数据关联起来,以便进
    的头像 发表于 02-25 11:01 3947次阅读

    两个电位控制变频,如何接线?

    两个电位控制变频,如何接线? 接线方式如下: 1. 首先,明确需要使用的电器设备。在
    的头像 发表于 02-05 10:13 4795次阅读

    为什么要桥接无线路由?如何通过网线两个路由进行桥接?

    为什么要桥接无线路由?如何通过网线两个路由进行桥接?台路由
    的头像 发表于 02-04 14:07 2573次阅读

    如何给C语言中的函数定义两个不同的名字?

    最近有位哥问我,如何给C语言中的函数定义两个不同的名字?就是这两个名字都是指向同一函数,同一地址,而且
    的头像 发表于 12-19 16:21 741次阅读

    如何将数字电位与微控制器隔离控制

    请问,如何将数字电位与微控制器隔离控制,我想用数字电位控制外部设备。
    发表于 12-12 08:12

    SSM2529的I2C接口无法通信是怎么回事?

    ,10k都试过了,还是不行。 看到论坛上说LDO输出能力不足,所以使用了1.8V外部供电,但是有一问题,LDO_OUT和DVDD是在芯片下面连起来的,割不开,所以没法分开。测到不使用外部1.8V
    发表于 11-29 07:38

    两个硬盘2系统开机切换

    切换两个硬盘上的系统是一种常见的行为,可以让用户在不同的操作系统之间进行切换,以满足不同的需求。在本文中,我们详细介绍如何配置和使用两个硬盘上的系统进行切换。本文分为以下几个部分进
    的头像 发表于 11-28 15:08 7265次阅读