找回密码
 立即注册
查看: 2737|回复: 13

DMA, 外设直接送到外设,MCU 彻底修仙@8051U DMA P2P外设到外设功能

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:415
  • 最近打卡:2025-04-30 09:58:34
已绑定手机

39

主题

2006

回帖

6841

积分

论坛元老

积分
6841
发表于 2024-7-5 16:01:20 | 显示全部楼层 |阅读模式
本帖最后由 乘风飞扬 于 2024-10-16 11:38 编辑

8051U
DMA-P2P, 外设直接送到外设】,CPU 彻底去修仙@8051U
AI 单片机从 8051U开始增加了【DMA, P2P外设到外设功能】。
后续的  8052U / 32G144K256的DMA也会支持 P2P
DMA-P2P将源头外设获得的数据直接送往目标外设输出

不需要经过CPU/RAM缓存, 是独立并行处理。
DMA支持P2P的外设有:

USART1, USART2, UART3, USART4,
SPI,I2C,ADC,I2S,
QSPI,I2S音频接口,
i8080/M6800接口-TFT彩屏/LCD12864
  1. #define     P2P_SRC_UR1RX           0x10
  2. #define     P2P_SRC_UR2RX           0x20
  3. #define     P2P_SRC_UR3RX           0x30
  4. #define     P2P_SRC_UR4RX           0x40
  5. #define     P2P_SRC_SPIRX           0x50
  6. #define     P2P_SRC_I2CRX           0x60
  7. #define     P2P_SRC_LCMRX           0x70
  8. #define     P2P_SRC_QSPIRX          0x80
  9. #define     P2P_SRC_ADCRX           0x90
  10. #define     P2P_SRC_I2SRX           0xA0
  11. #define     P2P_DEST_UR1TX          0x01
  12. #define     P2P_DEST_UR2TX          0x02
  13. #define     P2P_DEST_UR3TX          0x03
  14. #define     P2P_DEST_UR4TX          0x04
  15. #define     P2P_DEST_SPITX          0x05
  16. #define     P2P_DEST_I2CTX          0x06
  17. #define     P2P_DEST_LCMTX          0x07
  18. #define     P2P_DEST_QSPITX         0x08
  19. #define     P2P_DEST_I2STX          0x0A
复制代码

DMA P2P支持2组外设同时工作:
  1. DMA_P2P_CR1 = P2P_SRC_UR1RX | P2P_DEST_UR1TX;    //将UART1_RX接收到的数据从UART1_TX发送出去
  2. DMA_P2P_CR2 = P2P_SRC_UR1RX | P2P_DEST_UR2TX;    //将UART1_RX接收到的数据从UART2_TX发送出去
复制代码

使用串口助手给MCU UART1发送数据时,UART1收到的数据会同时从UART1、UART2传出:
截图202407051420111833.jpg

DMA_xxxx_AMTH, DMA_xxxx_AMT设置P2P透传数据字节数,透传数据量达到设置的数据个数(小于65536)就会产生DMA中断,并停止源外设的DMA接收功能,需要重新启动才能继续接收。

如果DMA_xxxx_AMTH, DMA_xxxx_AMT设置为0xFFFF,则DMA P2P无限透传。

DMA_xxx_ITVH, DMA_xxx_ITVL设置每个字节数据的DMA传输间隔时间。

使用P2P的话,目标外设的发送速度必需比源外设的接收速度快,否则可能导致数据丢失。

附件例子供参考,需要选择其它源外设时,可在对应的项目文件处右键选择“Options for File...”:
截图202407051554558652.jpg

勾选“Include in Target Build”选项,并取消其它外设文件的这个选项:
截图202407051556292843.jpg

最后重新编译。

截图202407102348431944.jpg



AI8051U-P2P-20241016.zip

50.12 KB, 下载次数: 206

本帖被以下淘专辑推荐:

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-7-5 22:02:59 | 显示全部楼层
通过寄存器实现的?

点评

配置即可  发表于 2024-7-6 11:19
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-7-6 11:18:51 | 显示全部楼层
STC8051U全球大学计划实验箱大国风范
用 STC8051U-PDIP40, LQFP44, LQFP48
点亮 i8080-TFT, QSPI-TFT, SPI-TFT, 点灯

追风剑-II@STC8051USB 实验箱极致音频示波器,波形发生器
管脚兼容天王级别的: STC89C52RC, STC12C5A60S2
兼容 8位8051,  可以用 Keil C51/IAR/SDCC 编译器
===STC-ISP 烧录时,指定 STC8051U-8Bit
兼容
32位8051,可以用 Keil C251 编译器,双核兼容设计

===STC-ISP 烧录时,指定 STC8051U-32Bit
34K SRAM(2K edata, 32K xdata), 64K Flash

DMA支持PWM, DMA支持外设直接到外设, P2P

135MHz-PWM支持硬件移相,16位PWM; 真12位ADC
USB, I2S, QSPI, 4组串口,I2C, SPI
LQFP48/LQFP44,PDIP40 封装已到位
TFPU32:【硬件三角函数/反三角函数,硬件浮点运算器】
不用的PSEN 改成 USB-3.3V-LDO-UCAP, 外挂 0.1uF电容
不用USB, 不用 USB直接下载/USB仿真,可不挂这个电容

【新提醒】STC8051U全球大学计划实验箱,大国风范 ! 数据手册 - 单片机创意设计大赛 @【STC & 嘉立创EDA】 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区 (stcaimcu.com)
截图202407061118208586.jpg

截图202407061118485504.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-7-6 11:21:16 | 显示全部楼层
STC8051U 的 DMA 支持 PWM
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:102
  • 最近打卡:2025-04-30 21:27:20
已绑定手机

6

主题

26

回帖

482

积分

中级会员

积分
482
发表于 2024-7-6 23:02:09 | 显示全部楼层
能不能直接上干货

点评

顶楼附件是 源代码-干货 [attachimg]50400[/attachimg]  详情 回复 发表于 2024-7-7 11:54
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-7-7 11:54:36 | 显示全部楼层
wan*** 发表于 2024-7-6 23:02
能不能直接上干货


顶楼附件是 源代码-干货
截图202407071154019165.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-7-8 20:52:08 | 显示全部楼层
STC8051U的 DMA 支持 P2P, 外设直接到外设
===DMA 有2组 外设直接到外设 通道
===可以支持 4个外设组成 2组 P2P DMA
===其他的外设要 DMA 支持,
        可经过 DMA 缓冲区/64K深度,XRAM

截图202407082055173762.jpg

截图202407082052063038.jpg


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:54
  • 最近打卡:2025-05-01 09:07:55

717

主题

1万

回帖

1万

积分

管理员

积分
15609
发表于 2024-7-8 20:53:22 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:320
  • 最近打卡:2025-04-30 11:29:16
已绑定手机

21

主题

487

回帖

1023

积分

金牌会员

积分
1023
发表于 2024-7-11 08:08:48 | 显示全部楼层
名字有点问题,我以为芯片直接废掉了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:447
  • 最近打卡:2025-04-30 11:36:47

7

主题

64

回帖

659

积分

高级会员

积分
659
发表于 2024-7-12 09:27:31 | 显示全部楼层
51芯片功能越来越强大。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-1 19:44 , Processed in 0.138177 second(s), 119 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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