Specifications
VLSI
Solution
y
VS1053b
VS1053B
9. 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.
9.11.1 Common Parameters
These parameters are common for all codecs. Other fields are only valid when the corresponding codec
is active. The currently active codec can be determined from SCI HDAT1.
Parameter Address Usage
chipID 0x1e00-01 Fuse-programmed unique ID (cosmetic copy of the fuses)
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 implement perfect fast
forward and rewind for WMA and AAC (ADIF, .mp4 / .m4a).
Version 1.01, 2008-05-22 59