2. PIC32图形HMI硬件平台选型
做一块图形HMI,最容易踩的坑不是写不出界面,而是硬件平台一开始就选错了。屏幕点不亮、刷新卡顿、图片加载慢、外扩存储读不出来,这些问题往往在选型阶段就已经埋下。本节把选型拆成一条可推导的链路:先由显示需求算出像素带宽,再由带宽反推图形控制器与PIC32型号,最后确定显示模组接口和外部存储器容量与类型。
一、先算清显示需求:分辨率、色深与帧率
选型的第一输入不是芯片型号,而是显示规格。分辨率决定每帧像素数,色深决定每像素字节数,帧率决定每秒要搬多少数据。三者相乘就是最关键的参数——像素带宽(Pixel Bandwidth)。
以常见的480×272(WQVGA)屏为例,RGB565色深即每像素2字节,60帧/秒时:480×272×2×60 ≈ 15.7 MB/s。若换成800×480(WVGA)屏,同样RGB565、60帧:800×480×2×60 ≈ 46.1 MB/s。若再升到1024×600、RGB888(3字节/像素)、60帧,则达到约110 MB/s。这个数字直接决定了你能否用PIC32内部的LCD控制器直驱,还是必须外挂图形控制器。
需要特别说明:上述数值是按“全屏每帧都重绘”估算的上限。实际HMI界面多为局部刷新,真实平均带宽可能只有上限的20%~40%。但选型必须按最坏情况留余量,否则动画或页面切换时会明显撕裂、掉帧。
二、PIC32型号分档与图形控制器选择
Microchip的PIC32产品线中,与图形HMI相关的主要有三类:
- PIC32MX1/2系列:主频约40~50 MHz,无专用LCD控制器,通常用SPI接口驱动小尺寸屏(如240×320),靠软件刷屏。适合2.4~3.5英寸、低帧率、简单界面的场景。
- PIC32MZ DA系列:内置2D图形控制器(GFX)和DDR2控制器,主频200 MHz,可直接驱动RGB接口TFT,支持多层合成、Alpha混合、硬件光标。适合480×272到1024×600的中高分辨率HMI。
- PIC32MZ EF/EC系列:无内置LCD控制器,但主频高、外设丰富,常配合外部图形控制器(如SSD1963、RA8875)使用,适合中等分辨率、需要灵活接口的场合。
判断规则很简单:若像素带宽需求低于约20 MB/s,可考虑SPI屏+MX系列;若在20~80 MB/s,优先选PIC32MZ DA内置GFX;若超过80 MB/s或需要RGB888,则必须外挂图形控制器或选用更高阶方案。注意,内置GFX的PIC32MZ DA还支持从DDR2直接取帧,CPU负担小,这是它相对外挂控制器的核心优势。
三、显示模组接口的匹配
显示模组接口决定了连接复杂度和可达带宽。SPI接口只需4~6根线,但受限于时钟频率(通常20~50 MHz),实际有效带宽往往只有几MB/s,适合小屏和静态界面。8080并口(8/16位)速率中等,常见于3.5~5英寸屏,需要较多IO。RGB接口是480×272以上屏的主流,需要PCLK、HSYNC、VSYNC、DE和16~24根数据线,必须由带LCD控制器的PIC32MZ DA或外挂控制器驱动。
选屏时要重点核对三件事:一是接口类型是否与所选控制器匹配;二是时序参数(PCLK周期、前后肩、同步脉宽)是否在控制器可配置范围内;三是背光类型和驱动电压,是否需要额外的升压电路。很多“点不亮”的问题其实出在背光或复位时序,而非数据通路。
四、外部存储器的容量与类型
帧缓冲是存储需求的大头。单帧大小 = 宽×高×每像素字节数。800×480、RGB565时单帧768 KB,若做双缓冲防撕裂,需要1.5 MB以上连续内存。PIC32MZ DA内置DDR2控制器,可外接16~64 MB DDR2,既做帧缓冲又做程序数据区,是较优选择。若用PIC32MX,则通常只能靠内部SRAM做小尺寸单缓冲,或外挂SDRAM但带宽受限。
资源存储方面,界面图片、字库、音频等建议放在QSPI Flash或eMMC中。QSPI Flash容量常见4~32 MB,读取速度可达40~80 MB/s,适合存放图片和字库;eMMC容量更大(GB级),适合需要存储日志、多语言资源或视频的场合。选型时按“资源总大小×1.3”估算容量,留出升级余量。
五、一个可复用的选型示例
假设目标是一块5英寸、800×480、RGB565、60 fps的HMI,界面含动画和图片切换。计算像素带宽约46 MB/s,属于20~80 MB/s区间,选PIC32MZ DA内置GFX。显示模组选RGB接口TFT,帧缓冲用外接DDR2(32 MB),资源存QSPI Flash(16 MB)。若预算紧张、帧率可降到30 fps,带宽降至23 MB/s,仍可用PIC32MZ DA,但可考虑降低色深或减少动画区域来进一步压缩需求。