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

审核编辑:刘清

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

    关注

    447

    文章

    47802

    浏览量

    409169
  • I2C总线
    +关注

    关注

    8

    文章

    357

    浏览量

    60409
  • SMBus
    +关注

    关注

    0

    文章

    70

    浏览量

    21722
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    16884

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

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

收藏 人收藏

    评论

    相关推荐

    CY7C65211设计了I2C的USB桥接器,USB到I2C桥接器似乎都不起作用是为什么?

    几个月前,我使用芯片CY7C65211设计了 I2C 的 USB 桥接器,最初的 5 用于
    发表于 02-23 08:30

    请问NUC970的I2C的Software Mode怎么使用?

    各位大佬好, 最近在使用NUC970芯片, 使用官方提供的BSP中I2C代码测试, 功能是完全正常的. 查看数据手册, 发现有支持Software Mode I2C, 所以想尝试使用
    发表于 01-17 06:28

    ADUCM320iI2C中断通信,怎么使用DMA实现?

    ADUCM320iI2C中断通信,怎么使用DMA实现,例程I2CSLAVEDMA.C,编译过后,下载到芯片中,通信不正常,有时有响应有时不响应,而且数据会错乱,有没有最新版本的例程可
    发表于 01-11 07:15

    最简单的总线通讯!I2C通讯总线的原理原来这么好懂

    通讯I2C
    安泰仪器维修
    发布于 :2024年01月02日 11:16:31

    ADAU1466是否可以使用I2C通讯的eeprom作为Selfboot存储器?

    您好: 在我们项目中,需要使用ADAU1466的SELFBOOT功能,并且需要ADAU1466控制额外的I2C附件。ADAU1466的SPI和I2C接口为复用,只能二选。所以想问一下
    发表于 11-29 07:11

    请问NUC970的I2C的Software Mode怎么使用?

    各位大佬好, 最近在使用NUC970芯片, 使用官方提供的BSP中I2C代码测试, 功能是完全正常的. 查看数据手册, 发现有支持Software Mode I2C, 所以想尝试使用
    发表于 09-05 07:31

    全面掌握面试必考题I2C协议 - 第12节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:07:43

    全面掌握面试必考题I2C协议 - 第11节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:06:53

    全面掌握面试必考题I2C协议 - 第10节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:06:03

    全面掌握面试必考题I2C协议 - 第6节

    I2C协议
    充八万
    发布于 :2023年09月01日 19:02:42

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第7节 #硬声创作季

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:07:44

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第3节 #硬声创作季

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:04:23

    80 第23.1讲 I2C实验-I2C协议和6U的I2C控制器详解 - 第2

    程序代码I2C协议
    充八万
    发布于 :2023年08月17日 10:03:33

    基于 FPGA 的模拟 I2C协议系统设计

    :基于 FPGA 的模拟 I2C协议设计(中) 基于 FPGA 的 模拟 I2C协议设计() 之前也有相关文章介绍,这里超链接一下,仅供各位大侠参考。源码系列:基于FPGA的 II
    发表于 08-14 18:21

    I2C通信影响串口中断怎么解决?

    使用新唐ML51PCOAE的硬件i2c通信时(发送起始位用语句set_I2C0CON_STA; ),影响串口中断,请高手指导一下
    发表于 06-19 06:30