RCSN

个性签名:

1084534438 欢迎交流  [加油,一切皆有可能]

  • 2022-06-26
  • 发表了主题帖: [先楫HPM6750测评之十一]来不及解释了,上车吧。

      周末调了两天AVI解码,以及jpeg解码,以及DAO声音输出,Lcdc显示。。。等等,本想着今天编辑,但是调试个小电视的声音输出搞得头疼。  一般来说,按照SDK得例子跑没啥问题,一旦整合起来,还是不少问题的,包括驱动,性能提升等等,有太多想说的了。  汇个总,由于官方的SDK硬解仍有点不太好用,搭起来很难受,也跑不起来,故楼主使用RGB565视频流播放800*480的视频在RGB屏幕上,SD卡读取RGB文件,按照目前的速度,读可以达到20MB/S,与理论值25MB/S差距不大。SDRAM配合显存显示LCDC,可以达到160fps+。上个效果   [localvideo]e90a0359c0885a511d0b9b0b4f3ab807[/localvideo]    最后来个小电视,读取AVI文件解析,软解jpeg,软解速度240*240,高质量压缩,解码速率90fps+,只是DAO输出有点废时间,用了DMA,官方目前做法有点问题,会导致声音很尖。小电视效果如下:   [localvideo]9ef420160aadf9995b14b5332fc2850e[/localvideo]           

  • 2022-06-24
  • 回复了主题帖: 颁奖:6月22国产芯先楫直播间,拼手速答题赢板卡获奖名单

    本帖最后由 RCSN 于 2022-6-24 20:47 编辑 感谢EE,感谢hpm,信息确认无误,可安排邮寄。

  • 2022-06-14
  • 回复了主题帖: 有奖国产芯直播:先楫800MHz RISC-V MCU高能秀,岂止控4只伺服电机,干货多多

    已报名

  • 2022-06-12
  • 回复了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

      至此自制的多功能扩展板验证成功,接下来就是细玩以及整合了。

  • 回复了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

        SPI显示屏验证。  基于之前是在杜邦线搭建,这次弄到扩展板上,还是需要验证下,烧录之前的代码,也是正常的。  

  • 回复了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

     3、LCDC的RGB屏幕接口验证。   这个使用了官方SDK的lcdc例子,也就是刷新纯色以及条形以及图片,烧录进去看现象,嗯。也是正常。    

  • 回复了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

      2、CANFD验证   CANFD验证可以参考rtthread的例子,参考网口的新建工程,新建个can_example。对于版本为0.5.0的话,需要用户自己初始化下CAN引脚并放入device驱动的config中。              搞完之后,下载烧录,依次改动BOARD_CAN_NAME,逐个验证CAN收发。楼主使用的时候之前做的CANFD转USB小工具,可在线看到CAN的收发。由图可知,CAN分CAN和CANFD发送以及接受,验证也成功了,      

  • 回复了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

      硬件焊接好了,总得验证调试下。这种验证快速方法就是使用官方的例子,好在官方例子也是足够丰富,除了SDK的例子外,另外还有rtthread的例子。    1、LAN8720网口验证  官方SDK并没有对Lan8720这个phy的驱动,问了官方技术,好在rtthread有做了支持,这就很方便了,在rtthread studio新建工程选择Hpm6750evkmini开发板,然后选择demo为eth。即可新建完成     新建完成后,编译烧录,若看到以下信息,则说明板载网口成功了,Ping下指定IP也正常。    

  • 发表了主题帖: [先楫HPM6750测评之十]画一个多功能扩展板以及验证

      HP6750这个芯片的外设很丰富,可玩性以及可摸索的很多。测评的这块板子是hpm6750evkmini,既然是mini肯定板载外设肯定有所减少,还好这个板子是兼容ART-PI的接口,也高达80多个IO可用,对于用户扩展还是很方便的。  鉴于上述的缘由,以及楼主也想体验下LCDC外设的RGB屏幕,以太网,四路CANFD。楼主也有一年多没画板,画了一天稍微搞定了下,去打了个板子。   画板还好,要命的好久没碰烙铁,还是干废了一块板子,想着焊接是需要细心点,耐心点,特别是FPC座子和QFN封装的,经过第一次焊板的失败,嗯,第二次耐心了点,总算焊接好了一块完整的板子。  楼主将之前的SPI触摸显示屏也加入到扩展板,另外还有RGB屏幕,可以做个双显交互。另外还有100M的Lan8720网口,HPM6750支持千兆网,但是楼主没有千兆的PHY芯片。还有四路CANFD。    

  • 2022-06-06
  • 回复了主题帖: [先楫HPM6750测评之八]细说SPI外设遇到的小曲折

    xusiwei1236 发表于 2022-6-5 22:13 楼主,这个小屏是啥驱动IC?
    ST7789V

  • 2022-06-04
  • 发表了主题帖: [先楫HPM6750测评之九]细说性能提升的优化方法

     在之前的coremark跑分贴子上,在flash和ram运行的性能大致一样,主要的原因还是代码空间小于32K,这刚好是cache的空间范围内,hpm6570有32K ICACHE和32K DCACHE,性能上是最高的,所以跑分上,两者并没有太大的差距。 但是,如果代码空间超过了32K,这时候cache总会有用满的时候,也会有不命中的情况下,这时候需要考虑的正是系统资源和编译整合利用。  下面以littlevgl的benchmark跑分例子要进行性能提升的一个验证方法,当然这仅仅作为参考,并不能决定大多数应用场景。 由于上个贴子说明了SPI的一点缺陷,会导致DMA的辅助功能提升并不大,在实际跑lvgl的时候,code放在flash,编译器使用segger,代码缺省优化,也其实没优化的情况下,生成的代码如下:       那么按照这样烧录进去,weightied fps大概是120多左右       这是有点低了,先从lvgl的配置上去优化,lvgl的刷新周期,从30fps最大刷新率改为100fps刷新率,提升上也并不是很大,大概在160左右变动。       那么开O3优化的效果又是如何,再次烧录进去,weightied fps大概是174多左右   当然也试了以下方法,实验过程也忘了拍照,但是其实效果性能并没有提升多少,也就180左右变动 1、改为全尺寸双缓冲,但是其实这种对MCU屏幕有用,对于SPI屏幕上,效果并没多少。 2、改为非全尺寸双缓冲,大概五分之一局部刷新。 3、改为单缓冲局部刷新和单缓冲全尺寸刷新,效果均不大。   于是试着找了官方的技术,放假期间的,技术也在中午跟着我远程调试了下,换为GCC编译器,以及开启了相关优化,优化提升也不明显,大概也是180fps变动。   在调试的过程中,有个idea让楼主茅塞顿开,也就是官方技术建议就是把中断isr放在ram运行,但实际提升也不大。 于是楼主照着这个思路来看下性能有没有增加,也就是把核心的代码加载到ram中运行。好在与hpm6750有足够的RAM来加载,根据手册可知道,两核心有SLV各512K,SRAM一共1M,这是足够加载很多核心代码。     说干就干,在代码上去实现的话,可以使用ATTR_RAMFUNC修饰符放在定义的函数前面,这样编译的时候就会加载到RAM运行。   在实际调试中,单纯几个函数的修饰并不能解决问题。也不可能去手动一个一个修饰,好在与SES可以可视化去操作加载。从ATTR_RAMFUNC,Link文件可看到。 ATTR_RAMFUNC是把函数放在了section的.fast中,     从Link可看到,fast是放在了ILM_SLV的256K空间中。     于是我们可以参考Link,自己在copy个link,把fast放在更大的RAM上,也就是SRAM上   那么ses如何去加载这些函数到RAM上了,跟keil类似 右键点击需要加载的文件夹,选择options   选择code段改为.fast,这样就可以一次搞定加载所有需要到RAM运行的函数。         根据之前的调试性能,再加载核心的放在RAM中运行,烧录代码进去,奇迹的时刻,从122fps提升到286,整整提升了两倍性能,这已经对于SPI这个稍微缺陷IP,足够有帮助了。   于此总结: 1、在从代码优化,编译器优化上,可以提高性能。 2、在1的基础上,随着代码空间的增多,32k cache总有用完的时候,xip flash 也会有所损失性能,最好就是可以把主要的代码加载到RAM中运行,更可提高性能。 3、除了32K cache的加持,内部RAM整合也有足够2M,对于系统而言,是足够性能整合的。

  • 发表了主题帖: [先楫HPM6750测评之八]细说SPI外设遇到的小曲折

     自从上次的贴子调试不通SPI DMA后,一直搁置到现在,官方也刚好发布了V0.11.0版本,这回又重拾了SPI DMA。  很奇怪的是,把官方的SPI DMA移植过来之后,一直都是不成功,也没法触发到DMA完成中断,用分析仪抓了下波形,也是迟迟没有看到时序的发生。  于是照着官方的例子试下,果不其然,官方的demo是可以运行,通过DMA发送数据。看到了官方的例子有对命令和地址寄存器赋值,于是照着搞个temp的地址和命令对着赋值。果不其然,真的发出去了。数据也完全可以对的上。         按以往的开发经验来说,只需要传输数据的话,禁用掉地址段和命令段,以及也不需要去操作地址和命令寄存器。         但实际上,虽然命令段和地址段都禁用了,这CMD和ADDR两个寄存器是需要进行赋值的。         官方的驱动当中,不管禁止不禁止,都会对相应的寄存器进行赋值     现在可以发送了,但是大数据在分包发送的时候,分包大于512以上就是发送不成功。再次查看了寄存器。TRANSCTRL的数据长度是9Bit,也就是只能512长度。这个SPI IP确实有点独特,以往的开发大多是16位以上的,这也就标志着在进行DMA传输时,也只能发送512分包。   验证一下: SPI DMA传输,O3代码优化,大概可以45fps   而SPI poll传输,也是O3代码优化,大概可以41fps    这样看来,确实DMA对于SPI的传输帮助并没那么大,主要受限与SPI的数据寄存器最大只能512. 于此,对于使用HPM6750的SPI DMA外设,需要注意以下两点: 1、SPI DMA一次传输最大512字节,超过需要进行分包 2、使用SPI DMA时候,在配置发送的时候,需要对命令和地址寄存器进行赋值,随便一个值都可以 当然,询问了官方,后续这些问题都会有驱动层进行解决,以后的SDK更新也不会有此类问题暴露给用户操作。  

  • 2022-05-31
  • 回复了主题帖: [先楫HPM6750测评之七]走一个读取SD卡rgb数据文件的类视频播放器

      源码已在仓库更新,分支在以下。空了再细说开发流程,不过在这个分支我也加了使用说明  

  • 发表了主题帖: [先楫HPM6750测评之七]走一个读取SD卡rgb数据文件的类视频播放器

      今晚随机整合了下官方的SD卡代码,整入fatfs,简单搞了个视频播放器,看起来效果相当可以,SPI轮询方式没用DMA,帧率可达29fps+。  [localvideo]e0f64bbf5a3edb42bbe3eb2e63898471[/localvideo]  

  • 2022-05-23
  • 回复了主题帖: [先楫HPM6750测评之六]走一个cdc传输显示的类UVC摄像头

    本帖最后由 RCSN 于 2022-5-25 17:17 编辑  代码已更新在仓库分支 image_sensor_machine_usb上,欢迎for和star 仓库地址  CAM和USB更新如下:  

  • 回复了主题帖: [先楫HPM6750测评之六]走一个cdc传输显示的类UVC摄像头

    本帖最后由 RCSN 于 2022-5-25 17:18 编辑      能确定的是先辑的USB是内置高速PHY的,全速是不可能达到这个速度的。但是这个速度不理想的问题,楼主已经反馈给那边的技术,也感觉是软件匹配tinyusb的问题,硬件上问题基本不大,也会测试验证下。官方也一直在更新SDK,期待不久后,可以达到理想的速度。   官方的技术很耐心而且知识面也多,对于SDK后续更新问题肯定不大,也对产品技术支持肯定也足够到位的。   目前网上高速测速的,并没有看到对于数据的对错比较。所以目前先辑这个来说,对于通信,8M/S保证不丢包,也足够相关场合应用。

  • 回复了主题帖: [先楫HPM6750测评之六]走一个cdc传输显示的类UVC摄像头

    本帖最后由 RCSN 于 2022-5-25 17:03 编辑 二、USB外设验证   CAM调通了之后,由于USB内置高速PHY,速度理论上可以达到50M/S,这对于视频图像类传输完全足够的。刚好楼主项目上搞了个串口摄像头显示工具,也就是读取串口的IMAGE数据判断RGB565数据或者JPEG数据解析然后显示在工具上。   这里有两个问题,需要注意下:   第一个是tinyusb的协议栈的cdc发送接口tud_cdc_n_write,代入的长度bufsize是32位长度,内部实现的丢入fifo的长度反而变成16位长度,也就是说,如果在实际使用的时候,当需要传输的数据超过16位长度的时候,是必须得分包发送的。         第二个是tinyusb的收发接口是使用队列的方式进行异步处理,也就是说收发的时候不能超过fifo的长度,在官方的移植上,FIFO长度为512,也就是说使用发送接口tud_cdc_n_write是不能高于512。         所以总的来说,发送大数据包,都是得进行分包发送,不然肯定会丢包。   说干就干,那么首先也得先验证下USB的传输速度,把摄像头的数据每帧传给cdc。   一开始按照上述的注意点以及相关接口命名,使用了以下方式发送:         通过计算差时得到大概28到35MB/S的速度         这个速度跟理论值50MB/S有些许距离,不过也算可以。   还以为这样就可以完美解决了,但是并没有,通过查看传数据上来的显示图像,是这样的:       按照楼主以往的调试,这种错开的图像,就是丢包的现象了。通过多次传输,确实存在几百到几千的字节丢失。楼主在看了网上的USB高速测速,基本都是管速度不对比对错,这也让我怀疑测试的意义和稳定性。   基于这种怀疑点,楼主再次查看了下tiyusb的接口,发现了tud_cdc_n_write_available这个接口,这个主要是查看发送FIFO是否有空间可以添加新的数据,如果可以那么读取对应的空间,再塞数据进行分包发送。         烧录进去,嗯,图像看起来是不丢包了,而且每帧都能完整收到。         但是看了下终端给出的USB速度,竟然才6M/S,这让楼主觉得很奇怪,于是想着再优化下。         看了半天的tinyusb,实现方式看着也没错,先辑官方的USB寄存器太多,楼主对于USB本身也不熟,对于其驱动也得靠官方维护,回归到前面的两个问题,楼主想到扩大FIFO和EP大小长度,基本能加大到1024,高了照样也是会丢包。         加大1024后,速度提升了2M/S,基本稳定在8.1M/S左右      

  • 发表了主题帖: [先楫HPM6750测评之六]走一个cdc传输显示的类UVC摄像头

      本来是想着摄像头外设和USB外设分开写贴子,但本来就想着搞个摄像头图像数据通过USB传输到PC的上位机进行显示的类UVC摄像头。两者干脆就一起写了。   先来个效果:传输SXGA分辨率,也就是传输1280*1024分辨率,USB传输不丢包。         传输VGA分辨率 640x480,帧率配置差不多,大概10fps左右                          一、CAM摄像头外设验证   验证摄像头外设是否OK,最简单的方法就是使用官方的SDK例子来验证,楼主有是有OV5640,不过放很久了,也不知道好不好使,加之也没有对应的RGB显示屏,于是只能魔改下官方的例子,改为SPI显示屏显示,魔改了之后,修改了对应的分辨率,由于官方的OV5640最小分辨率设置为320*240分辨率。       而楼主楼主的显示屏是280*240分辨率的,前期没注意到分辨率不一样会导致数据重叠显示,故会显示成这样子         于是找官方技术群问下是否demo没验证低分辨率显示问题,经官方验证显示是正常的,于是楼主使用一张静态图320*240的图片显示到楼主的280*240显示屏上,确实是会出现以上的重叠显示,于是想找着OV7725,楼主并没有相关的模组,倒是发现家里有很多便宜的OV2640模组,引脚排列也通用,于是按照以前的移植中间层代码进行移植,先搞个低分辨率的在显示屏上显示,以便验证CAM外设。于是搞了个240x160分辨率显示,按照官方的CAM初始化进行配置,没想到还是显示有问题     要么就是直接全白色不显示,那就是说明IIC通信不正常,由于之前调试触摸的时候,使用同一个IIC,IIC配置不会出错,但是看了分析仪信号,显示IIC传输无应答,后面看了下原理图,发现复位脚直接硬件操作,并没有使用IO,从OV5640的代码看,使用的也是软件复位,后面加入了软件复位后,IIC配置参数一切正常。复位应该由IO软件控制,毕竟淡出靠软件复位也得保证IIC正常的情况下         再次验证,显示直接都是黑色的,按照以前的调试经验,这种无非就是HSYNC,PIXCLK,VSYNC电平极性问题,导致采集的是极性外的信号。         查看了SDK实现和UM手册,看到了对极性的描述       按OV2640的采集极性,应该HSYNC为高,PIXCLK为低,VSYNC为高采集有效数据,但是SDK中并没有对此操作,导致默认的都是为0,故改为以下       建议官方可以通过加入这些极性成员开放给用户使用配置, 因为不同的sensor的极性不一样。     嗯,直接烧录,比个耶。看来正常了。      

  • 2022-05-21
  • 回复了主题帖: 【先楫HPM6750EVKMINI测评】2#OLED模块及LVGL例程测试

    wangerxian 发表于 2022-5-21 11:28 啥屏幕要六百多?LCD屏幕没这么贵吧。
    周立功的屏幕模块

  • 回复了主题帖: 【先楫HPM6750EVKMINI测评】2#OLED模块及LVGL例程测试

    littleshrimp 发表于 2022-5-21 11:30 某宝上的同款屏幕 我也没想到这么贵
    直接买个40p的通用RGB屏幕,也就70多块钱,加个触摸120,自己做个转换板完事了

最近访客

< 1/6 >

统计信息

已有1235人来访过

  • 芯积分:571
  • 好友:30
  • 主题:148
  • 回复:1122
  • 课时:5
  • 资源:6

留言

你需要登录后才可以留言 登录 | 注册


arkcz 2021-11-5
楼主您好,请问 还有多的硬件吗,能转让一套给我吗?
STM32F407简单视觉小板(识别二维码,数据矩阵码,apriltags,圆方形状检测) 
wml 2018-8-29
楼主,利用mjpg-streamer实现摄像头监控,我用其他电脑登录不了这个网址界面,进不去怎么回事
查看全部