找回密码
 立即注册
查看: 350|回复: 5

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

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 116 天

    [LV.6]常住居民II

    25

    主题

    304

    回帖

    1053

    积分

    荣誉版主

    Cyber Hamster

    积分
    1053
    发表于 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

    (=・ω・=)
    回复 送花

    使用道具 举报

    该用户从未签到

    552

    主题

    9497

    回帖

    1万

    积分

    管理员

    积分
    14071
    发表于 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
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 116 天

    [LV.6]常住居民II

    25

    主题

    304

    回帖

    1053

    积分

    荣誉版主

    Cyber Hamster

    积分
    1053
     楼主| 发表于 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
    (=・ω・=)
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 116 天

    [LV.6]常住居民II

    25

    主题

    304

    回帖

    1053

    积分

    荣誉版主

    Cyber Hamster

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

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


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

    截图202401221814183953.jpg
    截图202401221815043592.jpg

    (=・ω・=)
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:02
  • 签到天数: 175 天

    [LV.7]常住居民III

    12

    主题

    352

    回帖

    1164

    积分

    金牌会员

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

    使用道具 举报

  • TA的每日心情
    开心
    昨天 04:29
  • 签到天数: 174 天

    [LV.7]常住居民III

    17

    主题

    283

    回帖

    466

    积分

    中级会员

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

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-19 03:03 , Processed in 0.063807 second(s), 53 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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