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跨层传参失误有关,后面再写~

审核编辑:刘清

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

    关注

    462

    文章

    53534

    浏览量

    459018
  • I2C总线
    +关注

    关注

    8

    文章

    411

    浏览量

    62996
  • SMBus
    +关注

    关注

    1

    文章

    129

    浏览量

    23037
  • SCL
    SCL
    +关注

    关注

    1

    文章

    244

    浏览量

    17934

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入剖析I2C协议

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

    第十六章 文浅谈I2C

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

    I2C总线复用

    帝晶智慧屏I2C总线复用
    的头像 发表于 03-11 17:20 1853次阅读

    I2C总线通信原理 如何设计I2C总线电路

    I2C总线通信原理 I2C(Inter-Integrated Circuit)总线是种用于集成电路之间进行通信的串行通信协议。它最早由飞利浦公司(现被恩智浦电子收购)于1982年推出,是
    的头像 发表于 01-31 15:01 1878次阅读

    I2C总线的优缺点分析

    设备之间的通信,这大大减少了所需的引脚数量,降低了硬件成本。此外,由于其简单性,I2C总线也易于实现和维护。 2. 多主机和多从机支持 I2C总线支持多个主机和多个从机,这意味着在同一个
    的头像 发表于 01-17 15:50 1763次阅读

    I2C总线与Arduino的接口示例

    在现代电子设计中,I2C总线因其简单性和灵活性而广受欢迎。它允许多个设备共享同通信线路,从而节省空间和成本。Arduino,作为多功能的微控制器平台,自然也支持
    的头像 发表于 01-17 15:34 2359次阅读

    I2C总线的工作模式介绍

    两根线组成:数据线(SDA)和时钟线(SCL)。数据线负责传输数据,而时钟线则用于同步数据传输。I2C总线是全双工的,意味着数据可以在两方向上传输。它支持多个主设备和从设备,但在同时刻只能有
    的头像 发表于 01-17 15:32 1635次阅读

    I2C总线协议详细解析

    1. I2C总线简介 I2C总线由Philips Semiconductor(现为NXP Semiconductors)在1980年代初期开发。它是种多主机总线,允许多个设备共享同
    的头像 发表于 01-17 15:22 1570次阅读

    I2C总线故障排除技巧

    I2C总线是种广泛使用的串行通信协议,它允许多个设备在两条线上(数据线SDA和时钟线SCL)进行通信。由于其简单性和灵活性,I2C总线在嵌入式系统中非常流行。然而,当I2C总线出现问
    的头像 发表于 01-17 15:20 3859次阅读

    I2C总线与单片机的连接

    组成:数据线(SDA)和时钟线(SCL)。SDA负责数据的传输,而SCL则用于同步数据传输。I2C协议支持多主机和多从机的通信,每个设备都有的地址。通信过程中,主机负责生成时钟
    的头像 发表于 01-17 15:18 1966次阅读

    I2C总线设备地址设置方法

    通常是7位或10位的数字,用于标识总线上的每个设备。在7位寻址模式,地址范围是0x00到0x7F,而在10位寻址模式,地址范围是0x000到0x3FF。
    的头像 发表于 01-17 15:17 6954次阅读

    I2C总线应用实例分析

    I2C总线使用两条线进行通信:数据线(SDA)和时钟线(SCL)。这种双线制设计使得I2C总线能够在多个设备之间共享,而不需要为每个设备单独布线。 应用实例:温湿度传感器 假设我们正在设计
    的头像 发表于 01-17 15:09 1242次阅读

    I2C总线与SPI总线的比较

    于低速通信。它只需要两根线:数据线(SDA)和时钟线(SCL),这使得I2C非常适合于节省引脚的应用。 特点 多主机支持 :多个微控制器可以共享同I2C总线。 多从机支持 :多个从设备可以连接到同
    的头像 发表于 01-17 15:08 1714次阅读

    I2C总线上拉电阻阻值如何确定?

    导读I2C总线在产品设计中被广泛应用,尽管其结构简单,但经常发生上拉电阻设计不合理的问题。本文将对I2C上拉电阻的选择进行简要分析。根信号线上,通过电阻连接
    的头像 发表于 12-27 11:34 2394次阅读
    <b class='flag-5'>I2C</b>总线上拉电阻阻值如何确定?

    一个I2C总线,能带多少片相同的ADS1115芯片

    请问:同一个I2C总线,能带多少片相同的ADS1115芯片,谢谢了!!!那个地址没看明白!!怎么操作??
    发表于 12-27 06:45