support Re/DeltaT/F0/Q readout during normal music playback (FTCLib: 1.0.0.5)
authorPeter Li <a0220410@ti.com>
Wed, 12 Apr 2017 00:37:05 +0000 (08:37 +0800)
committerPeter Li <a0220410@ti.com>
Wed, 12 Apr 2017 00:37:05 +0000 (08:37 +0800)
12 files changed:
Android.mk
factorytest.c
lib/libftc32.a
lib/libftc64.a
readme.txt
speaker_l.ftcfg [deleted file]
speaker_r.ftcfg [deleted file]
tas2557_ftc.h
tas2557_ftc_lib.h
tas2557dm_chk.c [new file with mode: 0755]
tas2557evm_aacspk_a.ftcfg [new file with mode: 0755]
tas2557evm_aacspk_b.ftcfg [new file with mode: 0755]

index 8790baffb8957a5e158d67b43ff41eda60bf1822..5f9584e7b3ab51d9fb853954cff93cd072763c1e 100755 (executable)
@@ -5,7 +5,8 @@ LOCAL_SRC_FILES += \
       factorytest.c \
       system.c \
       tas2557.c \
-      tas2557dm_ftc.c    
+       tas2557dm_ftc.c \
+       tas2557dm_chk.c
 
 LOCAL_C_INCLUDES += ${LOCAL_PATH}/
 
index cd82ac8b52a77cd49286a52be062b3ab52305a79..c5470db06f4468a8f7044985e62ef889aded2aea 100755 (executable)
@@ -41,6 +41,9 @@
 
 // Obtained from PurePath Console 3 (PPC3)
 #define PPC3_RE0             7.41   // Re0 (ohm)
+#define PPC3_FWARP           891
+#define PPC3_BL              0.814
+#define PPC3_MMS             0.0666
 #define PPC3_RTV             46.5   // Rtv (K/W)
 #define PPC3_RTM             78.2   // Rtm (K/W)
 #define PPC3_RTVA            2460   // Rtva (K/W)
