请教5509,aic23,pcm播放

[复制链接]
5338|1
 楼主| yujyryan 发表于 2008-11-18 16:00 | 显示全部楼层 |阅读模式
合众达5509dsk,AIC23B播放音频,McBSP1配置为AIC23b的数据口,I2C为控制口<br />aic23b配置如下:<br />/*数字音频接口格式设置<br />AIC23为主模式,数据为DSP模式,数据长度16位*/&nbsp;&nbsp;&nbsp;<br />Uint16&nbsp;digital_audio_inteface_format[2]={0x0e,0x53};<br />/*AIC23的波特率设置,采样率为44.1K*/<br />Uint16&nbsp;sample_rate_control[2]&nbsp;=&nbsp;{0x10,0x23};<br />/*AIC23寄存器复位*/<br />Uint16&nbsp;reset[2]&nbsp;={0x1e,0x00};<br />/*AIC23节电方式设置,所有部分均所与工作状态*/<br />Uint16&nbsp;power_down_control[2]&nbsp;={0x0c,0x00};<br />/*AIC23模拟音频的控制<br />DAC使能,ADC输入选择为Line*/<br />Uint16&nbsp;analog_aduio_path_control[2]&nbsp;={0x08,0x10};<br />/*AIC23数字音频通路的控制*/<br />Uint16&nbsp;digital_audio_path_control[2]&nbsp;={0x0a,0x01};<br />/*AIC23数字接口的使能*/<br />Uint16&nbsp;digital_interface_activation[2]&nbsp;={0x12,0x01};<br />/*AIC23左通路音频调节*/<br />Uint16&nbsp;left_line_input_volume_control[2]&nbsp;={0x01,0x17};<br />/*AIC23右通路音频调节*/<br />Uint16&nbsp;right_line_input_volume_control[2]&nbsp;={0x3,0x17};<br />/*AIC23耳机左通路音频调节*/<br />Uint16&nbsp;left_headphone_volume_control[2]&nbsp;={0x05,0xFF};<br />/*AIC23耳机右通路音频调节*/<br />Uint16&nbsp;right_headphone_volume_control[2]&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[0]&nbsp;=&nbsp;(Uint16)&nbsp;buf[0]&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[1]&lt&lt&nbsp;8&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aic23data[1]&nbsp;=&nbsp;(Uint16)&nbsp;buf[2]&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[3]&lt&lt&nbsp;8&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data[0]);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MCBSP_write16(hMcbsp,aic23data[1]);&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

主题

1

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部