yujyryan 发表于 2008-11-18 16:00

请教5509,aic23,pcm播放

合众达5509dsk,AIC23B播放音频,McBSP1配置为AIC23b的数据口,I2C为控制口<br />aic23b配置如下:<br />/*数字音频接口格式设置<br />AIC23为主模式,数据为DSP模式,数据长度16位*/&nbsp;&nbsp;&nbsp;<br />Uint16&nbsp;digital_audio_inteface_format={0x0e,0x53};<br />/*AIC23的波特率设置,采样率为44.1K*/<br />Uint16&nbsp;sample_rate_control&nbsp;=&nbsp;{0x10,0x23};<br />/*AIC23寄存器复位*/<br />Uint16&nbsp;reset&nbsp;={0x1e,0x00};<br />/*AIC23节电方式设置,所有部分均所与工作状态*/<br />Uint16&nbsp;power_down_control&nbsp;={0x0c,0x00};<br />/*AIC23模拟音频的控制<br />DAC使能,ADC输入选择为Line*/<br />Uint16&nbsp;analog_aduio_path_control&nbsp;={0x08,0x10};<br />/*AIC23数字音频通路的控制*/<br />Uint16&nbsp;digital_audio_path_control&nbsp;={0x0a,0x01};<br />/*AIC23数字接口的使能*/<br />Uint16&nbsp;digital_interface_activation&nbsp;={0x12,0x01};<br />/*AIC23左通路音频调节*/<br />Uint16&nbsp;left_line_input_volume_control&nbsp;={0x01,0x17};<br />/*AIC23右通路音频调节*/<br />Uint16&nbsp;right_line_input_volume_control&nbsp;={0x3,0x17};<br />/*AIC23耳机左通路音频调节*/<br />Uint16&nbsp;left_headphone_volume_control&nbsp;={0x05,0xFF};<br />/*AIC23耳机右通路音频调节*/<br />Uint16&nbsp;right_headphone_volume_control&nbsp;=&nbsp;{0x07,0xFF};<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_RSET(I2CMDR,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;/*设置预分频寄存器,I2C的mode&nbsp;clock&nbsp;is&nbsp;12MHz*/<br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_RSET(I2CPSC,0xb);<br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_RSET(I2CMDR,0x4620);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />//&nbsp;&nbsp;I2C_setup(&I2Cinit);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*设置I2C的Mater&nbsp;clock*/<br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_RSET(I2CCLKL,55);<br />&nbsp;&nbsp;&nbsp;&nbsp;I2C_RSET(I2CCLKH,55);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;/*回放音频*/<br />&nbsp;&nbsp;&nbsp;&nbsp;aic23data=&nbsp;0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data);&nbsp;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(TRUE)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!MCBSP_rrdy(hMcbsp)){};<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aic23data&nbsp;=&nbsp;MCBSP_read16(hMcbsp);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />以上为codec例程配置,运行回放音频,从mic输入,headphone输出,可以<br />后改动如下:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(TRUE)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!MCBSP_xrdy(hMcbsp)){};<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fat16_read_file(&fp,&nbsp;buf,&nbsp;4);&nbsp;&nbsp;//读4个字节至buf<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aic23data&nbsp;=&nbsp;(Uint16)&nbsp;buf&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Uint16)&nbsp;buf&lt&lt&nbsp;8&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aic23data&nbsp;=&nbsp;(Uint16)&nbsp;buf&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Uint16)&nbsp;buf&lt&lt&nbsp;8&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;+=&nbsp;4;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />fp为PCM数据文件,16位双声道数据格式,<br />headphone输出的声音完全不对<br />请教:程序错在哪里,如果改正,谢谢。<br /><br />

以马内利3005 发表于 2013-12-3 10:17

I2C的csl API函数有问题 ,最好编写自己的设置函数 具体参考一下:
有关I2C:http://www.61ic.com/Article/C5000/C55X/201107/36005.html
页: [1]
查看完整版本: 请教5509,aic23,pcm播放