//正弦测试 跟1053区别在于 测试指令多了8byte 以下代码可用
void VS2_Sine_Test(void)
{
VS2_HD_Reset();
VS2_WR_Cmd(SPI_VOL,0X2020); //设置音量
VS2_WR_Cmd(SPI_MODE,0x0820);//进入VS210XX的测试模式
while(VS2_DQ==0); //等待DREQ为高
//printf("mode sin:%x\n",VS2_RD_Reg(SPI_MODE));
//向VS210XX发送正弦测试命令:0x53 0xef 0x6e n 0x00 0x00 0x00 0x00
//其中n = 0x24, 设定VS210XX所产生的正弦波的频率值,具体计算方法见VS10XX的datasheet
VS2_SPI_SpeedLow();//低速
VS2_XCS=0;//选中数据传输
VS2_SPI_ReadWriteByte(0x53);
VS2_SPI_ReadWriteByte(0xef);
VS2_SPI_ReadWriteByte(0x6e);
VS2_SPI_ReadWriteByte(0x24);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
delay_ms(100);
VS2_XCS=1;
//退出正弦测试
VS2_XCS=0;//选中数据传输
VS2_SPI_ReadWriteByte(0x45);
VS2_SPI_ReadWriteByte(0x78);
VS2_SPI_ReadWriteByte(0x69);
VS2_SPI_ReadWriteByte(0x74);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
delay_ms(100);
VS2_XCS=1;
//再次进入正弦测试并设置n值为0x44,即将正弦波的频率设置为另外的值
VS2_XDCS=0;//选中数据传输
VS2_SPI_ReadWriteByte(0x53);
VS2_SPI_ReadWriteByte(0xef);
VS2_SPI_ReadWriteByte(0x6e);
VS2_SPI_ReadWriteByte(0x44);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
delay_ms(100);
VS2_XCS=1;
//退出正弦测试
VS2_XCS=0;//选中数据传输
VS2_SPI_ReadWriteByte(0x45);
VS2_SPI_ReadWriteByte(0x78);
VS2_SPI_ReadWriteByte(0x69);
VS2_SPI_ReadWriteByte(0x74);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
delay_ms(100);
VS2_XCS=1;
}
//ram 测试
//返回值:RAM测试结果
// VS21003如果得到的值为0x807F,则表明完好;VS21053为0X83FF.
u16 VS2_Ram_Test(void)
{ u16 temp;
VS2_HD_Reset();
VS2_WR_Cmd(SPI_MODE,SM_SDINEW|SM_SDISHARE|SM_TESTS);// 进入VS210XX的测试模式
while (VS2_DQ==0); // 等待DREQ为高
VS2_SPI_SpeedLow();//低速
VS2_XDCS=0; // xDCS = 1,选择VS210XX的数据接口
VS2_SPI_ReadWriteByte(0x4d);
VS2_SPI_ReadWriteByte(0xea);
VS2_SPI_ReadWriteByte(0x6d);
VS2_SPI_ReadWriteByte(0x54);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
VS2_SPI_ReadWriteByte(0x00);
delay_ms(100);
VS2_XDCS=1;
temp = VS2_RD_Reg(SPI_HDAT0);// VS1003如果得到的值为0x807F,则表明完好;VS1053或VS1053 为0X83FF.;
return temp;
}
mp3 encod init 12000hz 8kbps
void ENCODE_Init(void)
{
LoadUserCode();
VS2_WR_Cmd(SPI_BASS,0x0000);
VS2_WR_Cmd(SPI_RECRATE,12000);
VS2_WR_Cmd(SPI_RECGAIN, 1024); /* 1024 = gain 1 = best quality */
VS2_WR_Cmd(SPI_RECMODE, RM_63_FORMAT_MP3 | RM_63_ADC_MODE_MONO);
VS2_WR_Cmd(SPI_CLOCKF,HZ_TO_SC_FREQ(12288000) | SC_MULT_53_50X | SC_ADD_53_00X);
VS2_WR_Cmd(SPI_RECQUALITY, RQ_MODE_CBR | RQ_MULT_1000 | 8);
VS2_WR_Cmd(SPI_MODE,0x1804);//|SM_LINE_IN ); //MIC,录音激活
delay_ms(5); //等待至少1.35ms
} |