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

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

3天内不再提示

两个PS I2C控制器的回环测试

FPGA之家 来源:XILINX开发者社区 作者:赛灵思开发者 2022-04-13 08:35 次阅读

本文来自 XILINX产品应用工程师 Davis Zhang

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所示,

两个PS I2C控制器的回环测试

附件是个例子工程 (附件可点击阅读原文 输入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 波形 :

两个PS I2C控制器的回环测试

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

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

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

    关注

    112

    文章

    16332

    浏览量

    177808
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121303
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1484

    浏览量

    123619

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

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    为什么I2C总线忙于两个设备?

    晚上好,我正试图通过PS2C作为主机来获得两个MPU-9250的工作。连接到总线只有一MPU-9250一切工作完美!使用两个设备不能工作,并且I2
    发表于 11-14 11:31

    实现I2C总线控制器的VHDL源代码

    I2C总线控制器 altera提供 The I2C Controller was designed for the MC68307 uC, provides a simplified
    发表于 05-20 10:25 251次下载

    基于I2C和双ARM的PCB钻床控制器设计

    本文介绍了一种基于;C 总线和双ARM 微控制器的印刷电路板钻床控制器控制器两个
    发表于 10-12 18:29 28次下载

    LM3S系列微控制器I2C应用文档

    LM3S系列微控制器I2C应用文档基于LM5749的I2C从机功能,模拟24C02传输协议操作。
    发表于 04-03 14:29 52次下载

    基于Verilog的I2C控制器的设计与综合

    为满足嵌入式系统中专用芯片功能不能达到系统要求的现状,设计出一种功能可扩展的I2C slave控制器,这种控制器与传统的专用I2C芯片不同。专用的I
    发表于 10-25 16:58 60次下载
    基于Verilog的<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>的设计与综合

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 开发板上有 4 片上 I2C 控制器。本文主要描述如何在该开发板上配置 I2C
    的头像 发表于 11-29 08:47 1477次阅读
    Firefly-RK3128主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>

    fireflyFace-RK3399主板I2C控制器介绍

    Face-RK3399 开发板上有 9 片上 I2C 控制器
    的头像 发表于 12-04 09:17 2958次阅读
    fireflyFace-RK3399主板<b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>介绍

    i2c总线用来做什么_i2c总线数据传输过程

    I2C总线控制器为微控制器或微处理提供控制I2C总线的接口,它
    发表于 11-24 14:16 7260次阅读

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

    I2C 总线的根信号线 SCL 和 SDA 需要上拉才能正常工作,当板卡上没有合适的硬件设置或者没有合适的 I2Cslave 设备,我们就无法进行 I2C 软件
    的头像 发表于 05-20 15:46 1979次阅读
    如何将<b class='flag-5'>两个</b>PSI<b class='flag-5'>2C</b><b class='flag-5'>控制器</b>通过EMIO接口互连起来?

    硬件I2C与模拟I2C

    配置;而软件I2C是没有寄存这个概念的。 软件I2C一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    如何在Versal平台实现两个PS I2C控制器回环

    I2C 总线的根信号线 SCL 和 SDA 需要上拉才能正常工作,当板卡上没有合适的硬件设置或者没有合适的 I2Cslave 设备,我们就无法进行 I2C 软件
    发表于 08-02 09:23 572次阅读
    如何在Versal平台实现<b class='flag-5'>两个</b><b class='flag-5'>PS</b> <b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>的<b class='flag-5'>回环</b>

    使用I2C通信连接两个Arduino

    电子发烧友网站提供《使用I2C通信连接两个Arduino.zip》资料免费下载
    发表于 11-01 09:56 0次下载
    使用<b class='flag-5'>I2C</b>通信连接<b class='flag-5'>两个</b>Arduino

    I2C控制器驱动介绍

    控制器驱动 I2C 总线驱动重点是 I2C 适配器驱动,这里要用到两个重要的数据结构:i2c_adapter 和
    的头像 发表于 07-22 15:38 1480次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>控制器</b>驱动介绍

    I2C设备驱动的两个数据结构

    设备驱动 I2C 设备驱动重点关注两个数据结构:i2c_client 和 i2c_driver。i2c_client 就是描述设备信息的,
    的头像 发表于 07-22 15:49 829次阅读
    <b class='flag-5'>I2C</b>设备驱动的<b class='flag-5'>两个</b>数据结构

    I2C子系统SW Architecture

    适配器(控制器)驱动,这里用到两个重要的数据结构:i2c_adapter 和 i2c_algorithm。其中,Linux 内核将 SOC 的 I
    的头像 发表于 07-22 16:01 945次阅读
    <b class='flag-5'>I2C</b>子系统SW Architecture