CW32评估板很好用,不是说免费的就是好,而是做工确实很好,接口很多,使用很方便。手头有些mcu和屏,于是就想:做一些适应CW32评估底板的接口板,这样就能通用,说干就干。
一、板子
然后要感谢嘉立创,本月打了两个板:
1、stm32f030&stc8h3k64开发板(二选一,只能用一面)
2、支持3种屏的接口底板
二、问题
板子做好了,想用STM32F030驱动下ST7567,算做测试。但是怎么也调不通,表现是屏幕毫无反应。按理不应该呀,程序也是网上大佬分享验证过的,没道理不行。难道是板子设计有问题,各种怀疑,试了stm32标准库和HAL库,用CW32的原装开发板,但都驱动不了。真头疼了。
调了2天,最后发现原因是Electronic Volume Control设置偏低,导致LCD内部电压不足。
transfer_command(0x2f);//0x2f升压电路,电压管理电路,0x20-0x27为V5电压内部电阻调整设置
transfer_command(0x81);//SET EV 调对比度
transfer_command(0x1f);//0x01-0x3f电量寄存器设置模式
transfer_command(0xa0);//0xa0为Segment正向,0xa1 为Segment反向
transfer_command(0xc8);//0xc0正向扫描,0xc8反射扫描
transfer_command(0xa6);//0xa6正向显示,0xa7反向显示
transfer_command(0xa4);//0xa4正常显示,0xa5全屏点亮
transfer_command(0xf8);//背压比设置
transfer_command(0x10);//0x00-0x01-0x10
transfer_command(0xaf);//0xaf显示器开
这是目前ST7567初始化参数,其中:
transfer_command(0x81);//SET EV 调对比度
transfer_command(0x1f);//0x01-0x3f电量寄存器设置模式
EV设置为0x1f,原来的这个参数设的是0x01
数据手册上寄存器关于EV的描述
为什么要调成1FH,其实也很简单,之前都是用5v驱动,原来设成01H,就有足够的内部电压,这次底板供电是3.3v,这个参数要提高才行,1FH应该是合适的。
三、总结
1、通常都是用网上搜到的代码来驱动LCD,但很少深入研究过代码,不明白原理掉坑了也算正常了。
2、LCD控制电压寄存器要根据输入电压做适当调整。
3、这么个小问题浪费了2天。^-^...............
4、屏幕转接板,就是个最简单的转接板,没有背光PWM控制电路,背光只用了一个限流电阻。大一点的屏幕没有背光,板子上开了四个洞,打算用4个LED1206做背光,这是从新定义板子上学来的。那个小一点的2色屏,板子是1.27mm排母接口,没有安装排母,直接插上到板上了,还没做驱动,不知道联通性怎么样。