缺点:
1. 管脚封装最大LQFP64脚,对于外围功能较多的应用需要外部扩展IO口,我的项目中就是由于IO不够,后来扩展了IO芯片,也不知道官方是怎么想的,扩展个100脚的,它不香吗,这样应用的面就更广了,这点真的很窝火。不过,这款芯片的IO的映射功能那是真爽,可以说每个外设都可以映射到每个管脚,不过要注意的是,管脚功能分奇偶分配原则,比如说串口的RXD可以分配到所有奇数编号的引脚PXn上(n=1,3,5,7...),TXD则可以分配到所有偶数编号的引脚PXn(n=0,2,4,6,8...),如果搞反了,就只能改板子了。
2. 内部SDRAM的时钟频率太低,只有四分之一的主频,120MHZ/4 = 30MHZ,基本上驱动个7寸的屏就满带宽了,不过这款芯片的主频可以超频到200MHZ,官方放出的TFT驱动的demo就将主频超频到200MHZ,我实际项目也是用的200MHZ,在2个月的调试的过程中,没有发现什么死机之类的问题。
3. SDRAM只能按照字对齐方式读写,不能半字或者字节方式读写,也是很窝火。真是浪费了这么好的架构。
4. 驱动LCD屏的时候,如果单步调试停止,TFT会停止向SDRAM读写数据,LCD屏会白屏,不过在实际调试的时候,没有太大影响。
5. TFT没有硬件加速单元,而且无法使用DMA传输,这点太窝火了,LittleVGL驱动接口部分,只能使用纯软件打点,占用CPU资源,而且由于只能字访问SDRAM,由于使用的RGB565色彩模式,打点的时候,需要软件判断图形边界,然后做读-改-写的操作,进一步降低了FPS,我将官方的打点函数进行了重写优化,有一定的效果。另外,使用单缓冲刷新时,有比较明显的飘动感和轻微的撕裂感,帧率10帧左右,改成官方的双缓冲方式,还是有飘动感,帧率没有什么变化。并且使用双缓冲是使用纯软件复制的方式。非常耗费CPU资源。后来直接干成了单缓冲方式,有一点撕裂感,但是能接受,关键是可以腾出一块帧显存空间出来,用作它用。另外,相同的硬件配置下,LittleVGL驱动起来没有EMWIN流畅,但是,官方并没有出EMWIN的工程例子,我对EMWIN的底层不是很熟悉,猜测可能是因为SDRAM字访问限制的原因,无法使用EMWIN。 如果有朋友移植到EMWIN,可以在评论区交流交流。
|