当前位置:   article > 正文

VS1003中的寄存器_vs1003寄存器

vs1003寄存器
VS1003 共有 16 个 16 位的寄存器, 地址分别为 0x0 – 0xF; 除了模式寄存器 (MODE, 0x0) 和状态寄存器 (STATUS,
0x1)在复位后的初始值分别为 0x800 和 0x3C 外,其余的寄存器在 VS1003 初始化后的值均为 0。下面将 VS1003
各寄存器逐一介绍:
1)MODE(地址 0x0;RW,可读写)
模式寄存器在 VS1003 中是一个较为重要的寄存器,其每一位都对应着 VS1003 的不同设置。
●bit0:SM_DIFF
SM_DIFF = 0 正常音频相位
SM_DIFF = 1 左声道反转
当 SM_DIFF 置位时,VS1003 将左声道反相输出,立体声输入将产生环绕效果,对于单声道
输入将产生差分(反相)左/右声道信号。
●bit1:SM_SETTOZERO
置零
●bit2:SM_RESET
SM_RESET = 1,VS1003软复位。软复位之后该位会自动清零。
●bit3:SM _OUTOFWAV
SM _OUTOFWAV = 1,停止WAW解码。
当你要中途停止WAV、 WMA或者MIDI文件的解码时, 置位SM _OUTOFWAV, 并向VS1003
[- 6 -]
持续发送数据(对于WAV文件发送0)直到将SM _OUTOFWAV清零;同时SCI_HDAT1也将
被清零。
● bit4: SM_PDOWN
SM_PDOWN = 1,软件省电电模式,该模式不及硬件省电模式(由VS1003的xReset激活)
●bit5:SM_TESTS
SM_TESTS = 1,进入SDI测试模式。
●bit6:SM_STREAM
SM_STREAM = 1,使能VS1003的流模式,具体请参考应用笔记VS10XX。
●bit7:SM_PLUSV
SM_PLUSV = 1,MP3 + V解码使能。
●bit8:SM_DACT
SM_DACT = 0,SCLK上升沿有效;SM_DACT = 1,SCLK下降沿有效。
●bit9:SM_SDIORD
SM_SDIORD = 0,SDI总线字节数据MSB在前,即须先发送MSB;
SM_SDIORD = 1,SDI总线字节数据LSB在前,即须先发送LSB;
[- 7 -]
该位的设置不会影响SCI总线。
● bit10: SM_SDISHARE
SM_SDISHARE = 1,SDI与SCI将共用一个片选信号(同时SM_SDINEW = 1),即将xDCS
与xCS这两根信号线合为一条,能省去一个IO口。
●bit11:SM_SDINEW
SM_SDINEW = 1,VS1002本地模式(新模式)。VS1003在启动后默认进入该模式。
注:这里的模式指的是总线模式。
●bit12:SM_ADPCM
SM_ADPCM = 1,ADPCM录音使能。
同时置位SM_ADPCM和SM_RESET将使能VS1003的IMA ADPCM录音功能。
●bit13:SM_ADPCM_HP
SM_ADPCM_HP = 1,使能ADPCM高通滤波器。
同时置位SM_ADPCM_HP 、SM_ADPCM和SM_RESET将开启ADPCM录音用高通滤波器,
对录音时的背景噪音有一定的抑制作用。
●bit14: SM_LINE_IN
录音输入选择,SM_LINE_IN = 1,选择线入(line in);SM_LINE_IN = 0,选择麦克风输
[- 8 -]
入(默认)
2) SCI_STATUS(0x1,RW)
SCI_STATUS为VS1003的状态寄存器,提供VS1003当前状态信息。
3) SCI_BASS(0x2,RW)
重音/高音设置寄存器。
VS1003的内置的重音增强器VSBE是种高质量的重音增强DSP算法,能够最大限度的避免音频
削波。当SB_AMPLITUDE(bit:7-4)不为零时,重音增强器将使能。可以根据个人需要来设
置SB_AMPLITUDE。例如,SCI_BASS = 0x00f6,即对60Hz以下的音频信号进行15dB的增强。
当ST_AMPLITUDE(bit:15-12)不为零时,高音增强将使能。例如,SCI_BASS = 0x7a00,
即10kHz以上的音频信号进行10.5dB的增强。
4) SCI_CLOCKF(0x3,RW)
在VS1003种对该寄存器的操作有别于VS10x1和VS1002。
●SC_MULT(bit: 15-13) 时钟输入XTALI的倍频设置, 设置之后将启动VS1003内置的倍频器。
●SC_ADD(bit:12-11)
用于在WMA流解码时给倍频器增加的额外的倍频值。
●SC_FREQ(bit:10-0)
当XTALI输入的时钟不是12.288M时才需要设置该位段,其默认值为0,即VS1003默认使用
的是12.288M的输入时钟。
[- 9 -]
5) SCI_DECODE_TIME(0x4,RW)
解码时间寄存器。当进行正确的解码时,读取该寄存器可以获得当前的解码时长(单位为秒)。
可以更改该寄存器的值,但是新值须要对该寄存器进行两次写操作。在每次软件复位或是WAV
(PCM、IMA ADPCM、WMA、MIDI)解码开始与结束时SCI_DECODE_TIME的值将清零。
6) SCI_AUDATA(0x5,RW)
当进行正确的解码时,该寄存器的值为当前的采样率(bit:15-1)和所使用的声道(bit:0)。
采样率须为2的倍数;bit0 = 0,单声道数据,bit0 = 1,立体声数据。写该寄存器将直接改变
采样率。
7) SCI_WRAM(0x6,RW)
该寄存器用来加载用户应用程序和数据到VS1003的指令和数据RAM中。起始地址在SCI
_WRAMADDR 中进行设置,且 必须先于读写SCI_WRAM。对于16位的数据可以在进行一次
SCI_WRAM的读写中完成;而对于32位的指令字来说则需要进行两次连续读写。字节顺序是大
端模式,即高字节在前,低字节在后。在每一次完成全字读写后,内部指针将自动增加。
8) SCI_WRAMADDR(0x7,RW)
用于设置RAM读写的首地址。地址范围见数据手册P32。
9)SPI_HDAT0和SPI_HDAT1(0x8,0x9,R)
[- 10 -]
这两个寄存器用来存放所解码的音频文件的相关信息,为只读寄存器。
●当为WAV文件时,SPI_HDAT0 = 0x7761,SPI_HDAT1 = 0x7665;
●当为WMA文件时,SPI_HDAT0的值为解码速率(字节/秒),要转换为位率的话则将
SPI_HDAT0的值乘8即可,SPI_HDAT1 = 0x574D;
●当为MIDI文件时,SPI_HDAT0的值请参考数据手册P33,SPI_HDAT1 = 0x4D54;
●当为MP3文件时,SPI_HDAT0和SPI_HDAT1包含较为复杂的信息(来自于解压之后的MP3
文件头),包括当前正在解码的MP3文件的采样率、位率等,具体请参考数据手册P33-P34。
复位后SPI_HDAT0和SPI_HDAT1将清零。
10)SCI_AIADDR(0xA,RW)
用户应用程序的起始地址,初始化先于SCI _WRAMADDR和SCI_WRAM。如果没有使用任何
用户应用程序,则该寄存器不应进行初始化,或是将其初始化为零,具体请参考应用笔记
VS10XX。
11)SCI_VOL(0xB,RW)
音量控制寄存器。高八位用于设置左声道,低八位用于设置右声道。设置值为最大音量的衰减
倍数,步进值为0.5dB,范围为0到255。最大音量的设置值为0x0000,而静音为0xFFFF。例如,
左声道:-2.0dB,右声道:-3.5dB,则SCI_VOL = (4×256)+ 7 = 0x0407。
硬件复位将使SCI_VOL清零(最大音量),而软件复位将不改变音量设置值。
注:设置静音(SCI_VOL = 0xFFFF)将关闭模拟部分的供电。
12)SCI_AICTRL[x](0xC-0xF,RW)
用于访问用户应用程序。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/801112
推荐阅读
相关标签
  

闽ICP备14008679号