[adStar EVM] SOUND MIXER 테스트 - WAV 파일 출력 하기
adStar는 SOUND MIXER 페리가 있어 오디오 출력을 쉽게 처리할 수 있다. 8bit/16bit, signed/unsigned, mono/stereo WAV와 MP3(software decoder)를 지원한다.
4개의 사운드 출력 채널과 하나의 입력 채널이 있다. 0번 1번 채널은 I2S를 통한 출력이고, 2번 3번 채널은 digital modulator를 통한 출력이다.
SDK에서는 2번 채널을 디폴트 출력으로 사용하고, PORT0 2, 3에 맵핑되어 있다.
P0.2/SPWM2R_P/SPI0_MOSI/nCS1
P0.3/SPWM2R_N/SPI0_SCK/nCS2
참고로 채널을 변경하려면 STK LIB 소스에서 아래를 수정하면 된다.
#define SND_OUTPUT_CHANNEL 2
[adStar-EX EVM] 에서는 JP19에 P0.2, P0.3이 연결되어 있다.
I2S가 아닌 DIGITAL MODULATOR을 사용할 경우 아날로그 변환을 위한 필터가 필요하다.
테스트 보드에서는 아날로그 필터가 없기 때문에 예전에 제작 했던 [TPA-3110 EVM] D-AMP 를 사용하여 출력 테스트를 했다.
adStar WAV파일 출력 테스트 동영상
스위치 입력에 따라 SD Card의 WAV파일을 출력하는 간단한 테스트 동영상이다.
adStar WAV파일 출력 테스트 소스코드
int main()
{
int res;
SystemInit();
Led1Init();
Led2Init();
Led1On();
Led2Off();
Sw1Init();
Sw2Init();
U0_Init(BAUD_115200);
DebugPrint("adSstar EVM WAV test \r\n");
//파일 시스템 초기화
FATFS fs;
f_mount(DRIVE_SDCARD,&fs);
print_files("1:");
//사운드 출력 초기화
sound_init();
WAVE* pWave;
while(1)
{
if(GetSw1())
{
//WAV파일 불러와
pWave = sound_loadwav("1:wav2/welcom.wav");
//WAV파일 출력
sound_play(pWave);
//출력이 완료되면
while(sound_isplay(pWave));
//메모리 해제
sound_release(pWave);
Delay(300);
}
:
}