取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Visitor
Visitor
237 次查看
注册日期: ‎06-29-2019

新人求助:关于AXI IIC的问题

本人用UltraZed-EG的开发板,最近在做Freertos中IIC通讯的任务,用的是PL中AXI IIC。开发板作为Master,和另外一块作为Slave的msp432进行通讯,目前遇到几个问题(在确认Slave端没有问题后得出的):

1.根据官方提供的example,是否必要在每一条消息发送前使用XIic_Start(),发送完成后使用XIic_Stop(),在接收消息时再使用XIic_Start(),接收完成后使用XIic_Stop();

2.在通讯中我设置了超时机制,当我调了XIic_MasterRecv()而Slave没有回复我的时候,我会触发超时机制调用XIic_Reset(), 但是目前看来XIic_Reset()没有达到想要的效果;

3.目前在试验当错误发生时的处理机制,Master故意发一条错误的消息给Slave,Slave接收到后不作任何处理(不回复任何消息给Master),依据上述2.中的机制,Master会进行XIic_Reset,接着Master发送一条正确的消息给Slave时,正确的消息也得不到回复,发送程序同时也会走入timeout;

0 项奖励
1 条回复1
Moderator
Moderator
141 次查看
注册日期: ‎03-27-2013

回复: 新人求助:关于AXI IIC的问题

Hi @kimifancy ,

 

对于这种低速总线异常问题的调试,一般就是建议使用示波器,抓好波形。参照spec确认是master还是slave先违反的协议,然后再查找违反协议的波形产生的原因。

另外如果中间有其他设备参与(电压转换/MUX)等,建议在靠近master侧和slave侧都测试下,如果波形不同,那就考虑中间电路的影响。

如果没有示波器或者测试不方便,那么建议使用ILA选择合适的采样时钟,也能在FPGA获得波形,定位问题,不过这样的话可能会损失一些波形的细节。

 

Best Regards,
Jason
-----------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if the information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
-----------------------------------------------------------------------------------------------
0 项奖励