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.

[参考译文] TMS570LS1224:SCI 与 ADC DMA 冲突

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1247958/tms570ls1224-sci-vs-adc-dma-conflict

器件型号:TMS570LS1224

作为通过启用 ADC DMA (GIOB0触发器)、SCI Tx、Rx DMA、SCI Tx、Rx 数据包进行检查的结果、 数据包会被 ADC DMA 销毁。
请告诉我如何正确使用它、以便不会发生冲突。


只要不仅使用 GIOB 触发器、SCI Tx 和 Rx 数据包就没有问题。
上传并发送项目文件。

SCI TX 调试模式结果异常(对 ADC DMA 使用 GIOB0触发器)

SCI TX 调试模式结果正常(我没有对 ADC DMA 使用 GIOB0触发器)

e2e.ti.com/.../example_5F00_adc_5F00_dma-_2800_2_2900_.zip

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

     孙恩圭

    我们已开始处理您的问题、并将尝试尽快提供更新。

    --

    谢谢。此致、
    Jagadish。

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

     孙恩圭

    对不起延误,我被其他问题所困扰。 我将努力在明天晚上向您提供最新情况。

    --

    谢谢。此致、
    Jagadish。

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

     孙恩圭

    我没有看到您在我的最后所讨论的问题。

    我只是对您的代码进行实际调试、但我没有看到您要讨论的问题。

    以下是 UART1 sciREG 的测试结果:

    我是否需要进行任何进一步更改以触发问题?

    --

    谢谢。此致、
    Jagadish。

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

    感谢你的帮助。

    在不对源代码进行任何其他更改的情况下、问题会立即发生。

    测试结果表明、当 UART1 sciREG TX、RX 和 GND 通过终端程序(令牌2)连接到 Launchpad TMS57012的 J2和 J3引脚时、将输出0x31、0x32、0x33、0x34、0x35、0x36、0x37、0x38、0x39、0x0d、0x0a 以外的其他值、如问题所示。
    在源代码中、必须注释掉以下2行、以便正常输出。 我想知道 SCI 和 ADC 的 DMA 设置是否有任何问题。

    gioSetBit (gioPORTB、0U、0U);
    gioSetBit (gioPORTB、0U、1U);

                 [异常 printf ]                                      [普通 printf -已删除2行]

       ---------------- >  

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

    您好、Eun:

    gioSetBit(gioPORTB, 0U, 0U);
    gioSetBit (gioPORTB、0U、1U);

    即使在评论完以上几行之后、我也无法触发问题、您在我的 RM46板上提到了这一点。

    可能是我必须尝试使用 TMS570LS12、我没有此电路板、但我会尝试获取一个。

    --

    谢谢。此致、
    Jagadish。

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

    我想知道我发布的代码的实施是否有任何问题。

    感谢你的帮助。 当 Launchpad TMS57012准备就绪时、我们要求您再次进行检查。

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

    您好、Eun:

    我正在接受在美国工作的同事的帮助。 因此、预计会有一些延迟来解决此问题。

    --

    谢谢。此致、
    Jagadish。

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

    非常感谢!

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

    您好、Eun:

    代码看起来不错。  

    gioSetBit (gioPORTB、0U、0U);
    gioSetBit (gioPORTB、0U、1U);

    这些函数是否在  if (_1msTmr!= 0u)段中调用?

    您可以暂停代码执行以检查 DMA CH0设置和 SCITX 寄存器中的值吗?

     DMA 控制数据包的基地址是0xFFF80000。

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

    您好 QJ Wang。

    如您所说、我使用存储器浏览器检查了该器件的调试结果和周围的 RAM 地址。

    总之,已证实 adc2DmaBuf 和 sciDma (sciDmaRxData, sciDmaTxData, sciDmaTxBuf)发生冲突。

    指向您提到的0xFFF80000的 DMA_CH0的地址(0x08001708)和 adc2DmaData 的值(0x080016F8)一同移动。

    这似乎是一个内存入侵错误,所以我寻找 adcdmaInit (void)设置的问题。

    因此、我们确定用于 ELCNT 的通道数量不正确。

    正确修正了 DMA 通道数量、并确认其正常工作。

    这是一个问题,因为我不能使用它。 感谢你的评分