Other Parts Discussed in Thread: 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);
//操作模式配置结束
}