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

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

3天内不再提示

记录一下使用I2C VIP验证芯片的一个bug

工程师邓生 来源:小杜的芯片验证日记 作者:小杜 2022-09-21 09:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近使用S家的I2C VIP验证芯片的外围I2C、SMBus总线,作为同样由SCL和SDA两根线支撑起的串行总线,协议相似,因此该I2C VIP也可以配置成SMBus总线使用。只需要更改其最上层的configuration即可,这一点User Guide写的很清楚,很方便。

具体到SMBus模式的使用场景,我需要在发送完一笔数据后,修改数据中的command值,即第一笔数据和第二笔数据使用的command相同,但需要修改command对应的值。该command在_agent_configuration中声明,VIP提供了reconfigure_via_task( )来更改该command。

我参考VIP中提供的示例编写了sequence,其中更改command的代码如下:

smbus_cfg.master_cfg[0].xxx_cmd = 'hxx;
env.system_env.master[0].reconfigure_via_task(smbus_cfg.master_cfg[0]);

但遇到了问题,数据包发送不完,仿真会挂死在某个地方,波形上也会变成一条直线,但run.log暗示数据的确是产生了。随后,根据VIP提供的另一个示例,尝试在调用完reconfigure_via_task( )后,通过调用start( )的方式重新启动sequence,但情况没有发生改变。至此,基本定位到了问题出在调用reconfigure_via_task( )这行代码上。

重新看run.log,发现调用完该task后,VIP的master_agent[0]会被重新配置成默认标准的I2C模式上,这样问题就合理了,I2C standard模式的确发不了SMBus fast模式的数据,这也证实了run.log中现实数据产生了,但总线上没有数据的情况。

因此,解决的办法也很简单,在调用reconfigure_via_task( )之前,将SMBus相关的配置重新配置上即可。


pYYBAGMqaIaAYRnKAAB_NK8th50977.jpg

run.log中藏着debug的信息,在出现bug时一定要仔细阅读run.log,经验+1。

这个问题也和config_db跨层传参失误有关,后面再写~

审核编辑:刘清

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

    关注

    463

    文章

    54416

    浏览量

    469206
  • I2C总线
    +关注

    关注

    8

    文章

    422

    浏览量

    63492
  • SMBus
    +关注

    关注

    1

    文章

    131

    浏览量

    23302
  • SCL
    SCL
    +关注

    关注

    1

    文章

    244

    浏览量

    18067

原文标题:日常 - I2C VIP 配置小问题

