干什么活就用什么芯片.不同类型芯片不同使用场合没有可比性,DMA要是真没用,费劲开发他干吗.
64位处理器再厉害,我拿它算个8位单字节运算,同样时钟频率下,跟8位处理器比没有任何优势 网老四 发表于 2025-10-3 11:04
性能和成本是基本对应的
干什么活就用什么芯片.不同类型芯片不同使用场合没有可比性,DMA要是真没用,费劲开 ...
对,也认同。所以我前面也说了,选型很重要。
但不可否认这款芯片的DMA,如果其他功能的DMA一次最多只能256字节,相对来说就显得很鸡肋。
请仔细阅读我的每个文字,由此至终我并没有说dma没用,别曲解我的意思。
我的意思是说引入双缓冲后相关代码的指令消耗时间已经与dma的快速所抵消了,代码也复杂了,所以鸡肋。
另外我感觉32位芯片在处理8位任务,应该只会游刃有余而不会不胜任或吃力,只是性价比低而矣。
任何功能都有适用范围,DMA本身好处,并非简单的认为用了它就会有好处.
如果不是需要让cpu干别的事,那么DMA跟CPU直接访问外设没有任何速度上的区别,
DMA仅仅是在CPU能够充分准备好数据以后,不用傻傻等待数据传输完.
如果CPU忙得连数据准备的工作都完不成,任何处理器都不会从DMA上获得好处.
当然如果 是 DMA-P2P, 外设直接送外设,就不用 CPU准备数据
参照下面管脚兼容的 STC32G12K128的
软件 双缓冲 乒乓 技术,
256字节的 DMA缓冲区,比无限深度的 DMA缓冲区,
只是牺牲 0.26% 的 CPU时间而已。
当然 STC32G12K128的 DMA缓冲区是 8K xdata 深度。
AI8051U的 DMA 缓冲区是 32K xdata 深度,
===还支持 DMA-P2P, 外设直接送外设
https://www.stcaimcu.com/data/download/Datasheet/STC32G.pdf
https://www.stcaimcu.com/data/download/Datasheet/AI8051U.pdf
8051 USB实验箱-32位/8位8051!视频级刷彩屏 TFT320*240@Ai8051U,29.4帧/秒 - DMA支持: QSPI, SPI, I2S, I2C, 4组串口, i8080/MC6800-TFT 国芯人工智能技术交流网站 - AI32位8051交流社区
STC32G144K246-视频级动画效果演示 - 老梁亲测 AI33-ARM 内部平台系列讲座 国芯人工智能技术交流网站 - AI32位8051交流社区
STC32G144K246-LQFP100/64,刷彩屏的能力
120MHz-CPU, 极限 140MHz
53MHz以上的 I/O 输出速度,比 AI8051U的 I/O输出快4倍以上
DAC + OP 已验证
AI8051U, 40MHz,13.5MHz-I/O 速度,@3.3V
320*240, AI8051U 刷彩屏
==》 320*240*2 = 153,600; 28帧/S
480*320, AI8051U 刷彩屏
==》 480*320*2 = 307,200; 14帧/S
800*480, AI8051U 刷彩屏
==》 800*480*2 = 768,000; 5.6帧/S
STC32G144K246-LQFP100/64, 刷彩屏是AI8051U的4倍以上的速度
120MHz-CPU, 极限 140MHz
53MHz-I/O 速度,
===>刷彩屏是 AI8051U 4倍的速度
STC32G144K246-LQFP100/64, QSPI-4线读FLASH, DMA-i8080并口-TFT接口 刷彩屏
===4倍AI8051U的 I/O 输出速度
320*240*2 = 153,600; i8080-8位或16位并口刷彩屏,28帧/S * 4 = 112 帧/S;
===改成 SPI-刷彩屏 要除4 = 28 帧/S;
480*320*2 = 307,200; i8080-8位或16位并口刷彩屏,14帧/S * 4 = 56 帧/S;
===改成 SPI-刷彩屏要除4 = 14 帧/S;
800*480*2 = 768,000; i8080-8位或16位并口刷彩屏,5.6帧/S * 4 = 22.4 帧/S;
===改成 SPI-刷彩屏要除4 = 5.6 帧/S;
1024*600*2 = 1,228,800; i8080-8位或16位并口刷彩屏
===320*240*2 = 153,600的,28帧/S / 8 / 4 = 3.5 帧/S * 4 = 14 帧/S;
1024*768*2 = 1,572,864; i8080-8位或16位并口刷彩屏
===320*240*2 = 153,600的,28帧/S / 10.24 / 4 = 2.73 帧/S * 4 = 11 帧/S;
现在的 STC32G144K246的I/O输出速度实际应在 53MHz ~ 64MHz附近
===正在设计 120MHz 输出速度的 I/O, 将刷屏速度再 * 2
我是基于STC32测试的,应该差不多
测试条件:连续发送10个数据
硬件SPI
8.6us
硬件SPI + DMA
11.56us
硬件SPI + DMA + FIFO
9.42us
光看速度的话直接硬件SPI较快,虽然硬件SPI + DMA + FIFO的方式,SPI每个字节之间间隔时间更短,但要将数据填入xdata中,包间隔缩短的时间,又被操作xdata的时间补回来了
DMA的好处是SPI发送的时候CPU可以去干别的,只看速度比不过硬件之间发
SPI及DMA配置
硬件SPI
硬件SPI + DMA
硬件SPI + DMA + FIFO
御坂美琴我老婆 发表于 2025-10-24 13:00
我是基于STC32测试的,应该差不多
测试条件:连续发送10个数据
这样实际测试,有数据有对比的最有说服力。
页:
1
[2]