找回密码
 立即注册
查看: 1162|回复: 6

关于STC8H4K64TL硬件LED驱动器亮度调节的讨论

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

积分
8388
发表于 2024-1-14 01:35:19 | 显示全部楼层 |阅读模式
3位(8级)亮度一般小产品小家电小玩意是够了,但如果用电位器接ADC来调亮度(为什么会有这么奇葩的应用……),亮度会一档一档的蹦,看起来比较明显

看手册发现LEDCTRL寄存器空了2bit,预分频是160,有个疑问,设计时为何不把LEDDUTY设计成5位呢(32级效果应该很不错了),然后40预分频(32?64?)
刚和姚总讨论了一下,改的话要重新做光罩重新流片了,我这个又不是每月几百K几千K的量,估计不可能改了,仅供讨论
聊天记录:
截图202401140128554654.jpg

截图202401140129256821.jpg

截图202401140130502185.jpg

截图202401140131197276.jpg

截图202401140131559933.jpg

截图202401140132189401.jpg

截图202401140132278611.jpg

截图202401140133222611.jpg

截图202401140134062898.jpg

截图202401140134516922.jpg

DebugLab
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15632
发表于 2024-1-14 08:21:16 | 显示全部楼层
对,犯糊涂了,COM只是提供的电流足够大80mA/40mA, 其实没精准控制 电流,
只是控制COM的电流变弱80mA/40mA,还是没起到再增加精准控制亮度等级的作用

点评

突然想到一种方法,让LEDDUTY在相邻两个值之间快速抖动,就可以扩展亮度的位数了 比如序列11112 11112 11112就等效为1.2,序列11122 11122 11122就等效为1.4 计算了一下,频率还够 我的应用是主频22.1184M,4位带冒  详情 回复 发表于 2024-1-21 22:47
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

积分
8388
发表于 2024-1-21 22:47:21 | 显示全部楼层
神*** 发表于 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数多了就不能这么干了,尤其是共阴共阳同时用
截图202401212225597149.jpg

截图202401212223392023.jpg

截图202401212237074403.jpg

点评

实验成功,但是最低亮度有闪烁,估计是频率没同步,定时器已经设置成自动重载模式了  详情 回复 发表于 2024-1-22 14:15
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-03 00:09:43
已绑定手机

77

主题

4850

回帖

8388

积分

超级版主

DebugLab

积分
8388
发表于 2024-1-22 14:15:18 | 显示全部楼层
Debu*** 发表于 2024-1-21 22:47
突然想到一种方法,让LEDDUTY在相邻两个值之间快速抖动,就可以扩展亮度的位数了
比如序列11112 11112 1 ...

实验成功,但是最低亮度有闪烁,估计是频率没同步,定时器已经设置成自动重载模式了


16:47
又调了调,好像 OK 了

截图202401221814183953.jpg
截图202401221815043592.jpg

DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-05-02 07:32:37

21

主题

564

回帖

2678

积分

金牌会员

积分
2678
发表于 2024-1-24 08:15:47 | 显示全部楼层
感觉很厉害的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:523
  • 最近打卡:2025-05-02 06:09:34
已绑定手机

34

主题

459

回帖

2219

积分

金牌会员

积分
2219
发表于 2024-1-24 16:21:00 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-05-02 08:26:36
已绑定手机

2

主题

67

回帖

606

积分

高级会员

积分
606
发表于 2025-1-13 14:19:42 | 显示全部楼层
这思路太好了,多位LED灯可以控制亮度,如果每个数子的每段 为一个单元,每个单元都可控,思路再打开点,集群式模拟量控制,是否可以实现。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 03:11 , Processed in 0.919179 second(s), 93 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表