回复
Highlighted
发帖数: 56
注册日期: ‎07-19-2016
已接受解答

EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

   请问一下我们现在使用的是EFM8UB10F8G-C-QFN20这个型号的MCU,在使用时,我们设计需要将SMBus(I2C)总线设置为slave设备,选择的引脚P1.2(SMBus0_SDA)及引脚P2.0(SMBus0_SCL),如下图所示,现在发现同样的程序,其它将SMBus(I2C)总线配置为其它引脚(例如P0.0(SDA)与P0.1(SCL),P0.2(SDA)与P0.3(SCL))可以,但是选择引脚P1.2(SMBus0_SDA)及引脚P2.0(SMBus0_SCL)时就通信不了,主机使用的是用I/O口模拟的I2C:
  1.请问我们设置引脚P1.2(SMBus0_SDA)及引脚P2.0(SMBus0_SCL)为SMBus(I2C)总线引脚是否可行?
   2.如果可行,在设置这个两个引时与其它引脚有何不同,为什么同样的程序这样配置不通信成功?
    3.能否给一个你们通信的例程给我调试一下,谢谢!QQ图片20170414172644.jpg
发帖数: 323
注册日期: ‎09-05-2013

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

[ 已编辑 ]

对于UB1 QFN20封装,SMBus SDA、SCL信号可以通过Crossbar分配到 P1.2 和 P2.0,请参照UB1 Reference Manual 第85页图11.4 Crossbar功能映射图。

 

SDA/SCL总线需要外接上拉电阻。

 

需要注意的是,因P2.0同时也是C2D,与C2编程接口的数据线复用。若是同时连接Debug在线调试会相互影响。

 

另外,为了避免外部电路对C2 Debug接口的影响,可以参考AN124采用隔离电阻。

发帖数: 56
注册日期: ‎07-19-2016

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

你好!

1.从我提供的图片,可以看到SMBus SDA、SCL信号已经通Crossbar分配到 P1.2 和 P2.0上了

2.SDA/SCL总线也外接上拉电阻。

3.我们知道P2.0同时也是C2D,与C2编程接口的数据线复用。并现在的问题是同样的程序,只是将SMBus SDA、SCL信号通Crossbar分别配到的引脚不同,分配到其它引脚上通信没有问题,但是分配到P1.2 和 P2.0引脚上就有问题,并且程序都是烧录到MCU后,拔掉Debug线后观察程序现象的。

4.现在就是想知道这个问题应该如何解决!是否根据AN124采用隔离电阻就可以解决?还是不加也是可以通信上,只是可能会受影响?

发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

我看到我们salesforce有个ticket是同样的这个问题,我想是我们的disti帮你们建了一个ticket。

很不幸我们这里没有库存这个封装的芯片,如果可能,你们能否和disti沟通,帮忙寄几个芯片给我们来重现该问题。如果我们这边想拿到这个封装的芯片需要一些时间。让我们通过salesforces的ticket来跟踪这个问题。

WeiguoLu
发帖数: 56
注册日期: ‎07-19-2016

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

芯片,我们这边也可以提供,但是请们还需要底板以及将芯片焊好,这时时间需要多久可以给出结论呢?我可以带着我们程序及板子去贵司联合调试该问题,这看这样可好?

发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

[ 已编辑 ]

@EFM8

带板子过来也没问题。

你们可以给我们芯片,我们有socket可以在上面做一些简单的测试。你们也可以先把你们的测试代码发上来,我先熟悉熟悉。如果不方便这里上传代码,也可以上传到那个salesforce的ticket上。

WeiguoLu
发帖数: 56
注册日期: ‎07-19-2016

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

你们地址及联系方可以提供一下吗?可以沟通一下你们什么时候有时间,我就过去一起调试一下的!

发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

具体联系方式,建议和我们的disti沟通,或者在salesforce的ticket 00138264上获取。我不知道那个ticket是不是你建的,但是burnon有帮建那个ticket,你们能否和建那个ticket的工程师沟通一下。

 

WeiguoLu
发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

@EFM8

不好意思,和我们设计部门沟通,确认C2D (P2.0) 是不受crossbar控制的。所以你看到的现象是正常的。也就是说C2D不能和其他外设来共享该pin。

谢谢你的发现,我们已经建了ticket来跟踪该问题,并希望以后能在下一版的RM中对此有所描述。

 

WeiguoLu
发帖数: 56
注册日期: ‎07-19-2016

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

好的,谢谢!现在我们已经更换引脚了!

现在还有一个问题我想请教一下,我之前有咨询一下芯片代理FAE,他说P2.0(C2D)引脚如果上拉3.3V的话,由此可能引起的C2口破坏或被芯片封锁,后续批量生产遇见这个问题将难以处理。

请如果P2.0(C2D)引脚上拉3.3V的话会出现此问题吗?并且针对手册上说的,P2.0(C2D)引脚是可以输出3.3V的电平,怎么3.3V上拉还会有影响呢?

发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

[ 已编辑 ]

We only suggest to put a pullup resistor on C2CK pin.

http://community.silabs.com/t5/8-bit-MCU-Knowledge-Base/Pull-Up-Resistor-For-RST/ta-p/110561

 

But I did not heard of the issue that C2 will be broken when adding a pullup on C2D. But please follow the suggestion from FAE, the C2 should work without external pull-up on C2D.

 

My views are my own and do not necessarily represent the views of Silicon Labs

WeiguoLu
发帖数: 56
注册日期: ‎07-19-2016

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

好吧!

1.如果我们将这个引脚设置成Push_pull输出,并且在应用中这个脚也只作输出,在这样的情况,再在外部接一个100K电脚上拉到3.3V,这样可以否?

2.并且如果将这个引脚作为输入的话,检测是否没有问题呢?

P.jpg

发帖数: 1,728
注册日期: ‎10-14-2014

回复: EFM8UB10F8G-C-QFN20 MCU SMBus(I2C)总线通信异常

I corrected the previous post. "I did not heard of any issue to use the external pullup resistor on C2D".

 

if you use the GPIO as pushpull (output), usually you don't need the external pullup circuit. But I don't think the external pullup will damage the GPIO with a 100k ohm resistor.

 

If you use the GPIO as open drain or digital input, there is an internal weak pullup you could enabled. there is no problem for the MCU to detect the input level. an external pullup will help to support higher speed (rising time of the open drain mode). for example if you use the open drain mode for the SMBus/I2C, we suggest you use an external pull up because sometimes the internal pullup is a little weak.

 

Maybe below KB helps:

http://community.silabs.com/t5/Moved-KB-Posts/Value-of-Weak-Pull-up-Resistors/ta-p/113833

http://community.silabs.com/t5/Interface-Knowledge-Base/Calculating-the-I2C-Clock-Speed/ta-p/114045

 

 

 

WeiguoLu