如何使用示波器解决I2C通信开发中遇到的问题

2019-11-15来源: elecfans关键字:示波器  I2C通信  串行总线

I2C总线是PHLIPS公司上世纪80年代推出的一种两线式串行总线,最初为音频、视频设备所开发,如今则多在各种嵌入式系统中用于连接微控制器及其外围设备。


I2C总线仅需采用两根通信线(一根为串行数据线“SDA”,一根为串行时钟线“SCL”),而传输速率在高速模式下可达3.4Mbit/s,并且是多主总线。每一个挂接在I2C总线上的I2C器件均可通过唯一的地址进行访问。


在嵌入式系统开发中应用I2C总线可有效缩减元器件面积、改善抗干扰能力及增强设计的兼容性。当然,在享受其设计便利性的同时,信号的复杂性也将提高系统调试的难度。


本文阐述了在实际开发中所遇到的I2C通信问题及使用示波器分析问题和解决问题的方法。

分析过程中采用了RIGOL公司最新推出的DS6104示波器,其具体特性包括:高达1GHz带宽,足以满足常用标准总线的带宽需求;5GSa/s实时采样率,确保不会遗漏信号细节;每秒18万次的波形捕获率,最大概率捕获感兴趣的信号;标配140M深存储,同时满足总览全局和观察局部的需求;可录制多达18万帧的波形,奇异信号随意回放和分析;提供多种串行触发,RS232、I2C、SPI、CAN、USB等。


问题探讨

项目设计中计划采用Cypress 68013A芯片来实现USB器件功能。68013A是Cypress公司出产的一款高速USB器件,该芯片的参考设计是通过I2C总线读取存储在EEPROM中的固件程序来运行的,如图1所示。

如何使用示波器解决I2C通信开发中遇到的问题

图1:Cypress 68013A与EEPROM连接示意图。

设计中,为进一步减少器件面积、降低功耗,以及便于在后续进行在线升级固件,决定使用DSP来模拟实现EEPROM与68013A之间的通信。同时,通过I2C总线在线下载固件至68013A并运行来完成,如图2所示。


参考68013A数据手册编程后,却发现在通过DSP模拟EEPROM与68013A通信时无法正确下载固件程序,即DSP怎样通过I2C总线下载固件至68013A?

如何使用示波器解决I2C通信开发中遇到的问题

图2:Cypress 68013A与DSP连接示意图。

解决方法

首先,需要确认通信环境无问题,即:总线连接无问题;DSP的I2C通信程序无问题;Cypress 68013A的I2C通信无问题。


经依次验证后发现以上各项均无问题,那么,只可能是在通信过程中发生了错误。但是,在参考手册中却没有找到关于68013A与EEPROM通信的详细描述。为获取两者间在初始通信阶段的详细数据,使用RIGOL公司的DS6104示波器来捕获初始阶段的通信数据。


DS6104示波器具有I2C触发及I2C解码套件,为捕获数据需设置如下:设置DS6104示波器触发方式为“I2C”、触发条件为“启动”;设置触发时钟信源、数据信源及合适的触发电平;打开I2C解码并设置解码阈值;设置示波器为单次触发。设置完毕后,通过监测I2C与EEPROM通信即可捕获全部的通信数据头,图3所示为所得解码数据。

如何使用示波器解决I2C通信开发中遇到的问题

图3:Cypress 68013A与EEPROM I2C初始通信数据。

通过与读入DSP内存的固件数据(图4)对比可知,图中的“0xC2 0x47 。..”及后续数据才是真正的固件数据。因此,导致DSP模拟EEPROM通信失败的原因是从起始数据至固件数据间的I2C通信(后文将称其为握手通信)。使用DS6104的水平时基微调功能将图中波形展开之后,便可更清楚地看到握手通信过程(图5),其描述如下:读地址“0x50”,无数据返回;读地址“0x51”,返回“0xAD”;写地址“0x51”,写两个字节“0x00”。

如何使用示波器解决I2C通信开发中遇到的问题

图4:读入DSP内存的68013A固件程序数据(部分)。

至此,问题得以简化为:怎样在DSP中模拟这部分的握手通信?通过示波器获取可视化握手通信数据以后,则模拟其通信过程仅需以下三步:设置DSP的I2C总线地址为“0x51”,与地址“0x50”不匹配则无返回;在DSP的I2C通信程序中,下载固件时先发送“0xAD”,满足“0x51”地址上读到的第一个数据为“0xAD”;DSP通过I2C下载固件时,可以接收“0x00”但不进行处理,保证握手通信的完整性。


