This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320C6416t GPIO问题

Other Parts Discussed in Thread: TMS320C6416T

各位专家好,我在使用TMS320C6416t这款DSP时遇到一个问题。

我们使用6416作为接收机处理器,完成定位收星功能。将6416的GP2配置为GPIO功能,并配置为输入,用以接收另一芯片输出的高电平或低电平,根据该电平来进行一个状态检测。正常工作时,该电平信号常为高电平或低电平,没有出现问题。但在一个偶然的环境下,输出芯片输出的电平在高电平和低电平间频繁切换,此时6416工作出现异常,无法完成收星定位。

排查故障时,在软件中屏蔽掉读取GP2信号的程序,6416仍然工作不正常。将该输出信号与6416的GP2断开后,6416工作正常。将该输出信号跳接至6416的GP1,进行同样配置,6416工作也是正常。

通过查阅器件手册和GPIO文档,未能找到合理的解释。想请问各位专家该6416芯片的GP2是否有特别的配置,引起上述现象。

望各位专家解答,谢谢!

  • 检查一下布线GP2是否跟DSP的一些关键信号走的一起,比如时钟,SDRAM等。还有这个GP2快时有多快啊?用示波器量一下这个信号质量怎么样。

  • 感谢您的回复,示波器检测出信号不停切换时如下图所示

    另外关于您说的布线问题,我们将GP2不使能,或者配置为GPIO输出时,上述信号仍存在,但不会出现故障。并且GP1的布线跟GP2布线是平行且很接近,也与其他关键信号相距较远,换成GP1时也未出问题,所以觉得很奇怪。

  • 从波形上看,这个信号并不快,最少>40ms的间隔了,不过因为量程有点粗,信号质量不能完全判定好不好。

    没查到哪有反映过这个问题。你希望我怎么帮助你?或者说能确认复现你的问题的话怎么处理?不能的话怎么处理?

  • 您好,我们这段时间又做了进一步排查,目前是怀疑EDMA通道部分出了问题。软件里使用了EDMA的通道10作为触发EDMA事件的通道,正好是GP2管脚所对应的EDMA通道,将通道10换为其他通道,问题就不再出现了。看上去是GP2的硬件触发EDMA和软件里触发通道10的EDMA事件出现了冲突,导致问题发生。

    但是GPIO初始化时,GPHM和GPLM寄存器的GP2对应位都设置为0,应该是屏蔽了GP2的上升沿和下降沿检测,不知为何GP2电平变化时会影响EDMA事件。还想请问下有没有其他设置能屏蔽掉GP2硬件触发EDMA事件。还是说只要GP2作为输入,有电平变化时就会导致EDMA寄存器里对应位变化?

  • GPIO中断分为logic和pass through mode。

  • 感谢您的回复,确实是我们软件人员在程序中使能了GPIO2相关EDMA事件通道,禁用该使能后,问题没有再出现了。