VS1063A Errata

Designing hardware that uses VLSI Solution's devices as slave codecs such as an external MP3 decoder chip for a host microcontroller.
Post Reply
User avatar
pasi
VLSI Staff
Posts: 2120
Joined: Thu 2010-07-15 16:04

VS1063A Errata

Post by pasi »

Get "VS1063a Patches" package from http://www.vlsi.fi/en/support/software/ ... tches.html.

There are some things that we have encountered in vs1063a testing this far:
  • Sine test (and other tests) started through SDI requires additional 7-8 zero bytes to be sent.
  • Encoding (especially) with 48kHz rate can leave the monitoring volume at zero (off) when SCI_VOL is 0. Workaround: Start the encoding with non-zero SCI_VOL (and update it later if you want full volume).
    - Fixed in vs1063a-patches package v1.03.
  • MP3 encoding uses a wrong huffman code in one of the encoding tables, causing high-frequency noise. Seems to be highly dependent on the audio material.
    - Fixed in vs1063a-patches package v1.03.
  • 20110930: When using codec mode without headers, the playback rate is set to adcrate (48/24/12kHz) instead of the requested rate.
    Workaround: write correct playback rate to SCI_AUDATA after DREQ has risen.
    - Fixed in vs1063a-patches package v1.10.
  • 20111027: Disabling, then enabling ADC (DECIM) can cause channels to be swapped.
    • If encoding twice without hardware reset in-between, channels can be swapped.
    • If encoding after using ADMixer (without hw reset in-between), channels can be swapped.
    • If using ADMixer after encoding (without hw reset in-between), channels can be swapped.
    • If using ADMixer with two different rates (without hw reset in-between), channels can be swapped.
    • Switching ADMixer on/off with the same rate is ok. (If no software reset in-between.)
    Workaround1: give a hardware reset (or watchdog reset) after each encoding and change of ADMixer rate.
    Workaround2: when you re-activate ADC (DECIM) use a special routine to detect/fix channel swap.
    - Encoding/codec mode fixed in vs1063a-patches package v1.10
    - ADMixer fixed in vs1063a-patches package v1.2
  • 20111031: MP3 encoding overwrites quantizer selectors for the highest used band (13-16kHz).
    - Fixed in vs1063a-patches package v1.10.
  • 20111103: When using codec mode without headers with PCM mode there is no sound output because the sample size defaults to 0 bits.
    - Fixed in vs1063a-patches package v1.11
  • 20111114: MP4 decoding is lacking one StreamDiscard()
    - Fixed in vs1063a-patches package v1.2
  • 20111116: FLAC decoding does not set DO_NOT_JUMP bit during header decode.
    - Fixed in vs1063a-patches package v1.2
  • 20111122: ADMixer reads configuration from wrong variable (thus always stereo 192k).
    - Fixed in vs1063a-patches package v1.2
  • 20111124 FEATURE: codec mode does not support 16kHz/32kHz.
    - Fixed in vs1063a-patches package v1.3
  • 20120301 AEC crashes the encoding mode. Reason is still unknown, but routing the AEC calls through additional stub functions seem to prevent the crashes.
    - Workaround: stub functions in vs1063a-patches package v1.31 prevents AEC from crashing
  • 20120302 Encoding/codec mode can set the wrong playback rate if AIADDR is read or written (and perhaps on some other case).
    - Fixed in vs1063a-patches package v1.31
  • 20120817 ADTS decoding left error variable uncleared. (Can cause no audio to be decoded if a frame has a non-audio element before the first audio element.)
    - Fixed in vs1063a-patches package v1.34
  • 20120823 The tentative support for AAC short frames (960/120 samples) has a few problems with syntax and eight_short_frame audio frames. (Note: you need to have a higher XTAL and lie about it to get correct playback speed.)
    - Fixed for ADTS in vs1063a-patches package v1.4, added a short frame selection to parametric_x.config1.
  • 20121130 SPI boot does not mask the idle state of MISO correctly for SPI memories with 24/32-bit address. Boot fails if MISO (GPIO2) is pulled up.
    - Workaround: MISO (GPIO2) should have a pull-down resistor for SPI boot to work (like all chips before vs1053b).
  • 20130116 MP4 atom parsing thought some atoms has subatoms when they actually did not.
    - Fixed in vs1063a-patches package v1.46.
  • 20130607 Codec mode with 24kHz/48kHz in u-law or A-law mode. The playback part is only called once at most per encoded sample, so audio output starves and does not catch up.
    - Fixed in vs1063a-patches package v1.50.
  • 20130607 MP3 encoder: vector quantization sometimes tries to use an invalid value combination, producing strange results.
    - Fixed in vs1063a-patches package v1.50.
  • 20130614 AEC with higher sample rates (especially with g.722) runs out of CPU, because the filter length is just too long for the higher rates. Low output signal and high amplification causes the coefficients to be saturated, and performance to drop.
    - Fixed in vs1063a-patches package v1.60.
  • 20140411 ADC mono-downmix mode only takes the left channel.
    - Fixed in vs1063a-patches package v1.66.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
User avatar
pasi
VLSI Staff
Posts: 2120
Joined: Thu 2010-07-15 16:04

Re: VS1063A Errata

Post by pasi »

If you want to disable the feature drop of AAC playback in vs1063a or vs1053b, write 0x8032 to SCI_WRAMADDR, then 0x2000, 0x0000, 0x0000, 0x0024 to SCI_WRAM.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
User avatar
pasi
VLSI Staff
Posts: 2120
Joined: Thu 2010-07-15 16:04

Re: VS1063A Errata

Post by pasi »

The codec decoding WAV parser is very simplified. It's as simplified that you should only send the WAV file/header and no other bytes to SDI after starting the codec mode.

If you absolutely need to send bytes to SDI after starting codec mode but before sending the WAV data, send multiples of 4 bytes.
Visit https://www.facebook.com/VLSISolution VLSI Solution on Facebook
Post Reply