如上所述,在DSP的I2C通信程序中包含此部分握手通信处理后,使用DSP模拟EEPROM与Cypress 68013A便可进行正常通信,并可成功地下载68013A固件。

如何使用示波器解决I2C通信开发中遇到的问题

图5:Cypress 68013A与EEPROM I2C通信数据头展开。

Cypress 68013A支持直接在固件中修改配置字(如图6所示,地址7),从而可在固件下载完毕后配置启动类型。

如何使用示波器解决I2C通信开发中遇到的问题

图6:Cypress 68013A ‘C2 Load’格式。

我们按照图7所示的Cypress文档提供的寄存器配置格式,配置固件为启动时断开USB连接,并将I2C时钟设置为400KHz(将地址7数据修改为“0x41”)。

如何使用示波器解决I2C通信开发中遇到的问题

图7:Cypress 68013A固件配置字格式。

同样,在下载固件时可以通过使用DS6104来监测I2C的通信数据,并且可以明显看到时钟频率的变化,如图8所示。

如何使用示波器解决I2C通信开发中遇到的问题

图8:固件配置字为“0x41”时的I2C通信数据频率变化。

至此,我们通过采用RIGOL推出的DS6104数字示波器,以可视化的方式实现了DSP模拟EEPROM与Cypress 68013A通信和下载固件的功能。同时,在固件下载过程中,我们观测到在固件中配置的I2C通信频率可即时生效。


在实际项目中,我们还使用I2C作为DSP与68013A间的常规通信通路。显然,在后续调试中,DS6104数字示波器提供的串行总线触发及解码也将成为我们优先选择的调试手段。


本文小结

I2C总线在嵌入式系统中得到了广泛应用,在实际开发中不免碰到缺少文档资料的情况,此时,如本文所述采用示波器调试则不失为一种快捷、有效的方法。


嵌入式系统中应用了越来越多的总线,其开发和调试难度也在相应提高。RIGOL推出的DS6000系列示波器以其领先的指标、创新的技术及提供的多种总线触发及解码套件,可有效降低嵌入式总线调试难度,并极大提高调试效率。


关键字:示波器  I2C通信  串行总线 编辑:什么鱼 引用地址:http://news.2689mr.com/Test_and_measurement/ic480063.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:双踪示波器的测量方法
下一篇:示波器的发展过程及如何选择合适的示波器详细说明

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

