0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

测评分享 | 150fps !HPM6750 LCDC 刷屏毫无压力

先楫半导体HPMicro 2022-08-05 09:54 次阅读


本文摘自先楫开发者@RCSN测评内容,分享了HPM6750 如何将 LCDC 刷屏功能发挥到极致的精彩内容,一起来看看吧

--------------- 以下为测评内容 ---------------

HPM6750 这个 LCDC 外设功能比较完善丰富,而且SDK的底层接口比较完整,基本可以无需接触寄存器直接看接口定义即可。

除了软件 SDK 支持到位之外,LCDC 硬件外设作为显示,2M SRAM 或者DRAM 外设作为显存,进行高帧率的刷屏;另外借助高主频 CPU 或者 JPEG 硬解进行相关多媒体解码,极大地方便了一些多媒体相关的开发需要。

HPM6750 的时钟源来源于PLL4CLK0(即594MHz),分频系数可以自由配置,范围为1~256 分频 。由此可以得到的像素时钟频率范围很宽,这可以满足几乎所有 LCD 的时序要求。

0a4b8840-1376-11ed-9ade-dac502259ad0.png

先看效果:


HPM6750EVKmini 刚好板载 SD 卡座,直接可以读取SD卡内的 RGB 数据文件,然后读取每帧RGB565数据会直接推给LCDC的显存进行刷新,这很好地验证了HPM6750 LCDC 外设刷屏性能。

那怎么提取RGB数据呢?楼主比较喜欢用ffmpeg进行转换,可以使用mp4文件转换为指定分辨率的RGB数据文件。当前楼主使用的是800*480分辨率的RGB屏幕,转换命令如下:

0a62c028-1376-11ed-9ade-dac502259ad0.png

紧接着在之前的移植工程中和官方SDK相关驱动配合起来,分别在SD卡读取耗时,LCDC 数据刷屏耗时,整体播放的耗时(SD卡读耗时+LCDC刷屏耗时)。得出以下数据:

从下图可知,SD卡读取速度一帧大概需要37ms,一帧数据为800*480*2字节,也就是750k,耗时37ms,速度大概20MB/S以上的速度,这个跟理论速度25MB/S已经差不多了。

LCDC刷屏一帧800*480分辨率图片耗时6到7ms,也就是可以达到166fps+

两者耗时加起来,总共刷屏23fps。


后续官方支持了100M时钟的SD外设,SD 读取速度可以到60MB/S 也没有任何问题,刷屏起来60fps+,甚至100fps也是毫无压力的。

0a722482-1376-11ed-9ade-dac502259ad0.png

源代码分享:https://gitee.com/RCSN/hpm6750evkmini_demo/tree/avilib_jpeg_demo/( 本篇内容选自EEWORLD@RCSN )

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4426

    浏览量

    167467
