This document provides an overview of End System Integration and Factory Test Calibration Process for TAS2563 (6.1-W Boosted Class-D Audio Amplifier With Integrated DSP And IV Sense). It will cover binary and configuration files export in PPC3 and some of the common programming sequences for device driver in the end system.
All other trademarks are the property of their respective owners.
Binary and FTCFG files are the necessary files required by the driver for end system integration. These files contain all of the tuning, speaker characteristic data, and register data. To follow the implementation flowchart, binary and CFG files dumping should only be done after characterization, device configuration, and tuning. End system integration process can be accessed by selecting the “End System Integration” in the Device Home page.
Select “Dump Binary/Header files” to generate binary file and select “Next” to continue. Note that “Tuning and debugging in System” option is available for users to tune and debug after TAS2563 is integrated in users’ system.
Select the desired configurations for the binary file. Multiple configurations of the tuning data can be generated. For example, a tuning data for music playing and another for notification chime. Once it is complete, please select “Next” to continue.
Assign the tuning snapshot previously saved during “Tuning and Audio Processing” page to each configurations. Please name the file folder and assign the path to save the files. In addition, Various data can be read through the ASI Record Channel (shown in Figure 1-5) to suit the system application. The ASI Record Channel can be accessed by the gear icon in the top right corner. An example application of "Audio In & Out" in ASI Record Channel can be used for echo reference. Select “Next” to begin configuring the .ftcfg file for factory test calibration.
Steps 1 to 4 cover the settings for the binary file. Before users are able to export the binary file, please continue to the next section to complete the FTC configuration.
Speaker parameters can vary from the vendor datasheet with a tolerance, and each speaker may vary from each other as well. This can lead to inaccurate speaker protection when one speaker model is used to fit all speakers. For this reason TI’s Smart Amp algorithms can be calibrated accordingly to each speaker variance to ensure proper and accurate function of speaker protection. The FTC is performed to calibrate the Smart Amp algorithm and protect the speaker from parameter variations. The FTC obtains the speaker Re, f0, Q, and voice coil temperature as seen below in step three of FTC Process shown below.
Define the Pass/Fail Limits of each parameter based on the speaker datasheet tolerance or on the application requirement. Select “Next” to generate the binary, ftcfg, cfg, and header files
In some cases, if the speaker parameter tolerances are not defined in the speaker datasheet, it is recommended to use Re variation as the limits for Re, and 6-Sigma deviation of Re variation as the variation limits for the rest of the speaker parameters
This the summary page of the configuration. The binary, ftcfg, cfg, and header files should be available in the saved path. Select the highlighted text to open the file directory or “Finish” to exit the wizard.
The folllowing figure shows the generated files from PPC3 end system integration dumping.
All of the tuning, configuration, and characteristic data are stored in the binary file with extension .bin (e.g. TAS2563_demo.bin). The binary file will be used by the driver to initialize the speaker.
The debug_cfg, json file, and headers folder contain the segmented tuning data in .cfg, .json, .h format, respectively, for necessary debugging purposes.
The factory test calibration file with extension .ftcfg contains the pass/fail limit for model calibration of each speaker during the factory test phase.
For more information on the End System Integration process, users can also reference to TAS2555 End-System Integration Guide or TAS2555, TAS2557, and TAS2559 Factory Test and Calibration Guide. This mark the final step of the implmentation flowchart described in the TAS2563 Quick Start Guide
Once this step is complete, users are ready to integrate the Smart Amp with the driver. Proceed to Section 3 for driver integration.
This section describes the sequence of programming by the device driver in the end system. The sequence of programming depends on the state in which the end system is currently in. Each state serves a specific purpose as listed below.
Case 1: Initialization - Programming TAS2563 for the first time
Case 2: Power up - Play audio content
Case 3: New Configuration - Reconfigure TAS2563 with same program and same PLL
Case 4: New Configuration and PLL - Reconfigure TAS2563 with same program and different PLL
Case 5: New Configuration and Program - Reconfigure TAS2563 with different program
Example device driver code is available with TI. Users can use the example driver to port to their platform.
The dumped .bin file has various definitions (see the following code snippet).
#define TAS2563_BLOCK_PLL 0x00
#define TAS2563_BLOCK_PGM_ALL 0x0d
#define TAS2563_BLOCK_PGM_DEV_A 0x01
#define TAS2563_BLOCK_PGM_DEV_B 0x08
#define TAS2563_BLOCK_CFG_COEFF_DEV_A 0x03
#define TAS2563_BLOCK_CFG_COEFF_DEV_B 0x0a
#define TAS2563_BLOCK_CFG_PRE_DEV_A 0x04
#define TAS2563_BLOCK_CFG_PRE_DEV_B 0x0b
#define TAS2563_BLOCK_CFG_POST 0x05
#define TAS2563_BLOCK_CFG_POST_POWER 0x06
Since TAS2563 supports different application (such as Mono and TAS2563 Dual-Mono system), it is possible that not all blocks are present in one application. If a block is not present, that step can be skipped.
For Section 3.1 through 3.5, please use the following annotation for device applications.
[A]: applies to device A
[B]: applies to device B
[AB] applies to both device A and B
Programming TAS2563 for the first time
Use case: device initialization during system boot up
Status: DSP program memory and coefficient memory are empty. Assuming configuration 0 is the default tuning data.
Steps to playback:
Hardware reset the device
It is strongly recommended to hardware reset the device for reliable operation before initialization
Software reset the device
It is strongly recommended to software reset the device for reliable operation before initialization
Initialization
This code is not part of the binary file. The purpose of this step is to format ASI selection, IRQ configuration, and other relevant system configurations For both TAS2563 Mono and Stereo application:
[A] See TAS2563 Mono/Stereo Driver
int tas2563_load_default(struct tas2563_priv *pTAS2563)
[AB] See TAS2563 Mono/Stereo Driver
int tas2563_load_default(struct tas2563_priv *pTAS2563)
Download the Program
[AB] Load TAS2563_BLOCK_PGM_ALL of configuration 0 in broadcasting mode
[A] Load TAS2563_BLOCK_PGM_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_PGM_DEV_B of configuration 0
Download PLL
For TAS2563 Mono application:
[A] Load TAS2563_BLOCK_PLL of configuration 0
For TAS2563 Stereo application:
[AB] Load TAS2563_BLOCK_PLL of configuration 0
Download the pre-data of the configuration
[A] Load TAS2563_BLOCK_CFG_PRE_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_PRE_DEV_B of configuration 0
Download the coefficient
[A] Load TAS2563_BLOCK_CFG_COEFF_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_COEFF_DEV_B of configuration 0
Download calibration data if present
[A] Load TAS2563_BLOCK_CFG_CAL_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_CAL_B of configuration 0
Initialization Complete; Proceed to next step for Audio Playback
Feed the PLL clock. Audio stream may start any time after this step
[A/AB] Unmute; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Steps to sleep:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Turn off PLL Clock
Play audio content
Power up: TAS2563 has been programmed, and there is no changed needed for configuration
Use case: Power up device to play audio content
Status: DSP program memory and coefficient memory have been programmed. Assuming configuration 0 is the default tuning data.
Steps to playback:
Feed the PLL clock. Audio stream may start any time after this step.
[A/AB] Unmute; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Steps to sleep:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Turn off PLL Clock
Reconfigure TAS2563 with same program and same PLL
Use case: Switch to another tuning (PPC3 snapshot) during music playback. Assuming the new configuration is X.
Status: DSP program memory has been programmed but coefficients need to be updated.
Steps to playback:
Skip Step 3 and 4 if audio or music is playing. Stop after Step 2 if audio or music is not playing.
Download the coefficient
[A] Load TAS2563_BLOCK_CFG_COEFF_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_COEFF_DEV_B of configuration 0
Download calibration data if present
[A] Load TAS2563_BLOCK_CFG_CAL_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_CAL_B of configuration 0
Feed the PLL Clock. Audio stream may start any time after this step.
[A/AB] Unmute; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Steps to sleep:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Turn off PLL Clock
Reconfigure tuning data and different PLL with the same program
Use case: Device is in playback with 48 kHz sample rate and needs to switch to music playback with 44.1 kHz sample rate. Assuming the new configuration index is X
Status: DSP program memory has been programmed but coefficients and PLL need to be updated.
Steps to playback:
[AB] if the music is playing and the devices are running, load the mute sequence to shutdown. If the music is not playing, skip Step 1, 6, and 7
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Download PLL
For TAS2563 Mono application:
[A] Load TAS2563_BLOCK_PLL of configuration 0
For TAS2563 Stereo application:
[AB] Load TAS2563_BLOCK_PLL of configuration 0
Download the pre-data of the configuration
[A] Load TAS2563_BLOCK_CFG_PRE_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_PRE_DEV_B of configuration 0
Download the coefficient
[A] Load TAS2563_BLOCK_CFG_COEFF_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_COEFF_DEV_B of configuration 0
Download calibration data if present
[A] Load TAS2563_BLOCK_CFG_CAL_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_CAL_B of configuration 0
Feed the PLL clock. Audio stream may start any time after this step
[A/AB] Unmute; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Steps to sleep:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Turn off PLL Clock
Reconfigure TAS2563 and reprogram the DSP
Use case: Change from speaker protection mode (tuning mode) to ROM1 mode for factory testing. Assuming the new configuration index is X.
Status: DSP program memory and coefficients needs to be reprogrammed.
Steps to playback:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Hardware reset the device
It is strongly recommended to hardware reset the device for reliable operation before initialization
Software reset the device
It is strongly recommended to software reset the device for reliable operation before initialization
Initialization
This code is not part of the binary file. The purpose of this step is to format ASI selection, IRQ configuration, and other relevant system configurations. For both TAS2563 Mono and Stereo application; This code is not part of the binary file:
[A] See TAS2563 Mono/Stereo Driver
int tas2563_load_default(struct tas2563_priv *pTAS2563)
[AB] See TAS2563 Mono/Stereo Driver
int tas2563_load_default(struct tas2563_priv *pTAS2563)
Download the Program
[AB] Load TAS2563_BLOCK_PGM_ALL of configuration 0 in broadcasting mode
[A] Load TAS2563_BLOCK_PGM_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_PGM_DEV_B of configuration 0
Download PLL
For TAS2563 Mono application:
[A] Load TAS2563_BLOCK_PLL of configuration 0
For TAS2563 Stereo application:
[AB] Load TAS2563_BLOCK_PLL of configuration 0
Download the pre-data of the configuration
[A] Load TAS2563_BLOCK_CFG_PRE_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_PRE_DEV_B of configuration 0
Download the coefficient
[A] Load TAS2563_BLOCK_CFG_COEFF_DEV_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_COEFF_DEV_B of configuration 0
Download calibration data if present
[A] Load TAS2563_BLOCK_CFG_CAL_A of configuration 0
[B] Load TAS2563_BLOCK_CFG_CAL_B of configuration 0
Initialization Complete; Proceed to next step for Audio Playback
If the music is playing, continue to Step 12. If the music is not playing, stop at Step 10
Feed the PLL clock. Audio stream may start any time after this step
[A/AB] Unmute; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Steps to sleep:
[AB] mute and shutdown TAS2563; This code is not part of the binary file.
static int tas2563_mute(struct snd_soc_dai *dai, int mute)
Turn off PLL Clock
This document serves as an overview of the End System Integration specifically for TAS2563. The End System Integration is the last step of the whole development process; however, PPC3 also offer “Tuning and debugging in System” option for direct tuning and debuggin after the device is integrated with the host system. For more information about the development process please refer to the TAS2563 Product page, TAS2563 Quick Start Guide, or visit us on the E2E Forum.
TI PROVIDES TECHNICAL AND RELIABILITY DATA (INCLUDING DATASHEETS), DESIGN RESOURCES (INCLUDING REFERENCE DESIGNS), APPLICATION OR OTHER DESIGN ADVICE, WEB TOOLS, SAFETY INFORMATION, AND OTHER RESOURCES “AS IS” AND WITH ALL FAULTS, AND DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS. |
These resources are intended for skilled developers designing with TI products. You are solely responsible for (1) selecting the appropriate TI products for your application, (2) designing, validating and testing your application, and (3) ensuring your application meets applicable standards, and any other safety, security, or other requirements. These resources are subject to change without notice. TI grants you permission to use these resources only for development of an application that uses the TI products described in the resource. Other reproduction and display of these resources is prohibited. No license is granted to any other TI intellectual property right or to any third party intellectual property right. TI disclaims responsibility for, and you will fully indemnify TI and its representatives against, any claims, damages, costs, losses, and liabilities arising out of your use of these resources. |
TI’s products are provided subject to TI’s Terms of Sale (www.ti.com/legal/termsofsale.html) or other applicable terms available either on ti.com or provided in conjunction with such TI products. TI’s provision of these resources does not expand or otherwise alter TI’s applicable warranties or warranty disclaimers for TI products. |
Mailing Address: Texas Instruments, Post Office Box 655303, Dallas, Texas 75265
Copyright © 2020, Texas Instruments Incorporated |