make pwm output non linear

mrboni:
Do you know of any drivers or pwm generators that are similar to the ws2801? Ie can be daisy chained on the spi bus or similar? I really like how modular and expandable these chips are.

I don't think there's any with more than 8-bit PWM resolution.

Did you try my suggestion of interpolation? Refresh the string as fast as you can and alternate between the two PWM values nearest to the output value you really want.

eg. For PWM value 0.5 alternate between 0 and 1.

It should give you a tiny bit more resolution. You could even try extending it to a cycle of four values so (ie. you can output "0.25" by cycling 1000100010001000 in PWM).

I've done it with a TLC5940 and it works very well. It might not work as well with a WS2801 though because you can't sync the changes to the chip's internal PWM cycle.

OTOH I imagine alternating between 0 and 1 will work and that's enough to give you 64 output steps instead of 32 (8-bit PWM only translates to about 32 linear steps after gamma correction).