用6748的MCASP传输4路音频(四输入,四输出)用edma3,该怎... - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4243|回复: 3

[已解决] 用6748的MCASP传输4路音频(四输入,四输出)用edma3,该怎...

[复制链接]

6

主题

12

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
发表于 2018-8-20 08:48:54 | 显示全部楼层 |阅读模式
查看了相关配置是在这里,我试着配置了一下,但不知道对不对。参考的是6748的AUDIO_LINE_IN工程。
static void McASPI2SConfigure(void)
{
    McASPRxReset(SOC_MCASP_0_CTRL_REGS);
    McASPTxReset(SOC_MCASP_0_CTRL_REGS);

    /* Enable the FIFOs for DMA transfer
     * 启用FIFO进行DMA传输*/

    McASPReadFifoEnable(SOC_MCASP_0_FIFO_REGS, 4, 1);
    McASPWriteFifoEnable(SOC_MCASP_0_FIFO_REGS, 4, 1);

    /* Set I2S format in the transmitter/receiver format units

     * 以收发格式为单位设定i2s格式,在发送器/接收器单元的格式设定I2S格式*/
    McASPRxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
                     MCASP_RX_MODE_DMA);
    McASPTxFmtI2SSet(SOC_MCASP_0_CTRL_REGS, WORD_SIZE, SLOT_SIZE,
                     MCASP_TX_MODE_DMA);


    /* Configure the frame sync. I2S shall work in TDM format with 2 slots*/

    McASPRxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 8, MCASP_RX_FS_WIDTH_WORD,
                        MCASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);//帧同步的信号设置,外部,上升沿
    McASPTxFrameSyncCfg(SOC_MCASP_0_CTRL_REGS, 8, MCASP_RX_FS_WIDTH_WORD,
    MCASP_TX_FS_INT_BEGIN_ON_FALL_EDGE);//帧同步的信号设置,内部,上升沿


    /* configure the clock for receiver*/
    McASPRxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_EXTERNAL, 0, 0);//外部时钟

    McASPRxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLK_POL_RIS_EDGE);

    McASPRxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_RX_CLKCHCK_DIV32,
                          0x00, 0xFF);


    /* configure the clock for transmitter
     */
    McASPTxClkCfg(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_MIXED, 11, 0);
    McASPTxClkPolaritySet(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLK_POL_FALL_EDGE);
    McASPTxClkCheckConfig(SOC_MCASP_0_CTRL_REGS, MCASP_TX_CLKCHCK_DIV32,
                          0x00, 0xFF);

    /* Enable synchronization of RX and TX sections

    //McASPTxRxClkSyncEnable(SOC_MCASP_0_CTRL_REGS);

    /* Enable the transmitter/receiver slots. I2S uses 2 slots
   */
    McASPRxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);
    McASPTxTimeSlotSet(SOC_MCASP_0_CTRL_REGS, I2S_SLOTS);

    /*
    ** Set the serializers, Currently only one serializer is set as
    ** transmitter and one serializer as receiver.
    */
    McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX1);
    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX1);

    McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX2);
    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX2);

    McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX3);
    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX3);

    McASPSerializerRxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_RX4);
    McASPSerializerTxSet(SOC_MCASP_0_CTRL_REGS, MCASP_XSER_TX4);

    /*
    ** Configure the McASP pins
    ** Input - Frame Sync, Clock and Serializer Rx
    ** Output - Serializer Tx is connected to the input of the codec
    */
    McASPPinMcASPSet(SOC_MCASP_0_CTRL_REGS, 0xFFFFFFFF);//设置McASP引脚用于McASP功能
    McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AXR(MCASP_XSER_TX1)
    | MCASP_PIN_AFSX
    | MCASP_PIN_ACLKX);//将McASP引脚配置为输出引脚。
    McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AXR(MCASP_XSER_TX2)
    | MCASP_PIN_AFSX
    | MCASP_PIN_ACLKX);
    McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AXR(MCASP_XSER_TX3)
    | MCASP_PIN_AFSX
    | MCASP_PIN_ACLKX);
    McASPPinDirOutputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AXR(MCASP_XSER_TX4)
    | MCASP_PIN_AFSX
    | MCASP_PIN_ACLKX);
    McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSR
                                               | MCASP_PIN_ACLKR
                                               | MCASP_PIN_AXR(MCASP_XSER_RX1));
    McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSR
                                               | MCASP_PIN_ACLKR
                                               | MCASP_PIN_AXR(MCASP_XSER_RX2));
    McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSR
                                               | MCASP_PIN_ACLKR
                                               | MCASP_PIN_AXR(MCASP_XSER_RX3));
    McASPPinDirInputSet(SOC_MCASP_0_CTRL_REGS, MCASP_PIN_AFSR
                                               | MCASP_PIN_ACLKR
                                               | MCASP_PIN_AXR(MCASP_XSER_RX4));

    /* Enable error interrupts for McASP

    McASPTxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_TX_DMAERROR
                                            | MCASP_TX_CLKFAIL
                                            | MCASP_TX_SYNCERROR
                                            | MCASP_TX_UNDERRUN);

    McASPRxIntEnable(SOC_MCASP_0_CTRL_REGS, MCASP_RX_DMAERROR
                                            | MCASP_RX_CLKFAIL
                                            | MCASP_RX_SYNCERROR
                                            | MCASP_RX_OVERRUN);
}

还有edma3怎么弄



回复

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
发表于 2018-8-20 10:58:53 | 显示全部楼层
您好,关于音频的EDMA的相关配置,请您参考,我们提供的视频教程,关于DMA的参数,视频中,是有详细说明的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

6

主题

12

帖子

1193

积分

金牌会员

Rank: 6Rank: 6

积分
1193
 楼主| 发表于 2018-8-20 11:20:21 | 显示全部楼层
广州创龙廖工 发表于 2018-8-20 10:58
您好,关于音频的EDMA的相关配置,请您参考,我们提供的视频教程,关于DMA的参数,视频中,是有详细说明的 ...

廖工,您好:

我现在主要想了解MCASP相关的配置,edma3那块差不多能懂。

工程中只给了一路传输,
#define MCASP_XSER_RX                         (12u)
#define MCASP_XSER_TX                         (11u)

我现在想配置4路。需要改哪些东西。
回复 支持 反对

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
发表于 2018-8-24 10:57:47 | 显示全部楼层
您好,如果您需要配置4路的话,首先要看,硬件设计上,是否支持,您可以参考,我们提供的底板原理图,和查询方式实现的音频采集demo,如果您的底板设计上,是支持4路串行器输入和输出,您参照我们的源码,修改即可,请您参考。







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-29 04:10 , Processed in 0.039137 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表