华芯微特开发论坛

 找回密码
 立即注册
搜索
热搜: SWM341 资料
查看: 356|回复: 1

SWM341系列应用(SFC和SPI应用)

[复制链接]

32

主题

76

帖子

9万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
90429
发表于 2024-1-2 15:59:07 | 显示全部楼层 |阅读模式
SWM341系列 SFCSPI应用
6.1、针对具有QSPI功能SPI-NORFLASH,如需要使用4线数据为(4BIT方式进行读操作,需要将QE位使能再开启4BIT都操作指令进行读取。
如没有开启QE,则4BIT进行读取数据会有误,导致程序会判断SPI-NORFLASH的错误ID格式错误等。     部分型号NORFLSHQE是出厂固定为1,不能进行写0操作,具体要查看SPI-NORFLASH数据手册。  

6.2、外挂SpiFlash 最大只能支持 128Mbit

6.3SFC写操作与TFTLCD显示的影响               
如果有调用SFC,可以通过cnt=4 多次调用SFC_write解决。要写入的数据必须全部在同一页内,即addr/256 == (addr+(cnt-1)*4)/256    cnt > 4 时,LCD_DCLK 输出可能出现间断(|__||__||__| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|__||__||__|),这种情况下有些屏幕会显示异常,遇
到这种情况,可通过以 cnt = 4 多次调用 SFC_Write() 解决
图片222.png

6.4、外挂SpiFlash FRTOS的应用               
       : 德兰明海(SWM34SRE),客户开发过程中遇到切换页面过程中,素材丢失的情况。经过检查LVGL的设置都没有问题,后续定位发现问题出在RTOS上面。
分析与解决: 客户在保存内容到spiflash过程中,直接开关总中断,导致RTOS运行异常。客户使用的FreeRTOS(2022 Version),进入临界区时只是关闭低优先级中断,但是不关闭总中断。如果关闭总中断,会把systick_handler给打断,把RTOS的任务调度处理过程都紊乱了,所以UI进程也不正常。后续让客户保存内容到spiflash过程中,进入临界区,不要开关总中断。

6.5ROM flash擦除应用              
         : 中有科技(SWM34SRE)需要提高usb  userboot的升级速度,
分析与解决:建议可以使用块擦除的方式( SFC_EraseEx(adr, SFC_CMD_ERASE_BLOCK64KB, 0) while(SFC_FlashBusy()) __NOP(); )代替原本的扇区擦除。

6.6、不同品牌SpiFlash的应用            
      象:客户肇庆金鹏(SWM34SRET6)使用其自己的PCBA以及我们DEMO板测试博雅(BY25Q128ESSIG)和普冉的SPI-Flash时读写异常。
分析&解决:使用最近的Lib库中SimplSFC例程分别测试两种SPI-Flash,测试均正常,且兼容原有的flm算法文件;后续比对客户使用的Lib库与我们使用的不一致,不是最新的库,更新后读写正常。总结:(1)需及时更新最新的Lib库;(2)经测试,博雅(BY25Q128ESSIG)和普冉的SPI-Flash均可以通用我们现有的flm算法文件。

6.7SFC接口写入数据到SpiFlash应用     
      象:技术支持安居宝(SWM34SRET6)智能家具报警显示面板,客户目前用SFC写写入扇区非常慢需要200ms,由于客户需要显示和写入同时进行,sfc只能一个字一个字写入,写入效率很低,200ms完成扇区写入。
分析与解决:目前建议客户使用lib库的GPIO模拟时序写入SFC,这个可以做到40ms写入扇区,达到客户可以接受的范围。

6.8、SWM341全系列硬件 SPI 模块 2 分频不可用  
现     : 客户深圳和而泰小家电,在破壁机项目上使用SWM341CET7,因客户希望提高 LCD 刷新帧率,目前瓶颈在 SPI 0 读取速率上,且外挂的 SPI Nor Flash 为 64MB,大于 SFC 最大支持的 16MB 容量上限,无法使用 SFC 外设。在系统主频为 150M 下,尝试提高硬件 SPI0 2 分频,测试读&写数据异常,改为 4 分频后,读写正常。

分析及解决:在对 PCB 整改外围走线优化波形后,测试 SWM341 硬件 SPI 速率最高极限值如下,
&写:主频 150M 下 4 分频(37.5M),主频 80M 下 2 分频(40M);
仅写:主频 144M 下 2 分频(72M);
高于以上频率均不能保证量产一致性,且降低主频至 80M 以下才能使用 2 分频读写,这对全局性能 响过大,无法用于实际,故本问题无法解决。

                   屏驱动显示效果图:
图片223.png

6.94字节对齐读取引起显示的问题      
      象:客户需要让自己的二合一仪表显示中文,由于SDRAM内部空间不足,需要在FLASH里面加载字库,用到内部SRAM做临时缓存区,缓存字体后在输出。但是客户的程序里面一直显示有问题。
分析与解决:经过排查发现,由于SFC需要4字节32bit访问对齐,需要把字库存放4字节对齐,否则SRAM临时缓存会取值不对。

6.104字节对齐对显示速度的影响     
      象:测试SFC模块过程中(SWM341CE/RE),使用SWM341 SPI屏驱动过程中遇到一些问题,发现目前由于341CE没有SDRAM不具备解码能力,需要把图片存储在SPIFLASH里并且是通过bitmap的数据格式,并以bin文件的方式存储。SWM341CESPIFLASH是以SFC方式连接,自然是以SFC的方式去访问flash。在调试屏驱动过程中发现以下问题:在刷新320*170大小的图片过程中:刷新120张图片花费2.8秒,如下图1所示,是用SFC_Read进行双缓存读取。      
          图片224.png 1
后续通过内部DMA传输SFCSRAM里缓存,改成改成下图的方式进行搬运,刷新120张图片花费13秒。速度反而变慢了
分析与解决:需要注意的是由于SFC本身是32bitWORD)对齐访问的,DMA设置也需要设置成WORD对齐 ,否则DMA访问的速度会变慢,后续测试过120张图片仅搬运的话,Byte对齐,HalfWord对齐  ,Word对齐,分别花费10秒,3.6秒,700毫秒。如果后续应用有SFC读取到SRAM的应用的话,需要DMA搬运注意WORD对齐         
         图片225.png 图片226.png         
         图片227.png
目前的测试条件下,150Mhz 320*170 SPI屏 最高刷新帧率61~62fps(裸机),符合客户要求,问题解决

6.11341- SPI屏幕ST7789-240x240-lvgl显示字符串   
问      题:客户把lvgl内部字体映射到外部flash中,但显示字符串却是乱码。
分析和解决:客户把字体储存到外部flash中,显示的字符串是乱码,储存到内部flash显示正常,原因是SFC是四字节读写对齐,可能导致字体偏移地址有误。  

6.12、电源干扰引起SpiFlasH读取错误的问题      
      象:豪毅兴,客户反馈用上位机API播放开机视频后会出现卡死,或者出现读取不到UI.bin文件;
分析与解决:排查发现其两路升压电路导致的,把两路升压电路的电容放到MOS管前,或者拆除掉4.7uf的电容,问题解决;有问题的升压电路图如下:
                               图片228.png

回复

使用道具 举报

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2024-3-4 17:50:35 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|华芯微特开发论坛

GMT+8, 2024-5-20 20:16 , Processed in 0.035780 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表