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

    文章

    15546

    浏览量

    173510
  • Xilinx
    +关注

    关注

    70

    文章

    2130

    浏览量

    119778
  • I2C
    I2C
    +关注

    关注

    28

    文章

    1394

    浏览量

    121445

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

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

收藏 人收藏

    评论

    相关推荐

    I2C接口

    本帖最后由 eehome 于 2013-1-5 09:56 编辑 现在设计有两个设备,主设备和从设备,通过I2C接口控制连接,由于距离可能距离较远50cm左右,请问这距离有问题吗?还有没有对
    发表于 11-08 09:34

    如何用MSP微控制器开始一I2C通信有关项目

    这是一份介绍性指南,指导你如何用超低功耗MSP微控制器 (MCU) 开始一I2C通信有关的项目:简介I2C(或称为I2C,集成电路总线)
    发表于 06-04 10:43

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

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

    赛普拉斯USB3微控制器I2C启动问题

    主意时,它是为了了解正在发生的事情。我们有一自定义板与CysB3012 BZXC微控制器从ST I2C内存启动(M24M02-DR)。两个芯片都类似于SSEK的芯片,虽然部件号是不同
    发表于 12-19 14:52

    不使用处理I2C控制器

    嗨,我需要一I2C内核来控制串行eeprom。在Web上的大多数I2C示例中,使用了微处理。但我想只使用FPGA。我怎样才能做到这一点?
    发表于 03-13 13:08

    如何在I2C上从外部微控制器运行引导加载程序?

    编程部分。我还没有找到任何关于如何使用外部微控制器作为引导加载程序的文档。我只能在HSSP编程接口上找到文档,如果它坏了,可能会擦除引导加载程序。有人知道是否有一文档显示如何在I2C上从外部微
    发表于 07-12 09:09

    到底什么是I2C

    I2C开关可以解决两个不同的问题。第一问题与地址冲突有关。当同一总线上的两个设备具有相同地址时通常会发生冲突。如果系统在同一I2C总线上
    发表于 07-23 04:45

    PIC16F1827上的两个I2C通道

    嗨,我希望两个使用两个独立的I2C设备,集中控制从PIC16F1827。这两个器件是1)10位微芯片3021ADC和
    发表于 04-07 15:25

    能使用内置的I2C控制器或使用软件吗

    刚开始的时候,我有一带有I2C接口的PIC12F1820。读取外部串行EEPROM的最好方法是什么?1)我应该使用内置的I2C控制器或使用软件吗?
    发表于 05-14 08:14

    HarmonyOS 驱动平台---I2C

    ){ /* 将3号I2C控制器对应两个管脚的IO功能设置为I2C */ OSAL_WRITEL(I2C_REG_CFG, IO_DEVICE
    发表于 09-16 18:54

    I2C使用步骤

    Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备现在被广泛地使用在系统内多个集成电路(IC)间的通讯。软件I2C将芯片的两个
    发表于 08-23 06:22

    I2C总线简介

    I2C 简介I2C 是双线双向的串行总线,它为设备之间数据交换提供了一种简单高效的方法。I2C 标准是一具有冲突检测机制和仲裁机制的真正意义上的多主机总线。它能防止
    发表于 02-22 06:55

    Rockchip I2C控制器支持哪些功能?

    Rockchip I2C控制器支持哪些功能?
    发表于 03-02 09:56

    求助两个不同的芯片连接到一I2C总线的标签丢失问题

    我遇到了两个不同的芯片连接到一 I2C 总线的“标签丢失”问题。我没有找到类似的情况,所以这是我的:一芯片是ST25DV04K另一芯片
    发表于 12-13 07:55

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

    I2C 总线的两根信号线 SCL 和 SDA 需要上拉才能正常工作,当板卡上没有合适的硬件设置或者没有合适的 I2Cslave 设备,我们就无法进行 I2C 软件测试。那么是否可以将两个
    发表于 08-02 09:23 429次阅读
    如何在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>