关于STC8H4K64TL硬件LED驱动器亮度调节的讨论
3位(8级)亮度一般小产品小家电小玩意是够了,但如果用电位器接ADC来调亮度(为什么会有这么奇葩的应用……),亮度会一档一档的蹦,看起来比较明显看手册发现LEDCTRL寄存器空了2bit,预分频是160,有个疑问,设计时为何不把LEDDUTY设计成5位呢(32级效果应该很不错了),然后40预分频(32?64?)
刚和姚总讨论了一下,改的话要重新做光罩重新流片了,我这个又不是每月几百K几千K的量,估计不可能改了,仅供讨论
聊天记录:
对,犯糊涂了,COM只是提供的电流足够大80mA/40mA, 其实没精准控制 电流,
只是控制COM的电流变弱80mA/40mA,还是没起到再增加精准控制亮度等级的作用
神农鼎 发表于 2024-1-14 08:21
对,犯糊涂了,COM只是提供的电流足够大80mA/40mA, 其实没精准控制 电流,
只是控制COM的电流变弱80mA/40m ...
突然想到一种方法,让LEDDUTY在相邻两个值之间快速抖动,就可以扩展亮度的位数了
比如序列11112 11112 11112就等效为1.2,序列11122 11122 11122就等效为1.4
计算了一下,频率还够
我的应用是主频22.1184M,4位带冒号共阳米字数码管,5个COM,计算最高扫描频率为3456Hz
为了不让两个频率之间干涉产生闪烁,使用自动重载定时器中断同步到这个频率,在中断里修改LEDDUTY,在相邻两个值之间“反复横跳”
32分频后为108Hz,能扩展出5bit,这样硬件3bit软件5bit,就可以8bit也就是256级调亮度了
这不是0%或100%之间的PWM,中间没有熄灭的状态,而是在两个不同的亮度之间切换,“纹波”更小,更不易看出频闪
还好COM数少,COM数多了就不能这么干了,尤其是共阴共阳同时用
DebugLab 发表于 2024-1-21 22:47
突然想到一种方法,让LEDDUTY在相邻两个值之间快速抖动,就可以扩展亮度的位数了
比如序列11112 11112 1 ...
实验成功,但是最低亮度有闪烁,估计是频率没同步,定时器已经设置成自动重载模式了
16:47
又调了调,好像 OK 了
感觉很厉害的样子 {:4_174:} 这思路太好了,多位LED灯可以控制亮度,如果每个数子的每段 为一个单元,每个单元都可控,思路再打开点,集群式模拟量控制,是否可以实现。
页:
[1]