@@ -61,7 +64,8 @@ void ExitWithHint(char *pHint)
 
 void InitFTCC(struct TFTCConfiguration *pFTCC)
 {
-       pFTCC->nCalibrationTime = 4000;
+       pFTCC->nCalibrationTime = 2000;
+       pFTCC->nPPC3_FS = 48000;
 
        pFTCC->bVerbose = false;
        pFTCC->bLoadCalibration = false;
@@ -72,6 +76,9 @@ void InitFTCC(struct TFTCConfiguration *pFTCC)
        pFTCC->nTSpkCharDevA.nReHi = PPC3_RE0*1.15;
        pFTCC->nTSpkCharDevA.nReLo = PPC3_RE0*0.85;
        pFTCC->nTSpkCharDevA.nPPC3_Re0 = PPC3_RE0;
+       pFTCC->nTSpkCharDevA.nPPC3_FWarp = PPC3_FWARP;
+       pFTCC->nTSpkCharDevA.nPPC3_Bl = PPC3_BL;
+       pFTCC->nTSpkCharDevA.nPPC3_Mms = PPC3_MMS;
        pFTCC->nTSpkCharDevA.nPPC3_RTV = PPC3_RTV;
        pFTCC->nTSpkCharDevA.nPPC3_RTM = PPC3_RTM;
        pFTCC->nTSpkCharDevA.nPPC3_RTVA = PPC3_RTVA;
@@ -86,6 +93,9 @@ void InitFTCC(struct TFTCConfiguration *pFTCC)
        pFTCC->nTSpkCharDevB.nReHi = PPC3_RE0*1.15;
        pFTCC->nTSpkCharDevB.nReLo = PPC3_RE0*0.85;     
        pFTCC->nTSpkCharDevB.nPPC3_Re0 = PPC3_RE0;
+       pFTCC->nTSpkCharDevB.nPPC3_FWarp = PPC3_FWARP;
+       pFTCC->nTSpkCharDevB.nPPC3_Bl = PPC3_BL;
+       pFTCC->nTSpkCharDevB.nPPC3_Mms = PPC3_MMS;
        pFTCC->nTSpkCharDevB.nPPC3_RTV = PPC3_RTV;
        pFTCC->nTSpkCharDevB.nPPC3_RTM = PPC3_RTM;
        pFTCC->nTSpkCharDevB.nPPC3_RTVA = PPC3_RTVA;
@@ -124,10 +134,14 @@ unsigned int RemoveComments(char *pData, char cCharacter, unsigned int nSize)
 void ReadValue(struct TFTCConfiguration *pFTCC, struct TSPKCharData *pSpk, char *pLine, char *pValue)
 {
        if (!strcmp(pLine, "CALIBRATION_TIME")) {pFTCC->nCalibrationTime = atoi(pValue); return;};
+       if (!strcmp(pLine, "FS_RATE")) {pFTCC->nPPC3_FS = atof(pValue); return;};
        if (!strcmp(pLine, "SPK_T_MAX")) {pSpk->nSpkTMax = atof(pValue); return;};
        if (!strcmp(pLine, "SPK_RE_TOL_PER")) {pSpk->nSpkReTolPer = atof(pValue); return;};
-       if (!strcmp(pLine, "SPK_RE_ALPHA")) {pSpk->nSpkReAlpha = atof(pValue); return;};
+       if (!strcmp(pLine, "PPC3_RE_ALPHA")) {pSpk->nSpkReAlpha = atof(pValue); return;};
        if (!strcmp(pLine, "PPC3_RE0")) {pSpk->nPPC3_Re0 = atof(pValue); return;};
+       if (!strcmp(pLine, "PPC3_FWARP")) {pSpk->nPPC3_FWarp = atof(pValue); return;};
+       if (!strcmp(pLine, "PPC3_BL")) {pSpk->nPPC3_Bl = atof(pValue); return;};
+       if (!strcmp(pLine, "PPC3_MMS")) {pSpk->nPPC3_Mms = atof(pValue); return;};
        if (!strcmp(pLine, "PPC3_RTV")) {pSpk->nPPC3_RTV = atof(pValue); return;};
        if (!strcmp(pLine, "PPC3_RTM")) {pSpk->nPPC3_RTM = atof(pValue); return;};
        if (!strcmp(pLine, "PPC3_RTVA")) {pSpk->nPPC3_RTVA = atof(pValue); return;};
@@ -155,6 +169,9 @@ void ftcc_print(struct TFTCConfiguration *pFTCC)
        printf(" SPKA SPK_RE_ALPHA   = %2.4f\n\r\n\r", pFTCC->nTSpkCharDevA.nSpkReAlpha);
        
        printf(" SPKA PPC3_RE0            = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Re0);
+       printf(" SPKA PPC3_FWARP          = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_FWarp);
+       printf(" SPKA PPC3_BL             = %2.6f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Bl);
+       printf(" SPKA PPC3_MMS            = %2.6f\n\r", pFTCC->nTSpkCharDevA.nPPC3_Mms);
        printf(" SPKA PPC3_RTV            = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTV);
        printf(" SPKA PPC3_RTM            = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTM);
        printf(" SPKA PPC3_RTVA           = %2.2f\n\r", pFTCC->nTSpkCharDevA.nPPC3_RTVA);
@@ -170,6 +187,9 @@ void ftcc_print(struct TFTCConfiguration *pFTCC)
        printf(" SPKB SPK_RE_ALPHA   = %2.4f\n\r\n\r", pFTCC->nTSpkCharDevB.nSpkReAlpha);
        
        printf(" SPKB PPC3_RE0            = %2.2f\n\r", pFTCC->nTSpkCharDevB.nPPC3_Re0);
+       printf(" SPKB PPC3_FWARP          = %2.2f\n\r", pFTCC->nTSpkCharDevB.nPPC3_FWarp);
+       printf(" SPKB PPC3_BL             = %2.6f\n\r", pFTCC->nTSpkCharDevB.nPPC3_Bl);
+       printf(" SPKB PPC3_MMS            = %2.6f\n\r", pFTCC->nTSpkCharDevB.nPPC3_Mms);
        printf(" SPKB PPC3_RTV            = %2.2f\n\r", pFTCC->nTSpkCharDevB.nPPC3_RTV);
        printf(" SPKB PPC3_RTM            = %2.2f\n\r", pFTCC->nTSpkCharDevB.nPPC3_RTM);
        printf(" SPKB PPC3_RTVA           = %2.2f\n\r", pFTCC->nTSpkCharDevB.nPPC3_RTVA);
@@ -243,6 +263,7 @@ int main(int argc, char *argv[])
        double nTemp = 20.0;
        int nArg = 1;
        bool bValidArg;
+       bool bSpkChk = false;
        char pHint[256];
        struct TFTCConfiguration sFTCC;
 
@@ -290,6 +311,11 @@ int main(int argc, char *argv[])
                        bValidArg = true;
                }
 
+               if (!strcmp(argv[nArg], "-m")) {
+                       bSpkChk = true;
+                       bValidArg = true;
+               }
+
                if (!bValidArg) {
                        sprintf(pHint, "don't know argument %s", argv[nArg]);
                        ExitWithHint(pHint);
@@ -302,6 +328,9 @@ int main(int argc, char *argv[])
                ftcc_print(&sFTCC);
        }
 
-       tas2557_ftc(nTemp, &sFTCC);
+       if (bSpkChk)
+               tas2557_chk(nTemp, &sFTCC);
+       else
+               tas2557_ftc(nTemp, &sFTCC);
        return 0;
 }
index 0d85d4afc8417469b73fb206a24df2e08e379ca8..861aaae500e6d1161f5385426ce3e36910c6e4cb 100644 (file)
Binary files a/lib/libftc32.a and b/lib/libftc32.a differ
index 3f2e2d9f9f1df669b00581513e7cae99c93404a5..e29a6f7ad2aadfba9a85bc9a168692aa95cd02e4 100644 (file)
Binary files a/lib/libftc64.a and b/lib/libftc64.a differ
index 77d3cdb2207ec0ef7fcfdb0f317e2939d6d8ac07..25f755de9232368ad4360a5e2d046cd93f6168fd 100755 (executable)
@@ -1 +1,2 @@
-./factorytest -t 25 -l speaker_l.ftcfg -r speaker_r.ftcfg -v
\ No newline at end of file
+To do speaker calibration $./factorytest -t 25 -l tas2557evm_aacspk_a.ftcfg -r tas2557evm_aacspk_b.ftcfg -v\r
+To do F0/Q/Re/Delta_tv readout : $./factorytest -t 25 -l tas2557evm_aacspk_a.ftcfg -r tas2557evm_aacspk_b.ftcfg -v -m
\ No newline at end of file
diff --git a/speaker_l.ftcfg b/speaker_l.ftcfg
deleted file mode 100755 (executable)
index ef8eccd..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-\r
-; TAS2557 Factory Test and Calibration Configuration File\r
-; -----------------------------------------------------------------------------\r
-; PPC3 File: example.ppc3\r
-; DDC Name: N48M1V2\r
-; Comments: [Write Comments Here]\r
-\r
-; FTC Settings\r
-CALIBRATION_TIME          = 2000     ; Duration (in ms) of calibration phase\r
-CONVERGENCE_TIME          = 8000     ; Duration of F0 tracker stable\r
-DEV_ADDR                  = 98       ; I2C slave write addr for device A\r
-\r
-; Obtained from Speaker Manufacturer\r
-SPK_T_MAX                 = 80       ; Speaker Maximum Temperature (C)\r
-SPK_RE_TOL_PER            = 10       ; Re +/- tolerance (%)\r
-SPK_RE_ALPHA              = 0.0039   ; Temperature coefficient alpha (1/K)\r
-\r
-; Pass/Fail Limits\r
-RE_HI                     = 8.0\r
-RE_LO                     = 6.0\r
-\r
-; Obtained from PurePath Console 3 (PPC3)\r
-PPC3_RE0                  = 7.0     ; Re0 (ohm)\r
-PPC3_RTV                  = 44.9     ; Rtv (K/W)\r
-PPC3_RTM                  = 80.7     ; Rtm  (K/W)\r
-PPC3_RTVA                 = 1723     ; Rtva  (K/W)\r
-PPC3_SYSGAIN              = 9.35     ; System Gain (V/FS)\r
-PPC3_DEV_NONLIN_PER       = 1.5      ; Device Non-linearity (%)\r
-PPC3_PIG                  = 1       ; Refer to documentation\r
-FS_RATE                   = 48000   ; TAS2557-B Sample Rate\r
diff --git a/speaker_r.ftcfg b/speaker_r.ftcfg
deleted file mode 100755 (executable)
index a6b7329..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-\r
-; TAS2557 Factory Test and Calibration Configuration File\r
-; -----------------------------------------------------------------------------\r
-; PPC3 File: example.ppc3\r
-; DDC Name: N48M1V2\r
-; Comments: [Write Comments Here]\r
-\r
-; FTC Settings\r
-CALIBRATION_TIME          = 2000     ; Duration (in ms) of calibration phase\r
-CONVERGENCE_TIME          = 8000     ; Duration of F0 tracker stable\r
-DEV_ADDR                  = 9a       ; I2C slave write addr for device B\r
-\r
-; Obtained from Speaker Manufacturer\r
-SPK_T_MAX                 = 80       ; Speaker Maximum Temperature (C)\r
-SPK_RE_TOL_PER            = 10       ; Re +/- tolerance (%)\r
-SPK_RE_ALPHA              = 0.0039   ; Temperature coefficient alpha (1/K)\r
-\r
-; Pass/Fail Limits\r
-RE_HI                     = 8.0\r
-RE_LO                     = 6.0\r
-\r
-; Obtained from PurePath Console 3 (PPC3)\r
-PPC3_RE0                  = 7.0     ; Re0 (ohm)\r
-PPC3_RTV                  = 44.9     ; Rtv (K/W)\r
-PPC3_RTM                  = 80.7     ; Rtm  (K/W)\r
-PPC3_RTVA                 = 1723     ; Rtva  (K/W)\r
-PPC3_SYSGAIN              = 9.35     ; System Gain (V/FS)\r
-PPC3_DEV_NONLIN_PER       = 1.5      ; Device Non-linearity (%)\r
-PPC3_PIG                  = 1       ; Refer to documentation\r
-FS_RATE                   = 48000   ; TAS2557-B Sample Rate\r
index 475d5210df3b80cd4d17abc67905853462a0b57d..732c31fcdc7554689520a3ec2e3c0b43e00503fc 100755 (executable)
@@ -35,6 +35,9 @@ struct TSPKCharData {
        double nSpkReAlpha;\r
 \r
        double nPPC3_Re0;\r
+       double nPPC3_FWarp;\r
+       double nPPC3_Bl;\r
+       double nPPC3_Mms;\r
        double nPPC3_RTV;\r
        double nPPC3_RTM;\r
        double nPPC3_RTVA;\r
@@ -52,11 +55,12 @@ struct TFTCConfiguration {
        bool bVerbose;\r
        bool bLoadCalibration;\r
        unsigned int nCalibrationTime;\r
+       double nPPC3_FS;\r
 \r
        struct TSPKCharData nTSpkCharDevA;\r
        struct TSPKCharData nTSpkCharDevB;\r
 };\r
 \r
 uint32_t tas2557_ftc(double t_cal, struct TFTCConfiguration *pFTCC);\r
-\r
+int tas2557_chk(double t_cal, struct TFTCConfiguration *pFTCC);\r
 #endif /* TAS2557_FTC_H_ */\r
index ea5344652e2403711d6b1dec325750f8214df065..d7610282b1a5f63beaff40954a9ecccc75d50601 100755 (executable)
@@ -41,4 +41,9 @@ double CalcRe(double re_ppc3, uint32_t prm_r0);
 uint32_t calc_prm_pow(double re, double delta_t_max, double nRTV, double nRTM, double nRTVA, double nSysGain);\r
 uint32_t calc_prm_tlimit(double delta_t_max, double alpha, double nDevNonlinPer, double nRTV, double nRTM, double nRTVA, double nPIG);\r
 void tas2557_ftc_stop(void);\r
+\r
+/* below functions are used in SPK measurement only */\r
+int get_Re_deltaT(double nPPC3_Re, double nPPC3_alpha, double *pnRe, double *pnDeltaT);\r
+int get_f0_Q(double nPPC3_FWarp, double nPPC3_nFS, double nPPC3_Bl, double nPPC3_Mms, double nPPC3_Re0, double *pnF0, double *pnQ);\r
+\r
 #endif /* TAS2557_LIB_FTC_H_ */\r
diff --git a/tas2557dm_chk.c b/tas2557dm_chk.c
new file mode 100755 (executable)
index 0000000..31a4db7
--- /dev/null
@@ -0,0 +1,91 @@
+/*\r
+** =============================================================================\r
+** Copyright (c) 2016  Texas Instruments Inc.\r
+**\r
+** This program is free software; you can redistribute it and/or modify it under\r
+** the terms of the GNU General Public License as published by the Free Software \r
+** Foundation; version 2.\r
+**\r
+** This program is distributed in the hope that it will be useful, but WITHOUT\r
+** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+** FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r
+**\r
+** You should have received a copy of the GNU General Public License along with\r
+** this program; if not, write to the Free Software Foundation, Inc., 51 Franklin\r
+** Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
+**\r
+** File:\r
+**     tas2557_ftc.c\r
+**\r
+** Description:\r
+**     factory test program for TAS2557 Android devices\r
+**\r
+** =============================================================================\r
+*/\r
+\r
+#include <stdio.h>\r
+#include <stdint.h>\r
+#include <math.h>\r
+#include <sys/types.h>\r
+\r
+#include "system.h"\r
+#include "tas2557.h"        // TAS2557 Driver\r
+#include "tas2557_ftc_lib.h"    \r
+#include "tas2557_ftc.h"    // TAS2557 Factory Test and Calibration Tool\r
+\r
+#define PI                   3.14159\r
+\r
+// -----------------------------------------------------------------------------\r
+// tas2557_ftc\r
+// -----------------------------------------------------------------------------\r
+// Description:\r
+//      Obtains Re, f0, Q and T_cal from the speaker. This only needs to be\r
+//      executed once during production line test.\r
+// -----------------------------------------------------------------------------\r
+int tas2557_chk(double t_cal, struct TFTCConfiguration *pFTCC)\r
+{\r
+       int nResult = 0;\r
+       double nDevARe, nDevADeltaT, nDevAF0, nDevAQ;\r
+       double nDevBRe, nDevBDeltaT, nDevBF0, nDevBQ;\r
+       uint8_t nPGID;\r
+       uint32_t libVersion;\r
+\r
+       libVersion = get_lib_ver();\r
+       printf("libVersion=0x%x\r\n", libVersion);\r
+\r
+       /* get device PGID */\r
+       tas2557_switch_device(pFTCC->nTSpkCharDevA.nDevAddr);\r
+       nPGID = tas2557_get_PGID();\r
+       printf("PGID=0x%x\r\n", nPGID);\r
+       /* set device PGID to FTC process */\r
+       tas2557_ftc_set_PGID(nPGID);\r
+\r
+       /* Get actual Re from TAS2557 */\r
+       tas2557_switch_device(pFTCC->nTSpkCharDevA.nDevAddr);\r
+       nResult = get_Re_deltaT(pFTCC->nTSpkCharDevA.nPPC3_Re0,\r
+                                                       pFTCC->nTSpkCharDevA.nSpkReAlpha,\r
+                                                       &nDevARe, &nDevADeltaT);\r
+       nResult = get_f0_Q(pFTCC->nTSpkCharDevA.nPPC3_FWarp,\r
+                                               pFTCC->nPPC3_FS,\r
+                                               pFTCC->nTSpkCharDevA.nPPC3_Bl,\r
+                                               pFTCC->nTSpkCharDevA.nPPC3_Mms,\r
+                                               pFTCC->nTSpkCharDevA.nPPC3_Re0,\r
+                                               &nDevAF0, &nDevAQ);\r
+       printf("SPK_A Re = %f, DeltaT=%f, F0 = %f, Q = %f\n", nDevARe, nDevADeltaT, nDevAF0, nDevAQ);\r
+\r
+       tas2557_switch_device(pFTCC->nTSpkCharDevB.nDevAddr);\r
+       nResult = get_Re_deltaT(pFTCC->nTSpkCharDevB.nPPC3_Re0,\r
+                                                       pFTCC->nTSpkCharDevB.nSpkReAlpha,\r
+                                                       &nDevBRe, &nDevBDeltaT);\r
+       nResult = get_f0_Q(pFTCC->nTSpkCharDevB.nPPC3_FWarp,\r
+                                               pFTCC->nPPC3_FS,\r
+                                               pFTCC->nTSpkCharDevB.nPPC3_Bl,\r
+                                               pFTCC->nTSpkCharDevB.nPPC3_Mms,\r
+                                               pFTCC->nTSpkCharDevB.nPPC3_Re0,\r
+                                               &nDevBF0, &nDevBQ);\r
+       printf("SPK_B Re = %f, DeltaT=%f, F0 = %f, Q = %f\n", nDevBRe, nDevBDeltaT, nDevBF0, nDevBQ);\r
+\r
+       tas2557_ftc_release();\r
+\r
+    return nResult;\r
+}\r
diff --git a/tas2557evm_aacspk_a.ftcfg b/tas2557evm_aacspk_a.ftcfg
new file mode 100755 (executable)
index 0000000..f160647
--- /dev/null
@@ -0,0 +1,45 @@
+\r
+; TAS2557 Factory Test and Calibration Configuration File\r
+; -----------------------------------------------------------------------------\r
+; PPC3 File: AAC_v2_vC3_48000_HP_TAS2557_pg2p1_dm.ppc3\r
+; DDC Name: TAS2557MSS_20170411\r
+; Comments: [Write Comments Here]\r
+\r
+; FTC Settings\r
+FTC_BYPASS                = 0       ; Refer to documentation\r
+TEST_DELTA_T              = 80      ; Delta Temperature Limit during verification phase\r
+CALIBRATION_TIME          = 2000    ; Duration (in ms) of calibration phase\r
+VERIFICATION_TIME         = 4000    ; Duration (in ms) of the verification phase\r
+CONFIGURATION             = 0       ; Refer to documentation\r
+CONFIGURATION_CALIBRATION = 1       ; Refer to documentation\r
+DEV_ADDR                  = 98      ; I2C slave write addr (in hex) for device A\r
+\r
+; Pass/Fail Limits\r
+RE_HI                     = 7.975\r
+RE_LO                     = 6.525\r
+F0_HI                     = 924\r
+F0_LO                     = 616\r
+Q_HI                      = 1.704\r
+Q_LO                      = 1.136\r
+T_HI                      = 40\r
+T_LO                      = 0\r
+\r
+; Obtained from Speaker Manufacturer\r
+SPK_T_MAX                 = 100     ; Speaker Maximum Temperature (C)\r
+SPK_RE_TOL_PER            = 10      ; Re +/- tolerance (%)\r
+\r
+; Obtained from PurePath Console 3 (PPC3)\r
+PPC3_RE0                  = 6.7     ; Re0 (ohm)\r
+PPC3_FWARP                = 891     ; CMWF (Hz)\r
+PPC3_BL                   = 0.814   ; Bl (Tm)\r
+PPC3_MMS                  = 0.0666  ; Mms (g)\r
+PPC3_RTV                  = 63.4    ; Rtv (K/W)\r
+PPC3_RTM                  = 566.7   ; Rtm  (K/W)\r
+PPC3_RTVA                 = 136     ; Rtva  (K/W)\r
+PPC3_SYSGAIN              = 9.35    ; System Gain (V/FS)\r
+PPC3_DEV_NONLIN_PER       = 1.5     ; Device Non-linearity (%)\r
+PPC3_DELTA_T_LIMIT        = 80      ; Delta Thermal Limit (C)\r
+PPC3_PIG                  = 1       ; Refer to documentation\r
+PPC3_RE_ALPHA             = 0.0033  ; Temperature coefficient alpha (1/K)\r
+FS_RATE                   = 48000   ; TAS2557 Sample Rate\r
+\r
diff --git a/tas2557evm_aacspk_b.ftcfg b/tas2557evm_aacspk_b.ftcfg
new file mode 100755 (executable)
index 0000000..0787bf2
--- /dev/null
@@ -0,0 +1,45 @@
+\r
+; TAS2557-B Factory Test and Calibration Configuration File\r
+; -----------------------------------------------------------------------------\r
+; PPC3 File: AAC_v2_vC3_48000_HP_TAS2557_pg2p1_dm.ppc3\r
+; DDC Name: TAS2557MSS_20170411\r
+; Comments: [Write Comments Here]\r
+\r
+; FTC Settings\r
+FTC_BYPASS                = 0       ; Refer to documentation\r
+TEST_DELTA_T              = 80      ; Delta Temperature Limit during verification phase\r
+CALIBRATION_TIME          = 2000    ; Duration (in ms) of calibration phase\r
+VERIFICATION_TIME         = 4000    ; Duration (in ms) of the verification phase\r
+CONFIGURATION             = 0       ; Refer to documentation\r
+CONFIGURATION_CALIBRATION = 1       ; Refer to documentation\r
+DEV_ADDR                  = 9a      ; I2C slave write addr (in hex) for device B\r
+\r
+; Pass/Fail Limits\r
+RE_HI                     = 7.975\r
+RE_LO                     = 6.525\r
+F0_HI                     = 924\r
+F0_LO                     = 616\r
+Q_HI                      = 1.704\r
+Q_LO                      = 1.136\r
+T_HI                      = 40\r
+T_LO                      = 0\r
+\r
+; Obtained from Speaker Manufacturer\r
+SPK_T_MAX                 = 100     ; Speaker Maximum Temperature (C)\r
+SPK_RE_TOL_PER            = 10      ; Re +/- tolerance (%)\r
+\r
+; Obtained from PurePath Console 3 (PPC3)\r
+PPC3_RE0                  = 6.7     ; Re0 (ohm)\r
+PPC3_FWARP                = 891     ; CMWF (Hz)\r
+PPC3_BL                   = 0.814   ; Bl (Tm)\r
+PPC3_MMS                  = 0.0666  ; Mms (g)\r
+PPC3_RTV                  = 63.4    ; Rtv (K/W)\r
+PPC3_RTM                  = 566.7   ; Rtm  (K/W)\r
+PPC3_RTVA                 = 136     ; Rtva  (K/W)\r
+PPC3_SYSGAIN              = 9.35    ; System Gain (V/FS)\r
+PPC3_DEV_NONLIN_PER       = 1.5     ; Device Non-linearity (%)\r
+PPC3_DELTA_T_LIMIT        = 80      ; Delta Thermal Limit (C)\r
+PPC3_PIG                  = 1       ; Refer to documentation\r
+PPC3_RE_ALPHA             = 0.0033  ; Temperature coefficient alpha (1/K)\r
+FS_RATE                   = 48000   ; TAS2557-B Sample Rate\r
+\r