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

审核编辑:刘清

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

    关注

    455

    文章

    50730

    浏览量

    423192
  • I2C总线
    +关注

    关注

    8

    文章

    390

    浏览量

    60916
  • SMBus
    +关注

    关注

    0

    文章

    117

    浏览量

    22068
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17057

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

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

收藏 人收藏

    评论

    相关推荐

    RISC V的I2C操作

    system_i2c_0_io_scl_writeEnable = !system_i2c_0_io_scl_write;Interface配置示例I2C寄存器设置在I2C的设置中第
    的头像 发表于 11-01 11:06 197次阅读

    I2C协议的基础知识

    本文从I2C协议的概述开始,描述协议的历史、不同速度模式、物理层和数据帧结构,最后介绍I2C混合电压系统中电平兼容性以及上拉电阻大小计算。
    的头像 发表于 10-22 15:51 487次阅读
    <b class='flag-5'>I2C</b>协议的基础知识

    详解I2C总线与SPI总线的区别

    I2C(Inter-Integrated Circuit)表示集成电路互连,是种用于线路板内部芯片之间通信的总线。
    的头像 发表于 10-16 15:16 3968次阅读
    详解<b class='flag-5'>I2C</b>总线与SPI总线的区别

    了解I2C总线

    电子发烧友网站提供《了解I2C总线.pdf》资料免费下载
    发表于 10-08 11:13 2次下载
    了解<b class='flag-5'>I2C</b>总线

    I2C基本指南

    电子发烧友网站提供《I2C基本指南.pdf》资料免费下载
    发表于 09-10 09:40 0次下载
    <b class='flag-5'>I2C</b>基本指南

    CAN转I2C桥接器

    电子发烧友网站提供《CAN转I2C桥接器.pdf》资料免费下载
    发表于 08-28 11:10 0次下载
    CAN转<b class='flag-5'>I2C</b>桥接器

    简单认识I2C通信协议

    I2C(Inter-Integrated Circuit)通信协议是由飞利浦公司(现为恩智浦半导体)开发的种简单、双向二线制同步串行总线协议。自1982年发布以来,I2C协议因其高效、灵活和易于实现的特点,在电子设备间的数据交
    的头像 发表于 07-25 18:06 1437次阅读

    INA226 i2c读取时显示不支持I2C总线操作怎么解决?

    目前在调试款INA226电压检测芯片,已经连接成功能正常读到设备的芯片ID验证是对的, 但是我在循环里延时秒去读电压的时候出现了读错误
    发表于 07-09 06:37

    I2C接口+高度集成的电源管理芯片PMIC-iML1942

    电源管理芯片 - iML1942是高度集成的电源管理IC为TFT液晶面板。它具有完整的I2C接口来编程各种参数。
    的头像 发表于 07-05 09:27 657次阅读
    <b class='flag-5'>I2C</b>接口+高度集成的电源管理<b class='flag-5'>芯片</b>PMIC-iML1942

    I2C逻辑选型指南

    电子发烧友网站提供《I2C逻辑选型指南.pdf》资料免费下载
    发表于 06-20 16:20 2次下载

    SPI和I2C通信协议:应用与区别

    本文深入解析了SPI和I2C这两种通信协议的特点、工作原理和应用场景。SPI适用于高速数据传输,常用于存储器芯片和显示器驱动等领域;I2C适用于低速控制和传感器数据传输,常用于温度传感器和ADC
    的头像 发表于 04-22 16:45 1806次阅读

    什么是I2C协议 I2C总线的控制逻辑

    在实际使用过程中,I2C比较容易出现的问题就是死锁 ,死锁在I2C中主要表现为:I2C死锁时表现为SCL为高,SDA
    发表于 03-12 09:17 1056次阅读
    什么是<b class='flag-5'>I2C</b>协议 <b class='flag-5'>I2C</b>总线的控制逻辑

    GD32 MCU硬件I2C不可靠不如软件I2C?来看看红枫派开发版的硬件I2C驱动如何做到稳得

    评论中,看到网友对硬件I2C的讨论,硬件I2C Busy找不到原因、软件I2C稳得批。
    的头像 发表于 02-23 09:37 2781次阅读
    GD32 MCU硬件<b class='flag-5'>I2C</b>不可靠不如软件<b class='flag-5'>I2C</b>?来看看红枫派开发版的硬件<b class='flag-5'>I2C</b>驱动如何做到稳得<b class='flag-5'>一</b>批

    I2C总线的基本用法 I2C总线硬件问题汇总

    般情况i2c 设备焊接没什么问题,按照设备手册步步来,基本上就顺风顺水能够用起来。如果这么
    的头像 发表于 12-26 09:33 1312次阅读
    <b class='flag-5'>I2C</b>总线的基本用法 <b class='flag-5'>I2C</b>总线硬件问题汇总

    关于I2C总线的6问题分析

    I2C总线上的上拉电阻范围是多少? 回答: 总线电容是走线部分、连接部分、管脚部分的电容的总和。总线电容限制了上拉电阻(Rp) 的最大值,因为I2C规定了上升时间(SDA和SCL信号的上升时间)。
    发表于 12-25 09:19 1681次阅读