我们正在从嵌入式固件过渡到 Linux 开发,并且有一个特定的要求:我们需要在 GPIO 引脚上以 10KHz-500KHz 之间的特定频率生成数字波形(1 和 0 的序列)。我们使用的是STM32MP131芯片。
虽然我们知道可以创建自定义内核驱动程序来实现此目的,但我们很好奇是否有一个预先存在的、更通用的解决方案。数字波形发生器似乎是一种多功能工具,在许多场景中都很有用。
有人知道这样的驱动程序或模块吗?我们可以利用类似的驱动程序作为起点吗?或者也许是在 Linux 上生成数字波形的更有效方法?
我们查看了https://github.com/torvalds/linux/blob/master/drivers但没有找到任何适合我们需求的东西。
根据您的硬件,您可以使用 pwm 驱动程序 + 设备树配置来使用片上 PWM 硬件配置和输出波形。您可以在此处找到主线 PWM 驱动程序列表:https://github.com/torvalds/linux/tree/master/drivers/pwm。一旦您安装了驱动程序、支持硬件和正确的电子设备,您就可以写入 /sys/class/pwm/ 周围的相应文件来配置周期并设置占空比。