[Letux-kernel] [PATCH] ARM: dts: omap3-gta04: reduce panel backlight PWM frequency to 83Hz

Matthijs van Duin matthijsvanduin at gmail.com
Sat Sep 10 10:20:16 CEST 2016


On 10 September 2016 at 09:08, H. Nikolaus Schaller <hns at goldelico.com> wrote:
> Reducing the PWM frequency is good by itself since it should not be unnecessarily
> fast and helps to make the PWM to "average current" translation more linear.
>
> The non-linear effect is that the PWM controlled DC/DC converter reacts almost
> immediately to a 1->0 control transition but needs some time (ca. 0.5ms) to recover
> on a 0->1 transition.

DT already allows for compensation of many non-linearities by
specifying the duty cycle of each brightness increment.  Though, as
you observed, there's one limitation it cannot fix here:

> If we just fix the PWM generator to output a steady 1 signal at 100%, we have a
> very significant change if we switch to 99%, depending on PWM frequency.

Specifically the next-to-brightest step (assuming 0.5ms off-time) would be:
75%  @ 500 Hz
90%  @ 200 Hz
95%  @ 100 Hz
96%  @  83 Hz

Note that perceptually the distance to 100% might be smaller due to
non-linear response of the eye. That's my experience with pwm
controlled leds anyway, which may or may not apply to backlights
(though with my laptop's backlight I never really have use for the
distinct steps at the brightest end while those at the darkest end
seem disproportionally large).

> This effect becomes smaller if the PWM frequency is reduced and 83Hz seems more
> reasonable (although still a little arbitrary) than the current value.

While 500Hz is perhaps a bit high, 83Hz actually seems very low to me.
Searching a bit around yielded 175 Hz as common frequency for CCFL
backlights and higher for LED backlights (source:
http://www.tftcentral.co.uk/articles/pulse_width_modulation.htm).

(I may be reacting a bit twitchy here due to having encountered dimmed
LED lighting that was flickering obnoxiously for me while noone else
noticed this.)

Matthijs


More information about the Letux-kernel mailing list