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**** 2568565 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1132682/tms570ls3137-dma-addressing-mode-is-not-working

器件型号:TMS570LS3137

您好!  

我编写了一个使用带 DMA 的 ADC 的程序。

如果我这样编码、它将无法正常工作。

秘书长的报告

g_dmaCTRL g_dmaCTRL_init;

///

G_dmaCTRL_init.ELDOFFSET = 0;

G_dmaCTRL_init.ELSOFFSET = 0;

G_dmaCTRL_init.FRDOFFSET = 0;

G_dmaCTRL_init.FRSOFFSET = 0;

G_dmaCTRL_init.ADDMODERD = ADDR_INC1;

G_dmaCTRL_init.ADDMODEWR = ADDR_FIXED;

///

秘书长的报告

但是 、如果我这么做、它可以正常工作。

秘书长的报告

g_dmaCTRL g_dmaCTRL_init;

///

G_dmaCTRL_init.ELDOFFSET = 0;

G_dmaCTRL_init.ELSOFFSET = 1;

G_dmaCTRL_init.FRDOFFSET = 0;

G_dmaCTRL_init.FRSOFFSET = 1;

G_dmaCTRL_init.ADDMODERD = ADDR_OFFSET;

G_dmaCTRL_init.ADDMODEWR = ADDR_OFFSET;

///

秘书长的报告

我不明白为什么。  

谢谢、

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

    您好 Faruk、

    我想、在您的第一个案例中、您做错了、因为我们在这里对 ADC 使用 DMA、因此我们必须从 ADC 读取转换后的值、并将其写入缓冲器。 读取是从 ADC 进行的、写入是到缓冲器进行的、因此读取地址应该是固定的(因为它是 ADC 寄存器)、写入地址应该递增(因为它是缓冲器)、但您执行的是相反的操作。 因此、这可能是您失败的原因。

    您可以更正它并重试吗?

    --

    谢谢、

    Jagadish。  

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

    老实说、我在打开问题时写下了错误。 我纠正了它、但仍然有问题

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

    您好 Faruk、

    您能否检查以下主题?

    (+) TMS570LC4357:ADC DMA -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    如果您的问题仍未得到解决、您能否分享您的代码/

    --

    谢谢、

    Jagadish。