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.

[参考译文] TCA9539-Q1:TCA9539-Q1:高频率输入信号会导致中断驱动器错误

Guru**** 2925550 points

Other Parts Discussed in Thread: TCA9539-Q1

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1652669/tca9539-q1-tca9539-q1-high-frenquency-input-signal-causes-interrupt-driver-error

器件型号: TCA9539-Q1

尊敬的专家:

我们正在开发基于 TDA4APE 的定制板、并使用 TCA9539-Q1 进行 IO 扩展。 IO 扩展芯片由 Linux 驱动程序处理、我们使用的 SDK 版本是 SDK11.01。

TCA9539-Q1 有一个中断引脚可用作外部输入信号变化的反馈。 但在实际使用中、我们遇到了一个问题。  

外部输入信号的变化非常频繁、周期约为 7ms、如下面的波形图或 gpiomon 命令的结果所示。

DSOBMP00.BMP

e1c3b69c-248b-4c05-9ff7-156e754aa4dd.png

工作一段时间后、内核驱动程序会报告错误。 有关错误信息、请参阅下图。

56b7116b-4442-4a28-8953-65bbb041a22f.png

之后、相应的中断计数停止增加、通过 gpiomon 命令观察到的信号变化频率远低于实际频率。  

6af679eb-e510-4e3f-92cd-2050bdc9e3d8.png

我想知道这种内核错误的原因是什么,为什么 gpiomon 报告了一个低得多的信号变化频率发生后? 它是否与外部输入信号变化的极高频率有关? 此芯片和相应的内核驱动程序在这方面是否有任何限制?

您可能会在下面找到我附加的 dts 配置。

0a6a8302-0365-4c4c-a3f5-2ef73d7aad6c.png

此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mian:

    我将把您转接至 Jacinto 团队、以获得有关您正在使用的 SDK 的帮助。  

    此致、

    Tyler

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    实际的错误信息位于顶部:“IRQ 306: nobody care(IRQ 306:无人关心)“。 这意味着您已将该信号配置为发出中断、但实际上没有驱动器处理该中断。

    中断的用途是什么? 是否有一些驱动程序应该处理它、即使 gpiomon 未运行?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    输入是周期性反馈信号、我们想监测其周期和导通周期。 这就是我们使用中断的原因。 一个自定义的应用程序应该做工作  ,但它还没有准备好,所以我们使用 gpiomon 作为一个测试。

    我还发现,如果我 持续运行 gpiomon 内核不再报告错误。  

    据我所知、此中断由 IO 扩展芯片的驱动程序处理、并且 gpiomon 或其他应用程序只从内核驱动程序接收数据。 那么、它实际上并不是这样工作的?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mian:

    看起来内核代码使用 note_interrupt、当看到正在触发但未处理的 IRQ 时、它会禁用它。

    由于您能够使用用户空间应用程序 gpiomon 来监控该 GPIO、这意味着内核空间未使用该 GPIO 和中断。  这 可能会在未处理的 IRQ 计数达到阈值后触发“无人关心“错误日志。

    此致、

    Takuma