|
以下描述如何适当地启动VS1011/VS1003d,以及播放歌曲
1、适当地启动;
图1 VS1011/VS1002d正确启动连接
图1显示了正确连接VS1011/Vs1002d启动线路示意,它能减少启动关机时对耳机输出的瞬态冲击。
通电启动
● 系统通电,下拉电阻100K参与激活xRESET。
● 启动后等待10ms,设MCU的GPIO口为信号输出并置为1,VS1011/VS1002d即将启动。
● 在DREQ激活后,就可以对VS1011/VS1002d输送命令和数据。
卸除供电
● xRESET脚被解除应用至少100ms后,方能做此步。
● 通过操作以下仿C语言的操作,实现SS_APDOWN2功能 ,
WriteSPI(SPI_ STATUS, ReadSPI(SPI STATUS)| (1<<SS_APDOWN2));
(关于SS_APDOWN2,此为状态寄存器SCI_STATUS中第3位,关乎模拟驱动器电源卸载效果,由系统固件控制。为防止卸电时瞬态冲击,设此位为1,之后等待几毫秒才可重启操作。)
● 等待10 ms或更多时间。
● 激活xRESET。
● 实现VS1011/VS1002d的卸电功能。
2、拉低xRESET;
3、等待DREQ上升为1;
4、写寄存器MODE的参数,包括正确设置SM_SDINEW和SM_SDISHARED位;
5、若时钟数率非24.576MHz,应设置SCI_CLOCKF;
6、若使用倍频时钟,试图通过改变SCI_CLOCKF直接操作,应将适当的采样速率写入SCI_AUDATA寄存器,等待至少11000个时钟后才可以操作高速的SPI通讯;
(
倍频时钟的操作细节:
Highest SPI Speed
If VS1011 or VS1002d is used without a clock doubler, the maximum SPI speed is 1/6 of the internal clock speed CLKI, which is also the input clock frequency XTALI. If, for instance, the nominal 24.576MHz clock is used, the maximum SPI speed is 24.576MHz/6=4.096MHz , which is slightly over 4 MHz.However, if a low-frequency external clock is used, and the clock-doubler is to be activated, two initial register writes must be done to get the clock-doubler activated. Before that the maximum clock speed isXTALI/6 , which with a nominal 12.288 MHz clock is slightly over 2 MHz.
The following register write example is assuming a 12.288 MHz external clock:
1. After a software or hardware reset, first set your SPI clock speed to 2 MHz or lower.
2. Wait until DREQ is active.
3. Write the correct value 0x9800 to SCI_CLOCKF (as usual).
4. Set a sample rate to SCI_AUDATA, for instance 0x1f40 for 8000 Hz
5. After waiting for at least 11000 clock cycles, you may set your microcontroller SPI clock to upto 4 MHz and proceed sending your SCI and SDI data at the higher speed.
)
7、设置音量寄存器SCI_VOL;
8、若希望加强低音,设置寄存器SCI_BASS;
9、若采用RAM级的用户代码,装载这些数据,通过激活SCI_WRAM、SCI_WRAMADDR、SCI_AIADDR来实现功能;
10、开始传送音乐文件,注意DREQ的规则;
11、音乐完成播放,通过SDI再传送2048个零;
12、若曾使用用户代码,通过置零SCI_AIADDR关闭它;
13、转回第3步。
--本人翻译底子极其浅薄,有缺陷在所难免。给足面子吧,乡亲! |
|