Cypress技术william hill官网
直播中

肖晓新

7年用户 172经验值
私信 关注
[问答]

I2C传输期间PSoC5冻结

你好,
我们正在使用3个PSoC在我们的董事会。我们使用CY8C5268AXI-LP047(PSOC5)、CY8C4247AZI M45(PSOC4200 M)和CY8C4245AXI-48(PSoC4200)。
PSoC5通过UsBART连接到PC,并且我使用超级终端发送命令。这些命令包括GPIO写/读。PSOC4200 M(地址:0x0A)和PSoC4200(地址:0x08)通过I2C连接到PSoC5。每当在超级终端中发出GPIO读/写命令时,PSoC5将返回GOPIO写的^ OK或^错误,而对于GPIO读则为低或高。
在硬件中,我们引入了一个作为PSOC5心跳的LED。使用SyBar定时器,LED被设置为每1秒切换一次。这表明PSOC5是完全可操作的。
为了调试我们的板,我做了一个模块化测试,流程如下:
1。PSOC5测试通过I2C发布GPIORAD/WORD命令来读取/写入PSOC5GPIO。USB COM是可以的,结果是意料之中的。
2。PSOC5和PSOC4200 M测试通过I2C发布GPIORAD/WORD命令来读取/写入TopSoC4200 MGPIO。USB COM是可以的。I2C COM是可以的。结果如出一辙。
3、PSOC5、PSOC4200和PSOC4200测试——通过I2C发布/写入命令来读取/写入ToPSoC4200 GPIO。接收到错误。PSOC5悬挂。PSoC5 LED不切换。
I2C代码的I2C奴隶是相同的。我没有预料到PSOC5,PSOC4200 MANDPSoC4200测试的错误。我做了一些调试,并包含了多个PrtoFS在PSoC5 I2C写。见下面的代码摘录:
空I2CyMistRoad编写(UINT8 SLaveAdvor,int i){UbjPrimtf(“rnMr.I2C写尝试…rn”);如果(0U==Read EngMnDead包(SLaveAdvor,I)){UBSPrimTf(“rNMrdIrror I2C尝试成功 rn”);/*从ReS/USPBPRINTF读取响应包(“rNMSTE-RE”)IAD I2C尝试rn);如果(0U==RealStaseBox(SLaveAdvor)){UBSPrimTf(“rnMead读取I2C尝试成功 rn”);Read BuffRealPosig();} {UBSPrimtf(“错误读取缓冲区”));i2c*Cug();UbjCug();} { UBSPrimTf(“rnMrdIrror I2C尝试失败 rn”);}
UINT32写数据包(UINT8 SLaveAdter,INti){
UIT32 32状态=TrimeError;Unt8 Read Err;Char Err= DFEII2C2MistWrraveBuf(SaveAdvor,DFEYI2CBUFW,I,DFEYII2C2MODEIONEXEXEXEXFER);SpIFTF((char *)RES, rn%u错误在DFE主机写rn,WrreEnErr);MP;DFEII2C2MSTATIOWRESCMPLT){}
/*显示传输状态*/IF(0U==(DFEII2I2CYMSTATHELXXFER和DFEII2CMASTSTATUS())){/*检查所有字节是否写入*/IF(DFEII2C2MASTEGETWORTER BUFSIZE()==i){Stase= TrimeSimultMPLT;}否则{UBSPrimtf( rNdfEi2CcMySt.)状态()= %Urn“,dFEII2CYMistStaseUs());
DFEII2CYMistCurrStasuSube();SpRAPTF((CHAR*)RES,  RN写命令状态:%LURN”,状态);
我在超级终端上附加了PSOC5响应的图像。
I2CJMistWrreBuffe()API返回0个错误。
I2C*MistStaseUs()API返回162,因此RealEcMeMangDebug返回0xFF或255。我期望在超级终端打印消息“写命令状态:255”之后,应该立即遵循“MaSTeDrimeI2C尝试失败”,但是PSOC5冻结,而我需要对整个威廉希尔官方网站 进行功率循环以解冻PSoC5。
我已经在这个问题上工作了相当长的一段时间,我仍然陷入困境。谁能指出什么是错的或者我错过了什么?此外,我不能直接提供项目zip文件在william hill官网 ,因为它是不批准我们的客户。然而,我可以通过电子邮件(KStReN.Gayo@ GungGA.com)转发项目的副本给任何可以帮助的人。
谢谢,
K
PSOC4200 I2C书写
27.9 K

回帖(6)

肖晓新

2019-10-22 06:49:37
嗨,鲍伯,
但是,在I2C传输之前,我仍然收到同样的错误。我以前检查了头文件,也没有发现162个值,这使得调试变得有点困难。
我可以尝试使用标准示波器来探测I2C线。我一有照片就上载。
谢谢,
K
举报

肖晓新

2019-10-22 06:59:28
嗨,鲍伯,
我能找到162值来自哪里。显然是来自地址NACK
DFEII2C2MSTROSTATIO=(DFEIII2CYMSTATEYRIXXFER)DFEIII2CYMSTATEYR ErdRAD-NAK;
我已经检查了地址(0x08中的从地址)和DATARATE(100KbPS)。I2C从机和主控器都与设置同步。地址NACK的可能原因是什么?
谢谢,
K
举报

贺服窍

2019-10-22 07:15:06
嗨,鲍伯,
当我准备打开一个william hill官网 条目时,我注意到,你在一个非常类似的情况下打开了一张票。我不知道我的发现和你的问题有没有关系,但这是我的条目。
一个HREF=“http://www. copy.com /pOCS-5-NeNN问题和解决方案/CysReT-I2C-ISR因果-PSoC冻结”& gt;http://www. Cypop.com /william hill官网 /pSOC-5-NeNN问题和解决方案/CysReT-I2C-ISR因果-PSO-COLD & L//A& GT;
Br
拉约什
举报

贺服窍

2019-10-22 07:21:58
看来,链接没有成功添加。这是你在那里找到的URL:
HTTP://www. CyPress .COM/FUMU/PSOC-5-NeNN问题和解决方案/CysRAT-I2C-ISR因果PSO-冻结
举报

更多回帖

发帖
×
20
完善资料,
赚取积分