找回密码
 立即注册
搜索
热搜: RA8889 RA8876 RA8875
查看: 274|回复: 8

請教一下RA8871M透過DMA去SFI_0抓取圖檔來顯示的問題

[复制链接]

1

主题

4

回帖

37

积分

新手上路

积分
37
发表于 2026-2-23 15:37:06 | 显示全部楼层 |阅读模式
各位先進,小弟使用的是RA8871M,從API的DEMO CODE來看只有void DMA_24bit(unsigned char SCS, unsigned char Clk, unsigned short X1, unsigned short Y1, unsigned short X_W, unsigned short Y_H, unsigned short P_W, unsigned long Addr)和void DMA_32bit(unsigned char SCS, unsigned char Clk, unsigned short X1, unsigned short Y1, unsigned short X_W, unsigned short Y_H, unsigned short P_W, unsigned long Addr),兩種格式可用,若圖檔是16bit或18bit有解嗎?

70

主题

46

回帖

1496

积分

管理员

积分
1496
QQ
发表于 2026-2-23 20:58:04 | 显示全部楼层
您好!DMA_24bit/32bit是针对FLASH的寻址区分,大于128Mb需要使用32bit来寻址。

图片是16bpp或者18bpp,与液晶屏初始化设置相关,二者若不一致会导致图片显示异常。

1

主题

4

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2026-3-2 11:43:24 | 显示全部楼层
BWSU 发表于 2026-2-23 20:58
您好!DMA_24bit/32bit是针对FLASH的寻址区分,大于128Mb需要使用32bit来寻址。

图片是16bpp或者18bpp,与 ...

萬分感謝,已可透過DMA_24bit抓取圖檔來顯示,再請教RA8871M有無與RA8875的"SACS_MODE REG [E0h] Serial Flash/ROM Direct Access Mode"可以直接讀取SPI Flash資料的功能,因Flash內的圖檔有版本管理的需求存在,謝謝。

70

主题

46

回帖

1496

积分

管理员

积分
1496
QQ
发表于 2026-3-2 18:56:24 | 显示全部楼层
akira 发表于 2026-3-2 11:43
萬分感謝,已可透過DMA_24bit抓取圖檔來顯示,再請教RA8871M有無與RA8875的"SACS_MODE REG [E0h] Serial  ...


读写FLASH参考代码:
RA8889_RW_FLASH.7z (2.88 KB, 下载次数: 1)

1

主题

4

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2026-3-4 16:43:32 | 显示全部楼层
BWSU 发表于 2026-3-2 18:56
读写FLASH参考代码:

感謝,已可以任意讀取外掛在RA8871M上的Flash指定位址的內容了。
但目前有試到一個功能,因需旋轉LCM面板來符合機構設計,但"REG[02h] Memory Access Control Register (MACR)"中的"Host Write Memory Direction (Only for Graphic Mode)"其Rotate right 90˚與 Horizontal flip都沒作用,不知道要如何使其生效,再請協助處理,謝謝。

70

主题

46

回帖

1496

积分

管理员

积分
1496
QQ
发表于 2026-3-6 22:42:46 | 显示全部楼层
akira 发表于 2026-3-4 16:43
感謝,已可以任意讀取外掛在RA8871M上的Flash指定位址的內容了。
但目前有試到一個功能,因需旋轉LCM面板 ...


请下载原厂提供的API,在其基础上运行以下代码:
  1. VSCAN_B_to_T();        //[12h] bit3=1液晶扫描方向:从下至上。后续xy坐标、宽高全部需要互换。
  2.         MemWrite_Top_Down_Left_Right();                //向右旋转90度+水平镜像
  3.         MPU8_16bpp_Memory_Write (250,28,128,128,gImage_16);                //xy坐标对调,第1个参数为y,第2个参数为x

  4.         Font_90_degree();        //字库旋转90°
  5.         Select_Font_Height_WxN_HxN_ChromaKey_Alignment(24,1,1,1,0);
  6.         Print_Internal_Font_String(20,20,200,440,color65k_black,0x07e0, "The panel resolution is 800x480. It used here as 480 x800 by left-rotation in 90 degree.");
复制代码


不过旋转在RA8871上不太好用,有些功能受限,测试评估看看。
如果不满足,再考虑RA8889, 又或者是RA6809,这两颗可4个方向旋转。

1

主题

4

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2026-3-10 13:10:28 | 显示全部楼层
BWSU 发表于 2026-3-6 22:42
请下载原厂提供的API,在其基础上运行以下代码:

還是不行,VSCAN_B_to_T();有作用,但MemWrite_Top_Down_Left_Right();這個指令根本沒有作用,
不過還是謝謝您的協助,還好LCM的驅動IC有內建旋轉的功能,基本上問題算是解決了,
只是要用RA8871的話,旋轉的功能算是擺設了

1

主题

4

回帖

37

积分

新手上路

积分
37
 楼主| 发表于 2026-3-18 14:42:35 | 显示全部楼层
不好意思,再請教一下,RA8871原廠API的DMA_24bit()函式中,結尾處會有
Check_Busy_SFI_DMA(); //DMA Busy Check
這段等待DMA結束的判斷在,但在載入240*320*24bit的圖片下,竟然要等超過50ms,
這樣一來主程式不就都不用跑了,有辦法改寫嗎?謝謝。

9

主题

9

回帖

873

积分

版主

积分
873
发表于 2026-3-19 17:20:22 | 显示全部楼层
akira 发表于 2026-3-18 14:42
不好意思,再請教一下,RA8871原廠API的DMA_24bit()函式中,結尾處會有
Check_Busy_SFI_DMA(); //DMA Busy  ...

你好!Check_Busy_SFI_DMA(); //DMA Busy Check DMA查忙,判断DMA图片是否结束。(載入240*320*24bit的圖片下,竟然要等超過50ms)DMA320x240图片应该没有这么慢;有两种调试思路 1.改变flash的读写模式[B7h]:bit3:0 寄存器设定,代码在Set_Serial_Flash_IF();函数中,以及更改DMA_24bit()函数时钟Clk,来提高flash数据的传输效率以减少DMA的时间。2.实测屏蔽Check_Busy_SFI_DMA(); 显示单张图片没有问题,连续显示多张只会显示第一张图片,屏蔽Check_Busy_SFI_DMA后也可以用延时替代,程序不会被卡死。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Lcdvision Technology ( 苏ICP备10203891号 )

GMT+8, 2026-4-5 14:28 , Processed in 0.088379 second(s), 26 queries .

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