如何解决linux中的imx8mm SPI传输时间
我正在使用 imx8m-mini 和 linux 内核 4.19.42 进行嵌入式项目。我们的设备从外部处理器获得中断,此时我们开始 256kB 的 SPI 传输(linux 是运行在 16MHz 的 SPI master)。我们编写了自己的内核驱动程序并且传输工作正常。问题是传输这个大约需要 1 秒(大约需要 170 毫秒)。我们在逻辑分析仪上看到的是 SPI 时钟中有很长的随机间隙。奇怪的是,如果我们开始移动鼠标(使用触摸屏)然后传输时间正常化,我们总是得到大约 170 毫秒。一旦我们停止移动鼠标传输时间就会再次增加。我会假设如果我们开始产生大量中断,我们将获得更长的传输时间,但事实恰恰相反。我首先考虑了电源管理和频率缩放,所以我禁用了所有功能,将处理器速度锁定到 1.8Ghz,它仍然是一样的。如果我们不理会系统,我们会得到大约 600 毫秒-1 秒的时间,一旦我们开始使用某些外部设备产生中断,传输时间就会减少。
有没有人解释一下为什么我们会出现这种奇怪的行为?
一些图片
蓝色是CS,紫色是SPI时钟,黄色是MISO上的数据
传输大约需要 160 毫秒
传输耗时 600 毫秒
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。