资源描述:
《DSP实验:音频控制.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四:音频一、实验原理多通道缓冲串口McBSP概述•全双工通信•双缓冲数据寄存器,允许连续的数据流。•收发独立的帧信号和时钟信号•可以与工业标准的编/解码器,以及其它串行A/D、D/A接口•数据传输可以利用外部时钟、或是片内的可编程时钟。•利用DMA为McBSP服务时,串口数据读写具有自动缓冲能力。•可与多达128个通道进行收发;•支持传输的数据字长可以是8bit、12bit、16bit、20bit、24bit、32bit•内置u律和A律压扩硬件。•对8bit数据的传输,可选择LSB先传,还是MSB先传。•可设置帧同步
2、信号和数据时钟信号的极性。•内部传输时钟和帧同步信号可编程程度高。二、硬件资源和在片外围电路硬件资源:CPU、LED、按键、显示屏、耳机和麦克插孔、电阻、电容等在片外围电路:时钟发生器、定时器、通用输入/输出口(GPIO)、主机接口(EHPI)、外部存储器接口(EMIF)、DMA控制器等一、参数设置配置CE0和CE1寄存器的存储类型为16位宽的SDRAM;DST(SRC)=xx10,目的(源)为EMIF;DST(SRC)=xx10,目的(源)为外设;DST(SRC)AMODE=00,目的(源)地址为固定地址;DST(SR
3、C)AMODE=01,目的(源)地址在每个数据单元传输完成后自动加1;AIC23的波特率设置,0x23采样率为44.1K,0x0c采样率为8K;二、实验流程图三、程序课通过改变12864字符得到自己想要编写或改变的中文字符。voidmain(void){i2c_status=1;/*InitializeCSLlibrary-ThisisREQUIRED!!!*//*初始化CSL库*/CSL_init();CHIP_RSET(XBSR,0x0a01);GPIO_RSET(IODIR,0xFF);//GPIO方向寄存器IOD
4、IR,0,配置为输入,1,配置为输出,此处将0~7管脚全部配置成输出/*设置系统的运行速度为144MHz*/PLL_config(&myConfig);/*初始化DSP的外部SDRAM*/EMIF_config(&emiffig);lcd_init();display1();/*向SDRAM中写入数据*/souraddr=(unsignedint*)0x020000;tempaddr=(unsignedint*)0x020000;deminaddr=(unsignedint*)0x3fffff;addr=0x20000;
5、temp_addr=0x20000;/*InitializeI2C,usingparametersininitstructure*//*初始化I2C的格式*///I2C_config(&Config);//I2C_start();//I2C_getConfig(&Config1);/*I2Cisundetreset*/I2C_RSET(I2CMDR,0);/*设置预分频寄存器,I2C的modeclockis10MHz*/delay(100);I2C_RSET(I2CSAR,0x001A);I2C_RSET(I2CMDR,
6、0x0620);I2C_setup(&I2Cinit);/*设置I2C的Materclock*/I2C_RSET(I2CCLKL,100);I2C_RSET(I2CCLKH,100);I2C_getConfig(&testI2C);aic_init();DMA_init();/*初始化McBSP1*/hMcbsp=MCBSP_open(MCBSP_PORT1,MCBSP_OPEN_RESET);/*设置McBSP1*/MCBSP_config(hMcbsp,&Mcbsp1Config);/*启动McBSP0*/MCBSP
7、_start(hMcbsp,MCBSP_RCV_START
8、MCBSP_XMIT_START,0);LBDS1=0x0fff;/*回放音频*/nin=0;n=0;k=0;volume=8;temp_volume=8;while(TRUE){dealkey();if(stand_record==1){i2c_status=I2C_write(analog_aduio_path_control,//pointertodataarray2,//lengthofdatatobetransmitted1,//masterorsla
9、verCODEC_ADDR,//slaveaddresstotransmitto1,//transfermodeofoperation30000//timeoutforbusbusy);display2();souraddr=(unsignedint*)0x20000;deminaddr=(unsignedint*)