当前位置: 首页 > news >正文

【电路笔记 TMS320C6***DSP】C6748 EDMA3配置笔记 寄存器配置+影子通道寄存器+配置示例

目录

    • 参照资料
    • 内存映射寄存器分类
    • 影子通道寄存器
    • 传输中断
    • PaRAM参数
      • SRC、DST
      • A_B_CNT、CCNT
      • SRC_DST_BIDX
      • SRC_DST_CIDX
      • OPT
      • opt示例
    • 链接传输LINK_BCNTRLD (LinkAddress/BCountReloadParameter)
    • 示例代码
    • 示例配置:块传输
    • 示例配置:矩阵转置
    • 示例配置:链接传输

参照资料

  • 第三代增强型内存直接存取控制……视频教程
  • TMS320C642x DSP Enhanced Direct Memory Access (EDMA3)
    Controller User’s Guide https://www.ti.com/lit/ug/spruem5a/spruem5a.pdf

内存映射寄存器分类

在这里插入图片描述

影子通道寄存器

在这里插入图片描述

传输中断

在这里插入图片描述

在这里插入图片描述

PaRAM参数

  • PaRAM参数在说明文档的第四章
    在这里插入图片描述

在这里插入图片描述

SRC、DST

在这里插入图片描述

A_B_CNT、CCNT

在这里插入图片描述
在这里插入图片描述

SRC_DST_BIDX

在这里插入图片描述

SRC_DST_CIDX

在这里插入图片描述

OPT

  • 通道选项参数OPT字段描述表格(Channel Options Parameters (OPT) Field Descriptions)
位域字段名值范围描述
31-28Reserved0预留位,必须写入0。
27-24PRIVID0-Fh权限标识符,表示编程此PaRAM集的外部主机/CPU/DMA的权限级别。该值在任何部分PaRAM集被写入时设置为EDMA3主控的权限识别值。
23ITCCHEN0, 1中间传输完成链式使能。
0禁用中间传输完成链式功能。
1启用中间传输完成链式功能。当启用时,每次中间链接传输完成(除了PaRAM集中最后一个TR),都会设置链式事件寄存器(CER/CERH)中的相应位。
22TCCHEN0, 1传输完成链式使能。
0禁用传输完成链式功能。
1启用传输完成链式功能。当启用时,在最终链接传输完成时(即PaRAM集中最后一个TR完成时),会设置链式事件寄存器(CER/CERH)中的相应位。
21ITCINTEN0, 1中间传输完成中断使能。
0禁用中间传输完成中断。
1启用中间传输完成中断。当启用时,每次中间传输完成(除了PaRAM集中最后一个TR),都会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。
20TCINTEN0, 1传输完成中断使能。
0禁用传输完成中断。
1启用传输完成中断。当启用时,在最终传输完成时(即PaRAM集中最后一个TR完成时),会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。
19-18Reserved0预留位,必须写入0。
17-12TCC0-3Fh传输完成代码。这个6位代码用于设置链式使能寄存器(CER[TCC]/CERH[TCC])中的相关位或中断挂起寄存器(IPR[TCC]/IPRH[TCC])中的相关位。
11TCCMODE0, 1传输完成代码模式。指示传输被认为完成的时间点,以用于链式和中断生成。
0正常完成:数据传输完成后才认为传输完成。
1提前完成:EDMA3CC提交一个TR给EDMA3TC后即认为传输完成。此时TC可能仍在传输数据。
10-8FWID0-7hFIFO宽度。仅适用于SAM或DAM设置为常量地址模式的情况。
0FIFO宽度为8位。
1hFIFO宽度为16位。
2hFIFO宽度为32位。
3hFIFO宽度为64位。
4hFIFO宽度为128位。
5hFIFO宽度为256位。
6h-7h预留位,必须写入0。
7-4Reserved0预留位,必须写入0。
3STATIC0, 1静态PaRAM集。
0PaRAM集不是静态的。PaRAM集在TR提交后会被更新或链接。应为DMA通道或非最终传输使用。
1PaRAM集是静态的。PaRAM集在TR提交后不会被更新或链接。应为独立QDMA传输或链接列表中最终传输使用。
2SYNCDIM0, 1传输同步维度。
0A同步:每个事件触发单个ACNT字节数组的传输。
1AB同步:每个事件触发BCNT个ACNT字节数组的传输。
1DAM0, 1目标地址模式。
0增量模式(INCR):目标地址在数组内递增。目标不是FIFO。
1固定地址模式(CONST):目标地址在数组内循环到FIFO宽度。
0SAM0, 1源地址模式。
0增量模式(INCR):源地址在数组内递增。源不是FIFO。
1固定地址模式(CONST):源地址在数组内循环到FIFO宽度。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

opt示例

  • opt 字段是EDMA3参数集(PaRAM Set)中的一个非常重要的配置项,它通过位域(bit fields)来设置多种传输选项,以下为一个示例。
