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.
这个对照下面的源码,是不是后一个把前一个覆盖了啊。MCASP_XSER_RX1, MCASP_XSER_TX1是在哪定义的?
/**
* \brief Sets a serializer as transmitter
*
* \param baseAddr Base Address of the McASP Module Registers.
* \param serNum Serializer which is to be used as Transmitter.
*
* \return None.
*
**/
void McASPSerializerTxSet(unsigned int baseAddr, unsigned int serNum)
{
HWREG(baseAddr + MCASP_SRCTL(serNum)) &= ~MCASP_SRCTL0_SRMOD;
HWREG(baseAddr + MCASP_SRCTL(serNum)) |= MCASP_SRCTL_SRMOD_TX;
}
/**
* \brief Sets a serializer as receiver
*
* \param baseAddr Base Address of the McASP Module Registers.
* \param serNum Serializer which is to be used as Receiver.
*
* \return None.
*
**/
void McASPSerializerRxSet(unsigned int baseAddr, unsigned int serNum)
{
HWREG(baseAddr + MCASP_SRCTL(serNum)) &= ~MCASP_SRCTL0_SRMOD;
HWREG(baseAddr + MCASP_SRCTL(serNum)) |= MCASP_SRCTL_SRMOD_RX;
}
多通道的配置对于单通道来说,仅仅是使能多个数据线就好了。
关于EDMA的配置,参考下面截图的说明:
您好,我的定义是这样的
/* 用于接收的串行器 */
#define MCASP_XSER_RX1 (0u)
#define MCASP_XSER_RX2 (2u)
#define MCASP_XSER_RX3 (4u)
#define MCASP_XSER_RX4 (6u)
/* 用于发送的串行器 */
#define MCASP_XSER_TX1 (1u)
#define MCASP_XSER_TX2 (3u)
#define MCASP_XSER_TX3 (5u)
#define MCASP_XSER_TX4 (7u)
我的理解是这样,您看对吗。
如果用TDM传输方式,就只用配置两个串行器,一个用于接收8个通道,一个用于发送处理完的8个通道。
如果用I2S传输方式,就需要配置八个串行器,每个传输2个通道(左右)。