文章出处:【微信号:小杜的芯片验证日记,微信公众号:小杜的芯片验证日记】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用 Python 将 I2C LCD 与 VIsionFive 起使用?

    我刚刚发布了篇关于将 I2C LCD 与 VisionFive 起使用的新文章。你可以检查一下。 注意:这是基于 libgpiod 库,我已经在使用这个库。您可
    发表于 03-30 06:52

    深入解析DS1338:款功能强大的I2C实时时钟芯片

    深入解析DS1338:款功能强大的I2C实时时钟芯片 在电子设计领域,实时时钟(RTC)芯片是不可或缺的组件,它能为系统提供精确的时间信息。今天,我们就来深入了解
    的头像 发表于 03-24 09:30 219次阅读

    SGM4541A:I2C总线过压保护的理想之选

    SGM4541A:I2C总线过压保护的理想之选 在电子设备的设计中,I2C总线的稳定运行至关重要。而SGM4541A作为款低IQ I2C总线过压保护器,凭借其出色的性能和丰富的特性,
    的头像 发表于 03-17 16:30 212次阅读

    SGM4591Q:汽车低电压16位I2C和SMBus低功耗I/O扩展器深度解析

    I2C和SMBus低功耗I/O扩展器,为工程师们提供了可靠且高效的解决方案。今天,我们就来深入探讨一下这款
    的头像 发表于 03-16 17:25 443次阅读

    I2C 为什么只要两根线就能搞定通信?

    到目前为止,我们已经讨论了SPI通信和UART通信的基础知识,现在让我们讨论本系列的最后协议,即集成电路间协议(I2C)。如果您曾经构建过使用OLED显示器、气压传感器或陀螺仪/加速度计模块
    的头像 发表于 01-04 09:14 2048次阅读
    <b class='flag-5'>I2C</b> 为什么只要两根线就能搞定通信?

    P82B715:I2C总线扩展的得力助手

    P82B715:I2C总线扩展的得力助手 在电子设计领域,I2C总线是种常用的通信协议,但它的总线电容限制往往会影响实际通信距离和系统设计。今天,我们就来详细了解一下德州仪器(TI
    的头像 发表于 12-26 10:20 1521次阅读

    基于FPGA的I2C控制模块设计

    I2C_WRITE_WDATA.v模块实现I2C写时序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的头像 发表于 12-26 09:48 5941次阅读
    基于FPGA的<b class='flag-5'>I2C</b>控制模块设计

    深入解析 TCA9539:低电压 16 位 I2C 和 SMBus I/O 扩展器

    深入解析 TCA9539:低电压 16 位 I2C 和 SMBus I/O 扩展器 在电子设计的广阔领域中,I/O 扩展器是款关键的小工具。它能够为系统提供更多的输入输出接口,让设计
    的头像 发表于 12-25 09:30 545次阅读

    NXP NTAG I2C plus:解锁NFC连接新可能

    连接NFC标签的佼佼者,为家庭自动化和消费类应用带来了全新的解决方案。今天,我们就来深入了解一下这款产品。 文件下载: NT3H2211W0FTTJ.pdf 、产品概述 NTAG I2C plus
    的头像 发表于 12-24 15:55 522次阅读

    AS32X601的I2C模块操作EEPROM详解

    国科安芯推出的AS32X601系列MCU芯片内置的I2C模块提供了符合工业标准的两线串行制接口,可用于MCU和外部I2C设备的通讯。I2C总线使用两条串行线:串行数据线SDA和串行时钟
    的头像 发表于 12-21 21:39 1583次阅读
    AS32X601的<b class='flag-5'>I2C</b>模块操作EEPROM详解

    OPTIGA™ TPM SLB 9673 RaspberryPi®评估板:I2C TPM HAT的深度解析

    。英飞凌的OPTIGA™ TPM SLB 9673系列产品就是其中的佼佼者。今天,我们就来详细探讨一下基于该芯片的RaspberryPi®评估板——I2C TPM HAT。 文件下载: Infineon
    的头像 发表于 12-18 15:00 1006次阅读

    ISO164x热插拔双向I2C隔离器:特性、应用与设计要点

    景中的理想选择。今天,我们就来深入探讨一下这款隔离器的相关内容。 文件下载: iso1640.pdf 、ISO164x的特性亮点 1. 可靠的隔离式双向I2C通信 ISO164x支持可靠的隔离式双向
    的头像 发表于 12-17 14:15 966次阅读

    I2C死锁的问题

    在实际使用过程中,I2C比较容易出现的问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA
    发表于 12-04 06:00

    深入剖析I2C协议

    I2C是由Philips开发的简单的双向两线总线,在深入浅出理解SPI协议中,我们区分了单工,半双工,全双工协议数据流向的区别,根据特征,I2C协议属于半双工协议(即同时刻,数据单向流动)。此外
    的头像 发表于 08-21 15:10 3881次阅读
    深入剖析<b class='flag-5'>I2C</b>协议

    第十六章 文浅谈I2C

    本篇文章介绍了W55MH32的I2C总线,其由SDA和SCL构成,具设备寻址等特点,协议含起始 / 停止信号等。阐述主从模式,介绍了相关例程,用于验证 I2C 通信功能。
    的头像 发表于 05-28 16:07 1613次阅读
    第十六章 <b class='flag-5'>一</b>文浅谈<b class='flag-5'>I2C</b>