收藏 人收藏

    评论

    相关推荐

    如何做一个hpm6750evk2的bootloader?

    我正在做一个hpm6750evk2的bootloader。设计很简单,boot工程代码只做跳转到1M后的APP工程代码处,APP工程就是做的一个点灯的程序而已,boot、APP工程都是跑
    发表于 10-23 19:01

    HPM6750 Bootloader设计

    我正在做一个hpm6750evk2的bootloader。设计很简单,boot工程代码只做跳转到1M后的APP工程代码处,APP工程就是做的一个点灯的程序而已,boot、APP工程都是跑
    发表于 10-23 18:59

    HPM6750evkmini如何实现可信的执行环境?

    HPM6700的datasheet中的1.2.15 信息安全系统有提到“基于BOOT ROM 的安全启动机制,支持加密启动,支持可信的执行环境”,请问可信的执行环境如何实现的?有相关的Demo或者资料吗?是类似于TFM这样的吗?
    发表于 09-25 09:27

    hpm_manufacturing_tool linux 版本 选择 hidraw 连接等待超时

    _manufacturing_tool_gui linux 版本 选择 hidraw 连接 HPM6750 芯片,能识别到 hidraw 设备,单击连接是提示重启芯片这个时候会等待超时然后软件报错,此时查看 lsusb 设备是检测不到 hpm6750
    发表于 08-07 16:43

    hpm6750烧录出错,无法停止hart 0怎么解决?

    发表于 07-25 07:24

    esp32-s3驱动rgb屏刷屏卡顿,花屏是什么原因?

    esp32-s3驱动rgb屏,根据test_rgb_panel.c,但是刷屏太卡顿了,运行lvgl的demo,fps为0,想请教一下rgb屏参(proch)和esp32-s3的设置,提高刷屏流畅度
    发表于 06-19 06:21

    开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用

    本期开发者:朱彦祖RT-Thread资深工程师,HPM6700/6400元老级开发者及骨灰级用户,先辑生态社区常驻优秀开发者,江湖人称杭州吴彦祖。背景最近在使用先辑HPM6750开发一款运动控制器
    的头像 发表于 06-07 08:17 2834次阅读
    开发者分享 | 基于先楫RT-Thread BSP,使用CLion开发应用

    先楫半导体 hpm_sdk v1.5.0 正式发布

    hpm6750evk hpm6750evk2 hpm6750evkmini hpm6300evk hpm6200evk
    发表于 04-08 11:14

    基于先楫HPM5300 RISC-V内核MCU的HPM5361EVK开发板测评效果(二)

    HPM5361EVK是基于先楫HPM5300系列高性能RISC-V内核MCU的一款开发板。
    的头像 发表于 03-12 10:30 2902次阅读
    基于先楫<b class='flag-5'>HPM</b>5300 RISC-V内核MCU的<b class='flag-5'>HPM</b>5361EVK开发板<b class='flag-5'>测评</b>效果(二)

    HPM5300EVK 优秀测评报告(一)

    上海先楫半导体举办的HPM5361EVK开发板试用活动圆满结束,广大工程师和爱好者们踊跃参与此次试用并提交报告。最终,先楫半导体专家组评选出6名优秀获奖者。感谢媒体平台EEWORLD电子工程世界
    的头像 发表于 03-05 08:19 917次阅读
    <b class='flag-5'>HPM</b>5300EVK 优秀<b class='flag-5'>测评</b>报告(一)

    RTThread的定时器中断时间不准确,会有us级的抖动的原因?

    我在用hpm6750定时器,通过定时器中断周期处理函数,周期1ms,但是定时器的每周期时间都会飘,会有us级的抖动,我的中断回调函数如下: int us_temp[1000]; int us_idx
    发表于 02-23 07:09

    HPM6750体验ADC

    1、新建RTT工程,工程中添加对ADC的驱动: 2、保存工程后,添加测试代码。 3、我们根据原理图上的J10接个,只有PE29是ADC3的输出通道 4、先定义通道、任务 #define ADC_DEV_NAME\"adc3\"/* ADC 设备名称 */ #define ADC_DEV_CHANNEL2/* ADC 通道 */ #define REFER_VOLTAGE 330/* 参考电压 3.3V,数据精度乘以100保留2位小数*/ #define CONVERT_BITS(1 << 16)/* 转换位数为16位 */ 5、添加任务: static void Adc_entry(void* paremeter) { rt_adc_device_t adc_dev; rt_uint32_t value,vol; rt_err_t ret = RT_EOK; adc_dev = (rt_adc_device_t)rt_device_find(ADC_DEV_NAME); if (adc_dev == RT_NULL) { rt_kprintf(\"adc sample run failed! can\'t find %s device!\\\\n\", ADC_DEV_NAME); } /* 使能设备 */ ret = rt_adc_enable(adc_dev, ADC_DEV_CHANNEL); if(ret == RT_EOK) { rt_kprintf(\"adc sample run success!find %s device!\\\\n\", ADC_DEV_NAME); } while(1) { /* 读取采样值 */ value = rt_adc_read(adc_dev, ADC_DEV_CHANNEL); rt_kprintf(\"the value is :%d \\\\n\", value); /* 转换为对应电压值 */ vol = value * REFER_VOLTAGE / CONVERT_BITS; rt_kprintf(\"the voltage is :%d.%02d \\\\n\", vol / 100, vol % 100); rt_thread_delay(500); } } 7、在主函数里启用任务 Adc_thread = rt_thread_create(\"adc1\", Adc_entry, RT_NULL, 512, 16, 20); if(Adc_thread != RT_NULL) rt_thread_startup(Adc_thread); else return -1;
    发表于 02-17 16:00

    解决HPM6750EVK2jlink下载

    拿到HPM6750EVK2,使用jlink下载时,我原来用买jlink配的20转10转接板进行连接,下载程序里一直报不能连接到开发板。经过查找用手册后,找到了问题。 我的jlink的引脚图与之不对
    发表于 02-16 10:30

    先辑HPM6570用Jlink下载程序出错

    as current target interface. J-Link>jtagconf -1 -1 J-Link>exec device=HPM6750xVMx Device
    发表于 02-16 09:32

    Embedded Studio 编译器教程

    最近入手先辑的HPM6750,需要使用Embedded Studio 编译器来做开发,各位推荐一下学习资料。
    发表于 02-04 08:01