禁止转载
调试错误更正:
几个错误,文章中错误没有更正,以示警告!!!
几个错误,文章中错误没有更正,以示警告!!!
几个错误,文章中错误没有更正,以示警告!!!
1、CH567 43脚和23脚VCORE,不应当连接到VCC3.3上,下面的电路中连接到一起了,错误!
2、WR信号线不需要进行反向!实际电路去掉了CH443K
分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线分割线
CH567驱动HX8369并口显示屏:
选型:
CH567有高速USB,有并口,可以拿来做屏幕应用,同时LQFP48用来DIY比较好焊接。
实际同样的应用CH569也可以做,带USB3.0,甚至更合适,只是QFN焊接麻烦点。
实际上也考虑过CH32V307VCT6,也有高速USB,用FSMC驱屏幕也是很好的,只是LQFP100有些大了,不适合小型化。
CH567资料: 官网手册
屏幕:
一般MCU可以直接驱动的并口屏幕都是8080并口、SPI、IIC。这次驱动的是一个800*480分辨率的IPS屏幕。HX8369支持8bit/16bit并口驱动,另外有WR\RD\CS/CD控制线。
CH567本身带有8bit数据线,15bit地址线的并口,实际用来驱动16bit并口屏需要把8根地址线当作数据线来用,即CH567的PB0-PB7作为并口低8位,CH567的PA0-PA7作为高8位来使用。
CH567最小系统+屏幕连线:
40pin屏幕接口连线:
存在的问题:
CH567并口时序:
驱动芯片时序:
可以看到WR有效边沿正好反了,那就存在需要将WR线进行反向的问题。
这里使用了CH443K来做逻辑反相器:
开关响应速度也足够
引脚选择问题:
连接完16根并口数据线、WR、RD之后,剩下的IO还需要分配RESET、背光控制、片选、CD控制(命令/数据),这里自己踩了坑。
一开始将屏幕的reset引脚配置在了CH567的PA8上,不巧的是,CH567并口只能够配置成以下几种地址线模式,PA8正好是地址线8,这样引脚就被并口占用,而不能作为GPIO使用了。(发现这个问题的时候PCB已经做了。。。。不过好在PA8引脚边上的PA10引脚悬空没有用到,到时候直接把PA8引脚掰断,飞线过来好了。。。。上面原理图已经改过来了)
LED驱动:
超纲,直接抄的开源大佬的图:立创开源: FanHuaCloud
感谢大佬
代码实现:
因为WR上加了反相器,所以时序上就不用担心了,写数据代码一句话:
伪代码,16位变量低8位作为数据,高8位放到地址上。当然在此之前需要配置好CD线的电平,指示当前是数据还是命令。
屏幕显示方式是通过USB接收像素数据,然后并口再送到屏幕上。为了让并口速度尽可能的快,采用了空间换速度的方式,写指令直接CTRL C CTRL V了几百次,这样能够直接刷定长数据,而不用做循环判断,很快,但比较浪费代码空间。
在最高主频下,实测并口速度:
1.937毫秒在WR线上产生了30720个有效边沿。换算下来实际带宽达到了30MByte/s.这个速度很棒了。800*480分辨率,RGB565编码的图像,理论能够做到41Hz刷新率了,实际上除去USB、数据边界判断的开销,实际做个30Hz的屏幕刷新率不成问题。(USB 480Mbps传输带宽比这个高,瓶颈在并口这边)。
骚操作:
CH567手册最大主频120MHz,系统时钟是480M的PLL分频而来,芯片分频系数最小可以写2,测试发现分频写3,160M的系统主频也能运行。抓并口时序:
时间缩短到1.46884毫秒了,快了24%。。。。。。。。
反正我不做产品,非标用法也没多大问题。。。。。用下来好像也挺稳定,超频爽啊~~
最终PCB尺寸做到比较小的,还行~还是那句话,自己做着玩,4层板也无所谓,加上嘉立创。