초보의 아웅다웅 설계하기/Adstar

USB Device Mode - MSC(mass storage class)

로망와니 2023. 2. 25. 15:53

Sound를 사용한다면 ADSTAR에서 제공하는 MSC에 들어가기 전에 Sound Clock의 설정을 변경하지 않으면 정상 동작 하지 않는 것 같습니다.

ADSTAR에서 제공하는 내부 라이브러리를 확인하지 않았지만 통신중에 케이블이 빠지거나 하면 어디선가에서 무한루프에 빠져 멈춰버리고 맙니다. 만일 MSC가 주요 기능이라면 내부 라이브러리의 수정이 불가피해 보입니다.

 

sound_init();함수 사용시 내부의 클럭 초기화 설정

void sound_clock_init()
{
PMU_WRITE_ENABLE;
if(SND_OUTPUT_CHANNEL>1)//DIGITAL MOD
*(vU32*)R_SNDCLKCON = F_SNDCLKCON_DMCLKSRC_PLLCLK;//PLL0
else
*(vU32*)R_SNDCLKCON = F_SNDCLKCON_I2S_APBCLK|F_SNDCLKCON_I2S_SRCCLK4; //54/4=13Mhz
PMU_WRITE_DISABLE;
}

 

 

/* R_SNDCLKCON 레지스터의 초기값으로 변경 0x1010*/

void sound_clock_disable()
{
PMU_WRITE_ENABLE;
*(vU32*)R_SNDCLKCON = 0x1010;
PMU_WRITE_DISABLE;
}