哈喽,大家好。
今天这篇博文就跟大家分享一下基于中科蓝讯 BT8958B2 ,通过 PWM 去控制屏幕背光的示例。本文是仿照 SDK 内容另写的程序,大家可以根据使用 IO 口的不同对代码进行修改。
一、原理图连接1. 背光电路连接如下图所示,其中 LCD_BL_PWM 连接 BT8958B2 的 PB0 口,VDDIO_3V3 连接 BT8958B2 的 VDDIO 引脚。
2. LEDA 连接屏幕中的发光二极管的阳极,LEDK 连接阴极。
二、软件配置
1. 背光控制引脚 PB0 IO 口配置
2. 定时器初始化配置
查阅数据手册后,PB0 所用为 PWM0,为定时器3的第2组。下面进行定时器的配置。
2.1 配置 PWM 映射,配置 FUNCMCON2 寄存器的 8-11位。
此处需将 FUNCMCON2 的第8-11 位配置为 0x02,配置为Timer3-G2。
2.2 配置 Timer3 的时钟源,配置 TMR3CON 寄存器的 2-3 位。
默认配置为系统时钟。
2.3 Timer3 计数器先置为0。
2.5 使能 Timer3 计数器,需配置 TMR3CON 寄存器的第 0 位,置为 1。
2.6 配置 TMR3PR 寄存器,配置定时器周期。
例如 TMR3PR = 24000000L/500-1;
Timer period = TMRPR +1 = 48000,系统时钟频率为24M,24M/(48000) = 500HZ, 即周期为0.002S。
具体代码配置如下:
其中 lcd_bl_init(); 为背光控制引脚 PB0 IO 口配置,已在第 1 点中进行了介绍。lcd_bl_level_set(BL_INT_VALUE) 为PWM 占空比的设置,下面会进行介绍。
2.7 配置 TMR3DUTY0 进行 PWM0 占空比的配置。
可根据设置一个周期中高电平或者低电平的时间,配置占空比。
此处通过设置一个周期低电平的时间去配置占空比。2.6 中已将周期Timer period配置为 48000 ,该处屏幕亮度调节将 4800 分为 100 份,进行亮度调节,调节等级由 0 到 100 逐渐变亮。定时器初始化完成后,调用该函数即可控制屏幕亮度。
三、总结
以上就是基于中科蓝讯 BT8958B2 SDK 开发,通过PWM 控制屏幕背光的全部内容,感谢阅读。
四、参考资料
1. 中科蓝讯蓝皮书
2. BT895X DataSheet.pdf
评论