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.

[参考译文] TMS320C6747:使用 UART 通信的 McASP 示例

Guru**** 2611705 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/656420/tms320c6747-working-mcasp-examples-with-uart-communication

器件型号:TMS320C6747

尊敬的香榭丽舍

我的客户尝试在 PDK 1.0.1 (RTOS SDK 4.0.0.4的 pdk_omapl137_1_0_1)的 McASP 示例中添加 UART 通信、但他们在运行 UART 写入时发现音频输出中存在噪声。

他们在 McASP_audiodc_test.c (\ti\pdk_omapl137_1_0_1\packages/ti\board\diag\mcasp_audiodc\src)的 while 循环中添加了 print_uart 函数、如下所示。

恐怕执行'print_UART'函数需要太长时间、因此音频缓冲器中会出现下溢。

您能否提供您对此的看法、以及应如何添加 print_UART 函数以消除音频噪声?

我还附上了来源 files.e2e.ti.com/.../mcasp_5F00_uart.zip

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~μ A

while (1)

if (uartTickCount++>= UART_PRINT_COUNTER){
uartPrintMultipler --;
if (uartPrintMultipler =0){
print_UART ("info %s\n"、"UARTWrite test");

uartPrintMultipler = 50;

uartTickCount = 0;

if (lastFullRxBuf!= lastSentTxBuf)

谢谢、此致、

SI

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

    n`t 建议在具有实时要求的任务中使用 UART。 在时间关键型任务中应避免 printf 和控制台 IO。

    您能否详细说明报告的噪声类型、是白噪声还是咔嗒噪声或其他噪声? 只需确保问题的根本原因是 UART。 通常、如果控制台 IO 和音频需要同时运行、我们将控制台 IO 任务设置为低优先级、以便始终首先处理音频任务。

    其他尝试的建议是使用 UART -EDMA 实现并查看 UART 回调模式是否有任何改进。

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

    只有通过 UART 打印文本时、才会听到"咔嗒"和"咔嗒"的声音。

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

    通过引用 C6748 Starterware 代码(\\C6748_StarterWare_1_20_04_01\examples\lcdkC6748\UART_EDMA)、我在 I2S 旁路示例中实现了 UART 回调函数。

    我正在调试我的代码、我想与您联系、以查看以下中断设置代码是否正确。

    ~~~~~~~~~~~~~μ A
    静态空 EDMA3内部设置(空)

    #ifdef _TMS320C6x
    IntRegister (C674x_MASK_INT5、EDMA3CCComplisr);
    IntEventMap (C674x_MASK_INT5、SYS_INT_EDMA3_0_cC0_INT1);
    IntEnable (C674x_MASK_INT5);

    /**** 2018/01/18,psi,使用 DMA 进行 UART 回调****/
    IntRegister (C674x_MASK_INT7、Edma3ComplHandlerIsr);
    IntRegister (C674x_MASK_INT8、Edma3CCErrHandlerIsr);

    IntEventMap (C674x_MASK_INT7、SYS_INT_EDMA3_0_cC0_INT1);
    IntEventMap (C674x_MASK_INT8、SYS_INT_EDMA3_0_cC0_ERRINT);

    IntEnable (C674x_MASK_INT7);
    IntEnable (C674x_MASK_INT8);
    其他

    ~~~~~~~~~~~~~~~μ A

    此外,我还想检查在 UART 传输时是否可以启用 EDMA,我担心在 UART 传输函数中启用 EDMA 时是否与 McASP EDMA 发生冲突。
    请您检查并告诉我您的意见吗?
    我附加了完整的源代码。

    ~~~~~~~~~~~~~~~~~μ A ```μ A
    静态空 UartTransmitData (unsigned int tccNum、unsigned int chNum、
    volatile char * buffer、unsigned int buffLength)

    EDMA3CCPaRAMEntry 参数集;

    /*用传输特定信息填充参数集*/



    /*现在写入参数集*/
    EDMA3SetPaRAM (SOC_EDMA30CC_0_regs、chNum、&ParamSet);

    /*启用 EDMA 传输*/
    EDMA3 EnableTransfer (SOC_EDMA30CC_0_regs、chNum、EDMA3_TRIG_MODE_EVENT);

    ~~~~~~~~~~~~~~μ A



    谢谢、此致、
    SI