乘风飞扬 发表于 2024-7-5 16:01:20

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

本帖最后由 乘风飞扬 于 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
#define   P2P_SRC_UR1RX         0x10
#define   P2P_SRC_UR2RX         0x20
#define   P2P_SRC_UR3RX         0x30
#define   P2P_SRC_UR4RX         0x40
#define   P2P_SRC_SPIRX         0x50
#define   P2P_SRC_I2CRX         0x60
#define   P2P_SRC_LCMRX         0x70
#define   P2P_SRC_QSPIRX          0x80
#define   P2P_SRC_ADCRX         0x90
#define   P2P_SRC_I2SRX         0xA0

#define   P2P_DEST_UR1TX          0x01
#define   P2P_DEST_UR2TX          0x02
#define   P2P_DEST_UR3TX          0x03
#define   P2P_DEST_UR4TX          0x04
#define   P2P_DEST_SPITX          0x05
#define   P2P_DEST_I2CTX          0x06
#define   P2P_DEST_LCMTX          0x07
#define   P2P_DEST_QSPITX         0x08
#define   P2P_DEST_I2STX          0x0A
DMA P2P支持2组外设同时工作:
DMA_P2P_CR1 = P2P_SRC_UR1RX | P2P_DEST_UR1TX;    //将UART1_RX接收到的数据从UART1_TX发送出去
DMA_P2P_CR2 = P2P_SRC_UR1RX | P2P_DEST_UR2TX;    //将UART1_RX接收到的数据从UART2_TX发送出去
使用串口助手给MCU UART1发送数据时,UART1收到的数据会同时从UART1、UART2传出:


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...”:


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


最后重新编译。





soma 发表于 2024-7-5 22:02:59

通过寄存器实现的?

神农鼎 发表于 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)




神农鼎 发表于 2024-7-6 11:21:16

STC8051U 的 DMA 支持 PWM

wanli 发表于 2024-7-6 23:02:09

能不能直接上干货 {:4_197:}{:4_197:}{:4_197:}

神农鼎 发表于 2024-7-7 11:54:36

wanli 发表于 2024-7-6 23:02
能不能直接上干货


顶楼附件是 源代码-干货

神农鼎 发表于 2024-7-8 20:52:08

STC8051U的 DMA 支持 P2P, 外设直接到外设
===DMA 有2组 外设直接到外设 通道
===可以支持 4个外设组成 2组 P2P DMA
===其他的外设要 DMA 支持,
      可经过 DMA 缓冲区/64K深度,XRAM






神农鼎 发表于 2024-7-8 20:53:22

深圳国芯人工智能有限公司-产品_STC8051U系列 (stcai.com)



STC8051U 最新完整数据手册下载

llyymm 发表于 2024-7-11 08:08:48

名字有点问题,我以为芯片直接废掉了{:4_167:}

consoleyou 发表于 2024-7-12 09:27:31

51芯片功能越来越强大。
页: [1] 2
查看完整版本: DMA, 外设直接送到外设,MCU 彻底修仙@8051U DMA P2P外设到外设功能