Datasheet
VS1053b Datasheet
10 OPERATION
You can see that in the invalid read the low part wraps from 0x0000 to 0xffff while the high part
stays the same. In this case the second read gives a valid answer, otherwise always use the
value of the first read. The second read is needed when it is possible that the low part wraps
around, changing the high part, i.e. when the low part is small. bytesLeft is only decreased
by one at a time, so a reread is needed only if the low part is 0.
10.11.1 Common Parameters
These parameters are common for all codecs. Other fields are only valid when the correspond-
ing codec is active. The currently active codec can be determined from SCI_HDAT1.
Parameter Address Usage
version 0x1e02 Structure version – 0x0003
config1 0x1e03 Miscellaneous configuration
playSpeed 0x1e04 0,1 = normal speed, 2 = twice, 3 = three times etc.
byteRate 0x1e05 average byterate
endFillByte 0x1e06 byte to send after file
jumpPoints[8] 0x1e16-25 Packet offsets for WMA and AAC
latestJump 0x1e26 Index to latest jumpPoint
positionMsec 0x1e27-28 File position in milliseconds, if available
resync 0x1e29 Automatic resync selector
The fuse-programmed ID is read at startup and copied into the chipID field. If not available,
the value will be all zeros. The version field can be used to determine the layout of the rest
of the structure. The version number is changed when the structure is changed. For VS1053b
the structure version is 3.
config1 controls MIDI Reverb and AAC’s SBR and PS settings.
playSpeed makes it possible to fast forward songs. Decoding of the bitstream is performed,
but only each playSpeed frames are played. For example by writing 4 to playSpeed will play
the song four times as fast as normal, if you are able to feed the data with that speed. Write 0
or 1 to return to normal speed. SCI_DECODE_TIME will also count faster. All current codecs
support the playSpeed configuration.
byteRate contains the average bitrate in bytes per second for every code. The value is updated
once per second and it can be used to calculate an estimate of the remaining playtime. This
value is also available in SCI_HDAT0 for all codecs except MP3, MP2, and MP1.
endFillByte indicates what byte value to send after file is sent before SM_CANCEL.
jumpPoints contain 32-bit file offsets. Each valid (non-zero) entry indicates a start of a packet
for WMA or start of a raw data block for AAC (ADIF, .mp4 / .m4a). latestJump contains the
index of the entry that was updated last. If you only read entry pointed to by latestJump you
do not need to read the entry twice to ensure validity. Jump point information can be used to
Version: 1.22, 2014-12-19 61