By Mcuzone
这个例子使用SAMA5D3x微控制器内部的同步串行控制器(SSC)通过板载WM8904编解码器来输出音频流。
此程序播放从PC端通过Line-In传送过来的WAV文件。音频流通过SSC接口传送到板载的WM8904,从而使得声音能够通过耳机(由HEADPHONE插入)来收听。
硬件平台:MDKA5D3X-EK_T70开发板
开发板所带操作系统:linux 3.6.9
裸机程序编译工具:IAR Embedded Workbench for ARM 6.60
裸机程序调试工具:J-LINK
此程序播放从PC端通过Line-In传送过来的WAV文件。音频流通过SSC接口传送到板载的WM8904,从而使得声音能够通过耳机(由HEADPHONE插入)来收听。
硬件平台:MDKA5D3X-EK_T70开发板
开发板所带操作系统:linux 3.6.9
裸机程序编译工具:IAR Embedded Workbench for ARM 6.60
裸机程序调试工具:J-LINK
程序需要做以下修改:
将主程序使用的TWI0改成TWI1,以适应开发板。
main.c文件:
全局变量:
static const Pin pinsSsc[] = {PINS_TWI0, PINS_SSC_CODEC, PIN_PCK0};
改成:
static const Pin pinsSsc[] = {PINS_TWI1, PINS_SSC_CODEC, PIN_PCK0};
main函数里:
PMC_EnablePeripheral(ID_TWI0);
TWI_ConfigureMaster(TWI0, TWI_CLOCK, BOARD_MCK);
TWID_Initialize(&twid, TWI0);
修改成:
PMC_EnablePeripheral(ID_TWI1);
TWI_ConfigureMaster(TWI1, TWI_CLOCK, BOARD_MCK);
TWID_Initialize(&twid, TWI1);
将主程序使用的TWI0改成TWI1,以适应开发板。
main.c文件:
全局变量:
static const Pin pinsSsc[] = {PINS_TWI0, PINS_SSC_CODEC, PIN_PCK0};
改成:
static const Pin pinsSsc[] = {PINS_TWI1, PINS_SSC_CODEC, PIN_PCK0};
main函数里:
PMC_EnablePeripheral(ID_TWI0);
TWI_ConfigureMaster(TWI0, TWI_CLOCK, BOARD_MCK);
TWID_Initialize(&twid, TWI0);
修改成:
PMC_EnablePeripheral(ID_TWI1);
TWI_ConfigureMaster(TWI1, TWI_CLOCK, BOARD_MCK);
TWID_Initialize(&twid, TWI1);
给开发板上电,启动开发板的linux操作系统,连续按下PC端键盘的空格键,使开发板停在U-Boot下,然后运行本例子
调试串口输出如下图所示菜单
调试串口输出如下图所示菜单
如果按下PC上的按键‘p’,则PC上播放的声音会从开发板HEADPHONE所接的耳机或音箱播放出来;
如果按下PC上的按键‘m’,则开发板上的MIC1咪头所接收到的声音将从HEADPHONE所接的耳机或音箱播放出来。