【发布时间】:2015-06-05 10:47:01
【问题描述】:
我需要为 linux 内核实现 PWM 模块,它应该是高分辨率的(在我的 400MHz ARM cpu 上会超过 10kHz) 谁能给我一个建议,我可以为此目的使用什么? 内核版本为 2.6.28.9。 设备没有硬件 PWM 驱动程序。 现在我使用一个内核定时器,其频率由 CONFIG_HZ 设置。这个配置的默认值是100HZ,但对我来说太小了,最大值是4kHZ,但这仍然不够
【问题讨论】:
-
什么是“pwm”?那是哪个CPU?它有HPET吗? en.wikipedia.org/wiki/High_Precision_Event_Timer
-
如果您想要更精确的时序,请使用硬件 PWM。软件会有太多的偏差、抖动等。即使付出巨大的努力,它也远非好(更不用说完美)。
-
脉宽调制en.wikipedia.org/wiki/Pulse-width_modulation我有基于ARM926EJ-S的CPU(NXPs ASC8848A),它没有HPET
-
@AaronDigulla:问题提到了 ARM 400MHz。 HPET 是特定于 x86 的(尽管新的 ARM 有类似的东西)。
-
许多 ARm 设备都包含带 PWM 输出的硬件定时器,但 ASC8848A 是为视频编码应用而设计的。它目前缺少数据表或手册,但可用信息并不表明它具有硬件 PWM。
标签: c linux linux-kernel embedded pwm