在Linux中,如何测量/采样GPIO脉冲宽度



我的主板运行的是ARM Linux。它将有一个GPIO连接到输入信号,该信号对具有不同脉冲宽度但相同周期的信息进行编码。假设周期为10ms,2ms(高(脉冲将出现0,5ms脉冲将出现1。

在Linux、用户空间或内核空间中,如何对这种连续脉宽偏移信号进行采样?如果是裸MCU,我知道我可以使用具有脉宽测量模式的硬件时钟。但我没有找到Linux的相关信息。

请给我一些建议。

没有人能给你一个具体答案的原因是,你所要求的是特定于所讨论的CPU。如果硬件支持,这是可以做到的…例如,我使用的德州仪器Jacinto6处理器有M4内核,可以像微控制器一样运行代码,其中一个M4内核可以配置为处理映射GPIO上的IRQ。然后,当检测到不同的脉冲宽度时,您可以将信息发送到运行同一芯片的A15内核的Linux。NXP iMX系列处理器也有硬件支持,但它不像Ti芯片那样位于专用核心上。对于iMX6,您可以设置一个GPIO来生成IRQ,并将delta时间(来自时钟树(推入内存映射寄存器。在这种情况下,由于硬件差异,读取内存映射寄存器需要与基于Ti的解决方案不同的Linux驱动程序。希望这有助于阐明为什么你不会简单地在Linux内核/驱动程序中找到已经存在的功能。。。。

最新更新