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.

[参考译文] CCS/TMS320C6748:EDMA3 / EMIF 速度不够快

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/967438/ccs-tms320c6748-edma3-emif-not-fast-enough

器件型号:TMS320C6748

工具/软件:Code Composer Studio

您好!

我有一个 DAC 连接到 EMIF 端口、我使用 EDMA3生成输出信号。 数组中的16位正确复制到 SOC_EMIFA_CS2_ADDR 目标、从而生成预期输出(0至4096的值增加1)。 除了速度之外、一切都正常。

在 EMIF 配置中、W_SETUP、W_STROBE、W_HOLD 等... 所有这些都设置为0。 DAC 响应正确、在示波器中、我可以看到 EMA_D0引脚从0连续变为1、但在2.5MHz 时速度更快。

我曾尝试更改时钟分频器、但没有我预期的响应:

//HWREG (0x01C11120)=0b0000000000000000000000001000000000001011;//复位后的默认比率
HWREG (0x01c11120)= 0b00000000000000000000000000001000000000000000;//位15 =启用;位0..4 =乘法器+1

在对该值进行查验后、如手册所示、我在内存浏览器中检查这些参数、并且看起来正确:

CFGCHIP3时钟源已选择 PLL0_SYSCLK3。 
地址01C1 4188h CFGCHIP3 = 0x0000FF00
乘法器。 
地址01C1 1120h PLLDIV3 = 0x00008000

但没有任何变化。

也许我忘记了忧郁?

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

    我忘记强制 PLL0.PLLCMD.GOSET 为1。 其工作原理为:


    //不需要。 请尝试避免:增加 PLLM 乘法器 //HWREG (0x01C11110)= 0b11111; //PLL0.PLLSTAT.GOSTAT -等待0 (表示当前没有正在进行的操作)。 while (HWREG (0x01C1113C)& 1 = 1){ //正在进行的任何操作... } //SYSCFG0.CFGCHIP3 -确保 EMIFA 的 PLLDIV3时钟源 HWREG (0x01C14188)= 0x0000FF00; //PLL0.PLLDIV3 -设定比率 HWREG (0x01C11120)= 0x00008001; //PLL0.PLLCMD.GOSET -强制应用。 HWREG (0x01C11138)= 0x1; //PLL0.PLLSTAT.GOSTAT -等待0 (分频器更改完成)。 while (HWREG (0x01C1113C)& 1 = 1){ //等待更改将产生影响... }