Datasheet
VS1053b Datasheet
9 FUNCTIONAL DESCRIPTION
9.6.5 SCI_DECODE_TIME (RW)
When decoding correct data, current decoded time is shown in this register in full seconds.
The user may change the value of this register. In that case the new value should be written
twice to make absolutely certain that the change is not overwritten by the firmware. A write to
SCI_DECODE_TIME also resets the byteRate calculation.
SCI_DECODE_TIME is reset at every hardware and software reset. It is no longer cleared
when decoding of a file ends to allow the decode time to proceed automatically with looped
files and with seamless playback of multiple files.
With fast playback (see the playSpeed extra parameter) the decode time also counts faster.
Some codecs (WMA and Ogg Vorbis) can also indicate the absolute play position, see the
positionMsec extra parameter in section 10.11.
9.6.6 SCI_AUDATA (RW)
When decoding correct data, the current samplerate and number of channels can be found
in bits 15:1 and 0 of SCI_AUDATA, respectively. Bits 15:1 contain the samplerate divided by
two, and bit 0 is 0 for mono data and 1 for stereo. Writing to SCI_AUDATA will change the
samplerate directly.
Example: 44100 Hz stereo data reads as 0xAC45 (44101).
Example: 11025 Hz mono data reads as 0x2B10 (11024).
Example: Writing 0xAC80 sets samplerate to 44160 Hz, stereo mode does not change.
To reduce digital power consumption when idle, you can write a low samplerate to SCI_AUDATA.
Note: Ogg Vorbis decoding overrides AUDATA change. If you want to fine-tune samplerate in
streaming applications with Ogg Vorbis, use SCI_CLOCKF to control the playback rate instead
of AUDATA.
9.6.7 SCI_WRAM (RW)
SCI_WRAM is used to upload application programs and data to instruction and data RAMs.
The start address must be initialized by writing to SCI_WRAMADDR prior to the first write/read
of SCI_WRAM. As 16 bits of data can be transferred with one SCI_WRAM write/read, and the
instruction word is 32 bits long, two consecutive writes/reads are needed for each instruction
word. The byte order is big-endian (i.e. most significant words first). After each full-word
write/read, the internal pointer is autoincremented.
Version: 1.22, 2014-12-19 43