基于LPC55S69平台的多媒体触控系统

等风等雨等着你,终于2019恩智浦MCU挑战赛的第一名闪亮登场!他的作品到底有哪些风采?广受专家评委团的青睐!

项目简介

作品《基于LPC55S69平台的多媒体触控系统》,基于LPC55S69主控,使用3.2寸触摸彩屏做为人机交互,旨在让用户通过简单的触摸即可实现对设备的控制,如控制室内的灯光、音乐、空调等设备。该系统充分发挥了LPC55S69的性能,在FreeRTOS系统中,150M主频的双核M33通过主核和协核的相互配合完成系统任务:主核Core0用于处理主逻辑,包括显示图形处理、触摸数据处理、功能逻辑控制等,在图形处理中同时引入PowerQuad加速计算速度;协核Core1用于刷新彩屏,其通过MCU的高速SPI(50M)+DMA方式驱动3.2寸彩屏,240*320的彩屏刷新频率可高达60Hz以上。

下面跟着设计者Jace来看看项目是如何实现的吧!

本系统在发挥LPC55S69高性能的同时,也使用了它的POWER管理功能,以达到性能功耗的平衡。主核在没有事情处理时就会进入睡眠低功耗模式,此时通过中断(FreeRTOS的系统TICK)唤醒。协核在没有事情处理时也进入低功耗模式,其通过主核的通知中断来唤醒。

项目硬件方案说明

本项目主要以LPC55S69开发板为主控MCU,外加电阻触目屏及红外发射管。

项目硬件清单

MCU模块

本模块可以作为最小系统单独使用,主控MCU为大赛主办方NXP提供的LPC55S69。

设置参数

显示模块

本模块采用3.2寸SPI触摸显示屏,板载锂电池充电电路,USB供电和电池切换电路,BLE模组,使用2.5mm音频接口与其他模块连接并通过I2C协议进行通信;同时使用板对板连接器与MCU模块连接;还有一个功能按键。

红外模块

项目所使用到的资源

项目资源分配

MCU自带640KB的Flash和320KB的RAM。MCU上电后先启动的Core0,Core0将Core1的代码从Flash中复制到RAM中,将Core1从RAM启动。将RAM分为3个区域,Ram0 198KB给0使用,Ram1 68KB给Core1使用,rpmsg_sh_mem 6KB预留给双核共享内存。FLASH一共640KB,现在只使用了前608KB。Flash最前面存放.isr_vector,随后是编译到Ram1中的Core1代码,再后面是Core0的代码。

资源分配图

项目软件框架

本机为全触摸机器,所有功能操作都只能通过触摸实现。机器支持左右滑动切换界面,单点打开应用,右滑能出应用,而应用中的操作可以是各式各样的。

软件框图

Core0通过触摸输入、系统事件触发调用GUI实现界面图形的处理,处理完成发送信号给Core1,Core1进入刷屏。

双核通信

双核之间的通信(叫通知可能更贴切)每次只能传输4字节,如Core0通过把uint32_t类型的数据给IRQ1SET寄存器,Core1就会产生中断,在中断里面通过读取IRQ1寄存器就可以获取到Core0传过来的4字节数据。所以如果要更好的使用双核,MailBox要配合共享内存空间使用,才能实现更多功能。

双核通信分配

组装实物图

专家点评

该作品完成度高,充分利用了双核和PowerQuad DSP的优势,增强了整个设计的计算力以实现HMI的控制,LCD 刷屏非常流畅,整个作品易于展示,代码全部开源分享,且创意良好,具有广泛的市场前景。

彩蛋