TI中文支持网
TI专业的中文技术问题搜集分享网站

McASP发送数据问题

你好,

 C6748 McASP使用内部时钟通过I2S查询方式向外发送数据。

这样的话 AHCLKX / ACLKX / AFSX ,全部由AUXCLK分频而来并向外输出。初始化完成,各时钟输出正常,可以测到。

但发送数据时,先判断寄存器XSTAT的XDATA位是否为1,第一次调用发送函数XDATA位为1,之后一直XDATA位一直为0。

请问这大概是什么情况导致的呢?

另外,我的理解:McASP使用内部时钟时,I2S向外发送数据,即使DSP没有外接AD等设备,也是能在ACLKX、AXR等引脚测得波形的?求证这种理解是否正确。

Tony Tang:

XUNDRN置位了:underrun,表示没有及时给数,同时XDATA又不置1,是不是你使能了不只一条数据线,但只送了一次数据啊?

zc wang:

回复 Tony Tang:

感谢您的回答,

只使能了一条数据线。

又仔细调试,发现在执行发送函数前,即执行McASPTxEnable()中黄色语句后,XUNDRN置位1,如图:

void McASPTxEnable(unsigned int baseAddr){ /* Release the Transmit State machine from reset*/ HWREG(baseAddr + MCASP_GBLCTL) |= MCASP_GBLCTL_XSMRST; while((HWREG(baseAddr + MCASP_GBLCTL) & MCASP_GBLCTL_XSMRST) != MCASP_GBLCTL_XSMRST) ; /* Release the frame sync generator from reset*/ HWREG(baseAddr + MCASP_GBLCTL) |= MCASP_GBLCTL_XFRST; while((HWREG(baseAddr + MCASP_GBLCTL) & MCASP_GBLCTL_XFRST) != MCASP_GBLCTL_XFRST) ;}

赞(0)
未经允许不得转载:TI中文支持网 » McASP发送数据问题
分享到: 更多 (0)