工具/软件:TI-RTOS
您好!
在我的器件上、在 DSP1内核中、我尝试在32位、8槽 TDM、位时钟24.576MHz/96KHz 帧同步的同步模式下设置 MCASP3 RX 和 TX (内部)。 DSP1内核(MCASP3)设置为另一个外部器件的时钟主控。
- 当我仅为 MCASP3配置 TX 时、我会看到来自 MCASP3_AXR0的音频数据符合预期、没有错误。
- 当我启用 RX 时、我会看到溢出错误和意外的帧同步错误。
- mcaspBindDev 和 mcaspCreateChan 不返回任何错误。
- 但是、我确实看到 TX 发生了回调
- 我已验证引脚复用/焊盘 IO 设置
- 缓冲区在 L2SRAM 上分配
- 我知道勘误表 i868、并尝试 了 hwFifoEventDMARatio 的不同值
MCASP3设置配置如下-
{/* MCASP3_TX */
0xFFFFFFFF、// MCASP_TXMASK
0x000080F0、// MCASP_TXFMT //插槽大小= 32位,无位延迟
0x00000413、// MCASP_TXFMCTL
0x000000FF、// MCASP_TXTDM
0x0000000F、// MCASP_EVTLX
0x000001ff、// MCASP_TXSTAT
0x00000000、// MCASP_XEVTCTL
{
0x00000020、// MCASP_ACLKXCTL // CLKDIV = 1
0x0000800F、// MCASP_AHCLKXCTL // HDIV = 16
0x00000000 // MCASP_TXCLKCHK
}
}、
{/* MCASP3_RX */
0xFFFFFFFF、// MCASP_RXMASK
0x000080F0、// MCASP_RXFMT //插槽大小= 32位,无位延迟
0x00000413、// MCASP_RXFMCTL
0x000000FF、// MCASP_RXTDM
0x0000000B、// MCASP_EVTCLR
0x000001ff、// MCASP_RXSTAT
0x00000000、// MCASP_REVTCTL
{
0x00000020、// MCASP_ACLKRCTL // CLKDIV = 1
0x0000800F、// MCASP_AHCLKRCTL // HDIV = 16
0x00000000 // MCASP_RXCLKCHK
}
}、
这是使用"omapconf dump mcasp3"的所有状态寄存器的转储
|--------------------------------------- |
|注册 姓名|注册 地址|寄存器 值 |
|--------------------------------------- |
| MCBSP_PID | 0x48468000 | 0x44307B03 |
| PWRIDLESYSCZI| 0x48468004 | 0x00000001 |
| MCBSP_PFUNC | 0x48468010 | 0x00000000 |
| MCBSP_Pdir | 0x48468014 | 0xFC000001 |
| MCBSP_PDOUT | 0x48468018 | 0x00000000 |
| MCBSP_PDIN | 0x4846801C | 0x08000000 |
| MCBSP_PDCLR | 0x48468020 | 0x00000000 |
| MCBSP_GBLCTL | 0x48468044 | 0x0000031F |
| MCASP_AMUTE | 0x48468048 | 0x00000000 |
| MCASP_LBCTL | 0x4846804C | 0x00000000 |
| MCASP_TXDITCTL | 0x48468050 | 0x00000000 |
| MCBSP_GBLCTLR | 0x48468060 | 0x0000031F |
| MCASP_RXMASK | 0x48468064 | 0xFFFFFFFF |
| MCASP_RXFMT | 0x48468068 | 0x000080F0 |
| MCASP_RXFMCTL | 0x4846806C | 0x00000413 |
| MCASP_ACLKRCTL | 0x48468070 | 0x00000020 |
| MCASP_AHCLKRCTL | 0x48468074 | 0x0000800F |
| MCASP_RXTDM | 0x48468078 | 0x000000FF |
| MCASP_EVTCTLR | 0x4846807C | 0x0000000B |
| MCASP_RXSTAT | 0x484680| 0x00000177 |
| MCASP_RXTDMSLOT | 0x48468084 | 0x00000000 |
| MCASP_RXCLKCHK | 0x48468088 | 0x00000000 |
| MCASP_REVTCTL | 0x4846808C | 0x00000000 |
| MCBSP_GBLCTLX | 0x484680A0 | 0x0000031F |
| MCASP_TXMASK | 0x484680A4 | 0xFFFFFFFF |
| MCASP_TXFMT | 0x484680A8 | 0x000080F0 |
| MCASP_TXFMCTL | 0x484680AC | 0x00000413 |
| MCASP_ACLKXCTL | 0x484680B0 | 0x00000020 |
| MCASP_AHCLKXCTL | 0x484680B4 | 0x0000800F |
| MCASP_TXTDM | 0x484680B8 | 0x000000FF |
| MCASP_EVTCTLX | 0x484680BC | 0x0000000F |
| MCASP_TXSTAT | 0x484680C0 | 0x00000008 |
| MCASP_TXTDMSLOT | 0x484680C4 | 0x0000017F |
| MCASP_TXCLKCHK | 0x484680C8 | 0x56595300 |
| MCASP_XEVTCTL | 0x484680CC | 0x00000000 |
| MCASP_CLKADJEN | 0x484680D0 | 0x00000000 |
| MCBSP_XRSRCTL0 | 0x48468180 | 0x00000011 |
| MCBSP_XRSRCTL1 | 0x48468184 | 0x00000022 |
| MCASP_XRSRCTL2 | 0x48468188 | 0x00000000 |
| MCASP_XRSRCTL3 | 0x4846818C | 0x00000000 |
| MCBSP_WFIFOCTL | 0x48469000 | 0x00000401 |
| MCASP_WFIFOSTS | 0x48469004 | 0x00000000 |
| MCBSP_RFIFOCTL | 0x484698008| 0x00010401 |
| MCASP_RFIFOSTS | 0x4846900C | 0x00000040 |
|--------------------------------------- |
和、omapconf show mcasp3 -
|--------------------------------------- |
|数据端口和缓冲器|
|--------------------------------------- |
|端口|数据总线|
|发送 DMA ||
| DMA 请求|启用|
|状态|无错误|
|接收 DMA ||
| DMA 请求|启用|
|状态|无错误|
|发送缓冲器(XBUF)||
|状态|无错误|
|接收缓冲器(RBUF)||
|状态|溢出发生|
|写入 FIFO (WFIFO)||
|状态|禁用|
|阈值| 4个样本|
|级别| FIFO 中的0个样本|
|读取 FIFO (RFIFO)||
|状态|启用|
|阈值| 4个样本|
|级别| 64个 FIFO 样本|
|--------------------------------------- |
|----------------------------------------- |
|控制|
|----------------------------------------- |
|发送状态机||
|状态|保持在复位状态|
|发送序列发生器||
|启用的插槽| 8 |
|有源插槽| 8 |
|活动插槽掩码| 0x000000FF |
|当前时隙|非活动|
|接收状态机||
|状态|活动|
|接收序列发生器||
|启用的插槽| 8 |
|有源插槽| 8 |
|活动插槽掩码| 0x000000FF |
|当前时隙| 0 |
|----------------------------------------- |
|------------------------------------------------ |
|时钟|
|------------------------------------------------ |
|发送位时钟||
|状态|运行|
|除法器|除以1 |
|来源|内部|
|极性|在上升沿驱动|
|发送高速时钟||
|状态|运行|
|除法器| 16分频|
|源|内部(AUXCLK)|
|极性|非反相|
|接收位时钟||
|状态|运行|
|除法器|除以1 |
|来源|内部|
|极性|下降沿上的样本|
|同步模式|同步到 TX |
|空闲模式|非空闲|
|------------------------------------------------ |
|---------------------------------------------- |
|帧同步发生器|
|---------------------------------------------- |
|发送帧同步||
|发生器状态|保持在复位状态|
|来源|内部|
|极性|帧从下降沿开始|
|脉宽|单个字|
|插槽数| 8 (TDM)|
|数据延迟| 0位|
|状态|无错误|
|接收帧同步||
|发生器状态|激活|
|来源|内部|
|极性|帧从下降沿开始|
|脉宽|单个字|
|插槽数| 8 (TDM)|
|数据延迟| 0位|
|状态|意外帧同步|
|同步模式|同步到 TX |
|---------------------------------------------- |
|----------------------------------------- |
|格式单位|
|----------------------------------------- |
|发送格式单元||
|插槽大小| 32位|
|位掩码| 0xFFFFFFFF |
|填充|带0的焊盘|
|右旋转| 0位位置|
|比特流顺序| MSB 优先|
|接收格式单元||
|插槽大小| 32位|
|位掩码| 0xFFFFFFFF |
|填充|带0的焊盘|
|右旋转| 0位位置|
|比特流顺序| MSB 优先|
|----------------------------------------- |
|------------------------------- |
|串行器|
|------------------------------- |
|发送串行器|清除|
|接收串行器|活动|
|串行器0 ||
|模式|发送|
|非活动状态| Hi-Z |
|串行器1 ||
|模式|接收|
|非活动状态| Hi-Z |
|串行器2 ||
|模式|非活动|
|非活动状态| Hi-Z |
|串行器3 ||
|模式|非活动|
|非活动状态| Hi-Z |
|------------------------------- |
|--------------------------------------- |
|引脚控制|
|--------------------------------------- |
| AFESR |||
|功能|接收帧同步|
|方向|输出|
| ACLKR ||
|功能|接收位时钟|
|方向|输出|
| AFSX ||
|功能|传输帧同步|
|方向|输出|
| ACLKX ||
|功能|发送位时钟|
|方向|输出|
| AHCLKX ||
|功能|发送高频率时钟|
|方向|输出|
| AXR0 ||
|功能| TX/RX 数据通道0 |
|方向|输出|
| AXR1 ||
|功能| TX/RX 数据通道1 |
|方向|输入|
| AXR2 ||
|功能| TX/RX 数据通道2 |
|方向|输入|
| AXR3 ||
|功能| TX/RX 数据通道3 |
|方向|输入|
|--------------------------------------- |