VS1003中的主要寄存器

    xiaoxiao2023-03-24  4

    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) 用于访问用户应用程序。
    转载请注明原文地址: https://ju.6miu.com/read-1201725.html
    最新回复(0)