本帖最后由 qintian0303 于 2021-10-26 14:42 编辑
#申请原创# @21小跑堂 硬件篇 由于项目需要,需设计一款3.5寸液晶屏验证板。 介绍一下3.5寸液晶屏的信息,采用ILI9488芯片,供电电压2.8V,默认MCU16bit通信,分辨率480*320,带电容触摸板,液晶屏采用40pin0.5mmFPC接口。3.5寸液晶屏采用MCU16bit通信,可以说是采用该种通信方式中可以做的最大尺寸了,3.5寸以上的尺寸一般通过RGB方式通信,根据目前手中可用的MCU,可选STM32F103VCT6(或者GD32F303VCT6),选择的原因就是就是100pin的MCU带FSMC(或者EXMC),相比较目前的市场环境,优先选择国产的GD32F303VCT6,原因就是便宜。 GD32F303VCT6的外部存储器控制器EXMC支持8080接口,在其数据手册中可以看到 通过对GD32F303VCT6各引脚的功能查询,首先分配了数据接口的D0~D15。 第一步:划分验证板的主要功能模块: 本验证板主要是为了验证3.5寸液晶屏,故液晶屏显示模块作为本验证板的第一功能首先被确认下来; 其次为实现液晶屏的控制,MCU模块确认为第二部分功能模块,也是整个验证板的核心,包括其最小系统(时钟、复位、下载口等); 接下来是触摸模块,触摸功能的实现是通过下拉中断方式加上IIC标准接口; 当然少不了供电/充电模块,主供电采用3.7V/2600mAh的18650锂电池,选用锂电池肯定少不了充电了,故选择SUM9512充电芯片,充电电流可达1A; 充电接口采用USB接口,同时预留USB通信功能,与预留的串口通信接口共同组成了通信模块; USB或者电池过来的电压是不符合系统需求的,需要通过DC-DC模块转换成满足系统需求的电压,在本验证板中,单片机系统和液晶显示的需求电压都是3.3V,故选择一个LDO基本就可以满足要求; 为了操作方便,增加一个按键模块,实现基本开关机功能,开机通过触碰开关后自锁来实现,同时短按按键可以实现显示界面的的切换,长按关机; 通过一层层的功能分析,验证板的各部分功能模块也就出来了,接下来就是各个模块的具体实现了。 第二步:各功能模块的具体设计: 模块的具体设计要采用对于关联关系要先重后轻,分线进行。例如我们都知道整个系统的运行其实就是MCU各种状态的变化,IO口的状态变化是所有控制的具体体现,故在与MCU的连接中找出比较重要的线先行进行设计,这些引脚也多是对应固定的IO口,例如USB、串口、FSMC(或者EXMC)接口。也可以结合电流的流向来依次设计。 根据第一步的功能模块的划分,我们定义一些标号,例如VCC_USB(USB供电)、BATT(电池供电)、VBAT(整合后的系统电)、VCC_MCU(LDO转化后的系统电)。 接下来进行具体的模块设计: 液晶屏显示模块:液晶屏是通过EXMC的LCD功能实现,把 LCD 当成 SRAM 设备用:首先我们了解下外部 SRAM的连接, 外部 SRAM 的控制一般有: 地址线 (如 A0~A18) 、 数据线 (如 D0~D15) 、 写信号 (WE) 、读信号 (OE) 、 片选信号 (CS) ;TFTLCD的信号包括:RS、D0~D15、WR、RD、CS、RST 和 BL 等,其中真正在操作LCD 的时候需要用到的就只有:RS、D0~D15、WR、 RD 和 CS。 其操作时序和 SRAM的控制完全类似,唯一不同就是 LCD 有 RS 信号,但是没有地址信号。LCD 通过 RS 信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号。 故将RS连接到EXMC的A16上,具体的放到哪个地址线上就需要根据实际走线来变化了,任何一个地址线理论上都是可以的。液晶屏接口线序如下图: 这个是液晶屏的接口,里边有IM0~IM2是选择通信方式的,目前不清楚具体的控制方式就只能用一个笨方法,上下接都预留出来,实际使用时再选择具体的连接。LEDA和LEDK时背光的控制,采用两级背光控制,其中一级为固定背光亮度,一级为可调背光亮度(PWM控制)。再将供电连接上,复位上拉,显示模块就完成,具体效果看下图: 通信模块:通信模块的通信功能主要是USB和串口,均为预留功能用于调试使用,再硬件方面,接口比较简单,其中串口通过查询MCU的技术手册,选用以下两个引脚, USB选用以下引脚, USB是高速信号,要做一定的滤波处理,实际的通信模块如下: 触摸模块:触摸功能的实现实际上就是一个中断就上IIC通信,其中IIC选用引脚 供电/充电模块:充电芯片使用的是SUM9512充电芯片,这也是一个国产芯片,外围电路简洁,成本低,这里面与MCU模块没有直接交集,充电指示直接使用一个LED来完成指示功能: 供电模块实际是需要按键模块和MCU模块参与来实现供电自锁的,需要一个普通的IO口输出就可以了: DC-DC模块:基本就是一个稳压作用,LDO基本有几百毫安的供电能力,基本能满足本测试板的供电。 对于液晶屏的供电通过一个MOS开关来控制,复位不用,出现问题直接断电后重新上电,最利索方式了。
到此各个模块基本上都已经设计完成,通过PCB设计后就可以开始软件设计了。MCU的模块设计基本上就是各个模块设计说对应的引脚相连,对于单片机的最小系统,大家都是非常熟悉的了,就不进行详细的介绍了。 硬件设计思路每个人都有自己最舒服的方式,对一些关键点注意一下就可以了,**自己。大家有什么想法或好的习惯,可以回复一起交流,共同进步!
|