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.

[参考译文] RTOS/AM5728:McASP 发送问题

Guru**** 2952000 points

Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/673634/rtos-am5728-mcasp-transmit-problem

器件型号:AM5728

工具/软件:TI-RTOS

你好! 当 我配置 MCASP (数据端口 \ 4插槽 TDM),我有问题。   

在将第一个数据写入 XBUF 后、TXSTAT[5]XDATA 始终为0。 为什么?  

非常感谢你的帮助。

我的代码:

空 McaspTxInternalInit (uint32_t baseAddr)
{
//全局初始化
McGlobalaspReset (baseAddr);
//2. 配置 FIFO。
McASPWriteFifoDisable (baseAddr);//无 FIFO

McASPReadFifoDisable (baseAddr);//无 FIFO
//3. 配置本地电源管理。
McASPSetPowerIdleConfig (baseAddr、MCBSP_IDLEMODE_NOIDLE);//0x1:空闲模式
//4. 配置传输格式单元。
McASPTxFmtMaskSet (baseAddr、TXMASK32);//无掩码

McASPTxFmtSet (baseAddr、MCASP_TX_SYNC_DELAY_2BIT | MCASP_TX_BITSTE_LSB_FIRST |
McASP_TX_PAD_OTH_0 | MCASP_TX_SLOTIZE_32位|
McASP_TX_BUF_DMAPORT | MCASP_TX_ROT_RIGHT 无);/1位延迟、LSB 优先、无焊盘、32位插槽、 (PERICONFIGUORT)

//5. 配置发送帧同步发生器。
McASPTxFrameSyncCfg (baseAddr、0x4、MCASP_TX_FS_WIDTH_word、MCASP_TX_FS_INT_BEGIN_ON_RIS_EDGE);//4SLOT、 single-bit

//6.1配置发送时钟发生器。
McASPTxClkCfg (baseAddr、MCASP_TX_CLK_INTERNAL、TXMIXCLKDIV_1、TXAUXCLKDIV_2);

McASPTxClkPolaritySet (baseAddr、MCASP_TX_CLK_POL_RIS_EDGE);McASPxHFClkPolaritySet (baseAddr、MCASP_TX_HI_FREQ_CLK_NO_INTRD);//6.2配置发送时钟故障检测逻辑/TODO

//7. 编程所有位- XTDMSK。
McASPTxTimeSlotSet (baseAddr、0x0000000F);// TDMslot 0123有效

//8. 将所需的 n th 串行器配置为发送模式运行。

McASPSerializerTxSet (baseAddr、TXAXR3);

//9. 设置所有有源发送器以在 TDM 模式下运行。
McASPDITModeCtlWrite (baseAddr、MCASP_TXDITCTL_DITEN_DITDISABLE);

 //10. 配置 MCASP 引脚功能。
McASPPinMcASPSet (baseAddr、MCASP_PIN_AFSX| MCASP_PIN_ACLKX| MCASP_PIN_AXR (3));

//配置 MCASP 引脚方向
McASPPinDirOutputSet (baseAddr、MCBSP_PIN_AFSX);McASPPinDirOutputSet (baseAddr、MCBSP_PIN_ACLKX);McASPPinDirOutputSet (baseAddr、 McASP_PIN_AXR (3));

//11. 可选:在 MCASP_LBCTL [31:0]中配置一个 MCAASP Tx 通道以进行环回操作(仅限 TDM 模式)。
//不 回送
//12. 从复位状态释放输出 AHCLKR 时钟的分频器。
//13. 查询该位以确保它成功锁存在寄存器中。
//14. 从复位状态释放输出 ACLKR 时钟的分频器。
//15. 查询该位以确保它成功锁存在寄存器中。
McASPTxClkStart (baseAddr、MCASP_TX_CLK_INTERNAL);
//全局初始化结束

//工作模式配置
McaspTxPollingMethod (baseAddr);

//操作模式配置结束
}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您选择使用 MCASP 功能性 CSL API 而不使用 MCASP LLD 驱动程序进行代码开发是否有原因? 这不是我们可以支持的推荐编码模型、因为您似乎创建了自己的驱动程序。 请考虑使用

    通常、在配置 MCASP 之后、如果您无法传输代码、以下是典型建议:
    *通过控制模块中 PADCONFIG 寄存器中的器件引脚多路复用配置来检查串行器引脚是否已启用。
    *确保从 SYSPLL 启用 MCASP 模块时钟
    *在 McASP XCLK 和帧同步上放置一个示波器、并确保状态机已启动并正在生成正确的时钟。

    另请尝试在下面的核对表中提供信息:
    processors.wiki.ti.com/.../Checklist_for_Processor_SDK_RTOS_questions_on_E2E

    此致、
    Rahul
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    非常感谢您的回复!我的问题的详细信息如下:
    这是我第一次使用 DSP。它易于使用 MCASP 功能 CSL API。
    2. pinmux 配置、McASP XCLK (50MHz)和帧同步已正确配置。
    3.CFG 端口0插槽,我可以接收帧同步和数据。但 CFG 端口4插槽,我只能接收无数据的帧同步
    我想用 EDMA 来发送数据、所以需要数据端口、但是 CFG 端口4插槽和 CFG 端口4插槽,我只能在没有数据的情况下接收帧同步
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更正错误
    我想使用 EDMA 来发送数据、所以需要数据端口。但是数据端口0插槽和数据端口4插槽,我只能在没有数据的情况下接收帧同步
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    器件型号:AM5728

    工具/软件:TI-RTOS

    你好!

    当 我配置 MCASP (数据端口 \ 4插槽 TDM),PollingMethod 时。   我有疑问。   初始 化 MCASP 后 ,缓冲区溢出,无数据

    1.  我配置 MCASP (CFG 端口 \ 4插槽 TDM)。   轮询方法

    低频(25kHz)、我可以接收4个时隙数据、但 高频(10MHz)、在我第一次将数据写入 MCASP_XBUF 后 、发生缓冲区溢出、无数据。  为什么?

    2.  我配置 MCASP (数据端口 \ 4插槽 TDM)。   轮询方法

    低频或高频,在我第一次将数据写入 MCBSP_DAT 后,会发生缓冲区溢出,无数据。  为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RTOS 团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!我的主板是 AM5728EVM。当我配置 MCASP 时、我发现了一个新的混淆问题。
    1.在配置 McASPTxEnable (从复位中释放发送状态机并从复位中释放帧同步发生器)之前,必须向 xbuf 写入一次数据,否则没有数据输出。为什么?
    最后一个问题仍然存在。
    非常感谢您的回答!