paramSet.opt =  (0 << 23) | // Bit 23: ITCCHEN = 0 (Disable intermediate transfer complete chaining)(0 << 22) | // Bit 22: TCCHEN = 0 (Disable transfer complete chaining)(0 << 21) | // Bit 21: ITCINTEN = 0 (Disable intermediate transfer complete interrupt)(1 << 20) | // Bit 20: TCINTEN = 1 启用传输完成中断。当启用时,在最终传输完成时(即PaRAM集中最后一个TR完成时),会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。)(0 << 12) | // Bit 12: 17-12传输完成控制代码,为000000。(0 << 11) | // Bits 11: 传输完成代码模式为正常完成。指示传输被认为完成的时间点,以用于链式和中断生成。(1 << 8)  | // Bits 8: 10-8为FIFO宽度。FIFO宽度为16位。 0 0 1,FIFO宽度为16位(1 << 3)  | // Bits 3: PaRAM集是静态的。PaRAM集在TR提交后不会被更新或链接。应为独立QDMA传输或链接列表中最终传输使用。(0 << 2)  | // Bits 2: A同步:每个事件触发单个ACNT字节数组的传输。(1 << 1)  | // Bits 1: 固定地址模式(CONST):目标地址在数组内循环到FIFO宽度。(0 << 0);   // Bits 0: 源地址模式为增量模式(INCR):源地址在数组内递增。源不是FIFO。

链接传输LINK_BCNTRLD (LinkAddress/BCountReloadParameter)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例代码

/****************************************************************************/
/*      https://bbs.elecfans.com/jishu_1790271_1_1.html  https://bbs.elecfans.com/jishu_520116_1_1.html  */
/*       EDMA3 传输配置(在初始化之后)                              */
/****************************************************************************/
void EDMA3GpioInit()
{EDMA3CCPaRAMEntry paramSet;unsigned int acnt = 64;        // 一维unsigned int bcnt = 1;                // 二维unsigned int ccnt = 1;                // 三维// 申请 EDMA3 通道EDMA3RequestChannel(SOC_EDMA30CC_0_REGS, chType, chNum, tccNum, evtQ);// 可添加回调函数:https://e2echina.ti.com/support/processors/f/processors-forum/30494/c6748-edma3-spi// cb_Fxn[cbf_index] = &hcallback; // Registering Callback Function  // 或 hcb_Fxn[cbf_index] = &hcallback; // Registering Callback Function  // 配置参数 RAMparamSet.srcAddr = (unsigned int)(&StringScr);paramSet.destAddr = (unsigned int)(&StringDst);paramSet.aCnt = (unsigned short)acnt;paramSet.bCnt = (unsigned short)bcnt;paramSet.cCnt = (unsigned short)ccnt;// 设置 SRC / DES 索引paramSet.srcBIdx = (short)acnt;paramSet.destBIdx = (short)acnt;// A Sync 传输模式(一维传输模式)paramSet.srcCIdx = (short)acnt;paramSet.destCIdx = (short)acnt;paramSet.linkAddr = (unsigned short)0xFFFFu;paramSet.bCntReload = (unsigned short)0u;paramSet.opt = 0u;// Src 及 Dest 使用自增(INCR)模式paramSet.opt &= 0xFFFFFFFCu;// 配置 TCCparamSet.opt |= ((tccNum << EDMA3CC_OPT_TCC_SHIFT) & EDMA3CC_OPT_TCC);// 写参数 RAMEDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, chNum, ¶mSet);// 使能传输EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, chNum, trigMode);
}

示例配置:块传输

在这里插入图片描述

示例配置:矩阵转置

在这里插入图片描述

示例配置:链接传输

在这里插入图片描述

http://www.lryc.cn/news/518702.html

相关文章:

  • 2025新春烟花代码(二)HTML5实现孔明灯和烟花效果
  • apollo内置eureka dashboard授权登录
  • 后台管理系统全屏功能实现
  • 风电叶片市场竞争激烈:开启绿色能源新篇章的巨大潜力
  • 【Unity3D日常开发】Unity3D中适用WEBGL打开Window文件对话框打开/上传文件
  • C# 或 .NetCore 如何使用 NPOI 导出图片到 Excel 文件
  • Lambda expressions in C++ (C++ 中的 lambda 表达式)
  • 【Rust自学】11.4. 用should_panic检查恐慌
  • 高斯函数Gaussian绘制matlab
  • 获取客户端真实IP地址
  • Kotlin学习(一)
  • 鸿蒙UI开发——日历选择器
  • 2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉
  • React中createRoot函数原理解读——Element对象与Fiber对象、FiberRootNode与HostRootNode
  • 利用Python实现Union-Find算法
  • 【LeetCode: 912. 排序数组 + 归并排序】
  • AI时代来了,我们不再需要IDE了
  • PL/SQL语言的网络编程
  • vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费
  • JavaFx 21 项目Markdown 预览、编辑、新建、文件树、删除、重命名
  • git项目提交步骤(简洁版)
  • 风水算命系统架构与功能分析
  • Clojure语言的学习路线
  • 网络安全核心目标CIA
  • Wi-Fi Direct (P2P)原理及功能介绍
  • Perl语言的数据结构
  • 【MFC】设置CTreeCtrl单个节点的文字颜色
  • 【CSS】设置滚动条样式
  • Gitlab-Runner配置
  • 代码随想录 哈希 test 8