This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS570LS3137:DMA 配置控制数据包

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1025810/tms570ls3137-dma-config-control-packet

器件型号:TMS570LS3137

大家好、在哪里可以找到下面写入的代码可以采用的可能值。 我是说、我想了解如何确定这些值。 例如、 g_dmaCTRLPKT.AUTOINIT = AUTOINIT_ON 也可以写成 g_dmaCTRLPKT.AUTOINIT = AUTOINIT_OFF。  

是否有任何指南可以理解这些概念以及可以提供的可能值? 例如、如何使用"元素目标偏移量"?

代码:

空 dmaConfigCtrlPacket (uint32 Sadd、uint32 dadd、uint32 dsize)

G_dmaCTRLPKT.Sadd =添加;//源地址*/
G_dmaCTRLPKT.DADD =添加;/*目标地址*/
G_dmaCTRLPKT.CHCTRL = 0;/*通道控制*/
G_dmaCTRLPKT.FRCNT = 1;/*帧计数*/
G_dmaCTRLPKT.ELCNT = dsize;/*元素计数*/
G_dmaCTRLPKT.ELDOFFSET = 4;/*元素目标偏移量*
G_dmaCTRLPKT.ELSOFFSET = 0;/*元素目标偏移量*
G_dmaCTRLPKT.FRDOFFSET = 0;/*帧目标偏移量*
G_dmaCTRLPKT.FRSOFFSET = 0;/*帧目标偏移量*
G_dmaCTRLPKT.PORTASGN = 4;/*端口 b *
G_dmaCTRLPKT.RDSIZE = ACCESS_16_BIT;/*读取大小*
G_dmaCTRLPKT.WRSIZE = ACCESS_16_BIT;/*写入大小*
G_dmaCTRLPKT.tType = frame_transfer;/* transfer type *
G_dmaCTRLPKT.ADDMODERD = ADDR_INC1;/*地址模式读取*
G_dmaCTRLPKT.ADDMODEWR = ADDR_OFFSET;/*地址模式写入*
G_dmaCTRLPKT.AUTOINIT = AUTOINIT_ON;/*自动初始化*/

提前感谢:)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请参阅器件 TRM (参考手册) DMA 一章中的"通道配置"一节。

    当一 个通道的自动启动模式被启用并且该通道由软件请求的块传输触发时、一个块传输完成后、通道将使用存储在相应控制包中的相同通道信息重新启动。

    在硬件请求的情况下、即使启用了自动启动、每次块完成后都需要重新触发通道。  

    如果 DMA 被使能、当 TX 移位寄存器和 TXBUF 都为空时、就会产生 SPI 发送 DMA 请求。 当 SPIBUG 和 RXBUF 都为空时、会生成 SPI 接收 DMA 请求。 这些请求是硬件请求、因此 忽略自动启动模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回复。 我将对其进行研究。