解析示波器使用的三重境界
一次跟群友聊天,提及示波器,大家都认为示波器很重要,毕竟它是观察波形的窗口。我当时提了一句,说自己尽可能不用示波器,但鼓励同事用示波器。网友很好奇我为什么这么说,有条件怎么不用呢?以下为我的解释:       示波器是波形的窗口,当有各种异常的时候,可以很容易从波形观察,所以我鼓励我同事使用,以此提高效率。然而若长期依赖于示波器,就会丧失推理分析能力,我特别看重自身的推理分析能力,因为当有一些疑难杂症出现的时候,示波器也不见得好用,我举了两个例子。1、冥王星的发现,先是通过理论计算出位置,再用望远镜观察,最后通过多张图片比对才发现的。因冥王星太远太小太暗,若没有从理论上计算出大概的位置,再用
发表于 2020-01-20
解析示波器使用的三重境界
示波器电流探头工作原理
电流探头测量电子在导线内运动时生成的磁场。在电流探头的量程规范内,导线周围的磁通场被转换成线性电压输出,可以在示波器或其它测量仪器上显示和分析线性电压输出。通过把导线完全绕在探头磁芯上(分芯和实芯)上,可以精确地测量磁通场。分芯探头非常方便,它们可以夹在导线上,而不必断开连接。实芯电流变压器(ct)是为永久安装或半永久安装而设计的,它们体积小,提供了非常高的频响,可以测量超快速、低振幅电流脉冲和ac信号。电流探头在测试直流和低频交流时的工作原理当电流钳闭合,把一通有电流的导体围在中心时,响应地会出现一个磁场。这些磁场使霍尔传感器内的电子发生偏转,在霍尔传感器的输出产生一个电动势。电流探头根据这个电动势产生一个反向(补偿)电流送至
发表于 2020-01-20
示波器电流探头工作原理
数字示波器介绍_数字示波器参数意义
数字示波器是设计、制造和维修电子设备不可或缺的工具。随着科技及市场需求的快速发展,工程师们需要最好的工具,迅速准确地解决面临的测量挑战。作为工程师的眼睛,数字示波器在迎接当前棘手的测量挑战中至关重要。数字示波器因具有波形触发、存储、显示、测量、波形数据分析处理等独特优点,其使用日益普及。由于数字示波器与模拟示波器之间存在较大的性能差异,如果使用不当,会产生较大的测量误差,从而影响测试任务。本文为大家详细介绍数字示波器参数意义。数字示波器的带宽带宽是示波器最重要的指标之一。模拟示波器的带宽是一个固定的值,而数字示波器的带宽有模拟带宽和数字实时带宽两种。数字示波器对重复信号采用顺序采样或随机采样技术所能达到的最高带宽为示波器的数字实时
发表于 2020-01-20
数字示波器介绍_数字示波器参数意义
示波器输入阻抗选1MΩ还是50Ω的详细解析
熟悉示波器的朋友可能都会有过这样的困惑:输入阻抗有1MΩ和50Ω两种,我们到底该如何选择呢?一、传输线想要讲清楚50Ω的由来,我们需要先讲一下传输线。电信号实际上是以电磁波的形式在传输线中传播的。当传输线的尺寸不再远小于电磁波波长时,就不得不考虑这个“波”的特性了。下图是将一个窄脉冲施加到100m左右的终端短路的网线上时,示波器在信号源端测量到的图片。可以在其上明显看出有一个入射波和一个反射波。当入射波和反射波叠加在一起回发生什么呢,你的方波信号信号可能就会成这样。如何阻止信号反射呢?就像光要在水面才发生反射一样,电信号也是在其传输介质发生改变的时候才会发生反射,为了避免传输线上发生反射,就出现了均匀传输线,如PCB微带线,同轴线
发表于 2020-01-20
示波器输入阻抗选1MΩ还是50Ω的详细解析
示波器使用技巧,就应该这么用!
示波器是一种用途十分广泛的电子测量仪器。它能把肉眼看不见的电信号变换成看得见的图象,便于人们研究各种电现象的变化过程。 示波器利用狭窄的、由高速电子组成的电子束,打在涂有荧光物质的屏面上,就可产生细小的光点。在被测信号的作用下,电子束就好像一支笔的笔尖,可以在屏面上描绘出被测信号的瞬时值的变化曲线。利用示波器能观察各种不同信号幅度随时间变化的波形曲线,还可以用它测试各种不同的电量,如电压、电流、频率、相位差、调幅度等等。 下面就简单说下示波器使用小技巧: 1.通用示波器通过调节亮度和聚焦旋钮使光点直径最小以使波形清晰,减小测试误差;不要使光点停留在一点不动,否则电子束轰击一点宜在荧光屏上形成暗斑,损坏
发表于 2020-01-19
示波器使用技巧,就应该这么用!
详谈中外示波器发展的差距有多大
示波器作为电测行业最基本的综合性仪器,设计和制造他所涉及的领域也十分广泛,从半导体到特种材料,从机加工到电子设计无所不涉及。这就需要强大完善的工业体系作为支撑。但是苏联早期无不具有这一切?为什么苏联没有做起来呢?其实认为市场也是很关键的,仅依靠国家力量,可能能在短时间内集中攻关力量解决一个难题,随后投入其他难题的处理中。有些事情并不能持续的深入研究,唯有市场的持续需求不断刺激技术进步,就像战争那样,技术才可能有巨大的飞跃。另外,一些其他技术的进步,比如电子计算机,也与仪器的发展相辅而成,这也带来了思维的全面改观。涉及到示波器相关的具体技术,从60年代以前,一般来说我国和外国的差距不是特别的大,因为大家都用电子管,这个东西无非对工
发表于 2020-01-19
详谈中外示波器发展的差距有多大
小广播
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 2689mr.com, Inc. All rights reserved
真人百家乐赠送彩金 送彩金棋牌平台大全 正规官网送彩金 2019送彩金500的网站大白菜 彩票大赢家走势图 hg平台送彩金 博彩送彩金赢钱 澳客彩票 博彩公司免费送彩金 网上百家乐送彩金