]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - tas2557sw-android/tas2557dm-ftc.git/blobdiff - tas2557dm_ftc.c
update the FTC of TAS2557 Dual Mono to support different speaker
[tas2557sw-android/tas2557dm-ftc.git] / tas2557dm_ftc.c
index dd935f02ac8e4eddce8f7a64dc8c17ccf9ad9564..2f5ab4b4b2af763da6bbfcbbcd63c43bfb478f79 100755 (executable)
@@ -46,10 +46,10 @@ TFTCConfiguration *gpFTCC;
 // -----------------------------------------------------------------------------\r
 uint32_t tas2557_ftc(double t_cal, TFTCConfiguration *pFTCC)\r
 {\r
-    double dev_a_re = pFTCC->nPPC3_Re0;   // Default Re\r
+    double dev_a_re = pFTCC->nTSpkCharDevA.nPPC3_Re0;   // Default Re\r
     uint32_t dev_a_prm_pow = 0;           // Total RMS power coefficient\r
     uint32_t dev_a_prm_tlimit = 0;        // Delta temperature limit coefficient\r
-    double dev_b_re = pFTCC->nPPC3_Re0;   // Default Re\r
+    double dev_b_re = pFTCC->nTSpkCharDevB.nPPC3_Re0;   // Default Re\r
     uint32_t dev_b_prm_pow = 0;           // Total RMS power coefficient\r
     uint32_t dev_b_prm_tlimit = 0;        // Delta temperature limit coefficient       \r
        \r
@@ -65,9 +65,9 @@ uint32_t tas2557_ftc(double t_cal, TFTCConfiguration *pFTCC)
     nPlaybackProcess = sys_play_wav("silense.wav", "loop");\r
 \r
        // STEP 3: Play calibration signal\r
-       tas2557_switch_device(gpFTCC->nDevAAddr);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevA.nDevAddr);\r
     tas2557_ftc_start();\r
-       tas2557_switch_device(gpFTCC->nDevBAddr);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevB.nDevAddr);\r
        tas2557_ftc_start();\r
        \r
     // STEP 4: Wait for algorithm to converge\r
@@ -75,41 +75,41 @@ uint32_t tas2557_ftc(double t_cal, TFTCConfiguration *pFTCC)
 \r
        \r
     // STEP 5: Get actual Re from TAS2555\r
-       tas2557_switch_device(gpFTCC->nDevAAddr);\r
-    dev_a_re = get_re(gpFTCC->nPPC3_Re0);\r
-       tas2557_switch_device(gpFTCC->nDevBAddr);\r
-       dev_b_re = get_re(gpFTCC->nPPC3_Re0);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevA.nDevAddr);\r
+    dev_a_re = get_re(gpFTCC->nTSpkCharDevA.nPPC3_Re0);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevB.nDevAddr);\r
+       dev_b_re = get_re(gpFTCC->nTSpkCharDevB.nPPC3_Re0);\r
 \r
     // STEP 6: Set temperature limit to target TMAX\r
-       tas2557_switch_device(gpFTCC->nDevAAddr);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevA.nDevAddr);\r
     dev_a_prm_pow = calc_prm_pow (dev_a_re, \r
-               gpFTCC->nSpkTMax - t_cal, \r
-               gpFTCC->nPPC3_RTV, \r
-               gpFTCC->nPPC3_RTM, \r
-               gpFTCC->nPPC3_RTVA, \r
-               gpFTCC->nPPC3_SysGain);\r
-    dev_a_prm_tlimit = calc_prm_tlimit(gpFTCC->nSpkTMax - t_cal, \r
-               gpFTCC->nSpkReAlpha, \r
-               gpFTCC->nPPC3_DevNonlinPer, \r
-               gpFTCC->nPPC3_RTV, \r
-               gpFTCC->nPPC3_RTM, \r
-               gpFTCC->nPPC3_RTVA);\r
-    set_re(gpFTCC->nPPC3_Re0, dev_a_re, gpFTCC->nSpkReAlpha);\r
+               gpFTCC->nTSpkCharDevA.nSpkTMax - t_cal, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTV, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTM, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTVA, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_SysGain);\r
+    dev_a_prm_tlimit = calc_prm_tlimit(gpFTCC->nTSpkCharDevA.nSpkTMax - t_cal, \r
+               gpFTCC->nTSpkCharDevA.nSpkReAlpha, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_DevNonlinPer, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTV, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTM, \r
+               gpFTCC->nTSpkCharDevA.nPPC3_RTVA);\r
+    set_re(gpFTCC->nTSpkCharDevA.nPPC3_Re0, dev_a_re, gpFTCC->nTSpkCharDevA.nSpkReAlpha);\r
     set_temp_cal(dev_a_prm_pow, dev_a_prm_tlimit);\r
-       tas2557_switch_device(gpFTCC->nDevBAddr);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevB.nDevAddr);\r
     dev_b_prm_pow = calc_prm_pow (dev_b_re, \r
-               gpFTCC->nSpkTMax - t_cal, \r
-               gpFTCC->nPPC3_RTV, \r
-               gpFTCC->nPPC3_RTM, \r
-               gpFTCC->nPPC3_RTVA, \r
-               gpFTCC->nPPC3_SysGain);\r
-    dev_b_prm_tlimit = calc_prm_tlimit(gpFTCC->nSpkTMax - t_cal, \r
-               gpFTCC->nSpkReAlpha, \r
-               gpFTCC->nPPC3_DevNonlinPer, \r
-               gpFTCC->nPPC3_RTV, \r
-               gpFTCC->nPPC3_RTM, \r
-               gpFTCC->nPPC3_RTVA);\r
-    set_re(gpFTCC->nPPC3_Re0, dev_b_re, gpFTCC->nSpkReAlpha);\r
+               gpFTCC->nTSpkCharDevB.nSpkTMax - t_cal, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTV, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTM, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTVA, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_SysGain);\r
+    dev_b_prm_tlimit = calc_prm_tlimit(gpFTCC->nTSpkCharDevB.nSpkTMax - t_cal, \r
+               gpFTCC->nTSpkCharDevB.nSpkReAlpha, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_DevNonlinPer, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTV, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTM, \r
+               gpFTCC->nTSpkCharDevB.nPPC3_RTVA);\r
+    set_re(gpFTCC->nTSpkCharDevB.nPPC3_Re0, dev_b_re, gpFTCC->nTSpkCharDevB.nSpkReAlpha);\r
     set_temp_cal(dev_b_prm_pow, dev_b_prm_tlimit);     \r
     sys_stop_wav(nPlaybackProcess);\r
 \r
@@ -119,12 +119,12 @@ uint32_t tas2557_ftc(double t_cal, TFTCConfiguration *pFTCC)
                t_cal, "tas2557_cal.txt");\r
 \r
     // STEP 8: Save .bin file for TAS2555 driver\r
-       tas2557_open_bin("tas2557_cal.bin", gpFTCC->nConfiguration, gpFTCC->nDevAAddr, gpFTCC->nDevBAddr);\r
-       tas2557_switch_device(gpFTCC->nDevAAddr);\r
-       set_re(gpFTCC->nPPC3_Re0, dev_a_re, gpFTCC->nSpkReAlpha);\r
+       tas2557_open_bin("tas2557_cal.bin", gpFTCC->nConfiguration, gpFTCC->nTSpkCharDevA.nDevAddr, gpFTCC->nTSpkCharDevB.nDevAddr);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevA.nDevAddr);\r
+       set_re(gpFTCC->nTSpkCharDevA.nPPC3_Re0, dev_a_re, gpFTCC->nTSpkCharDevA.nSpkReAlpha);\r
        set_temp_cal(dev_a_prm_pow, dev_a_prm_tlimit);\r
-       tas2557_switch_device(gpFTCC->nDevBAddr);\r
-       set_re(gpFTCC->nPPC3_Re0, dev_b_re, gpFTCC->nSpkReAlpha);\r
+       tas2557_switch_device(gpFTCC->nTSpkCharDevB.nDevAddr);\r
+       set_re(gpFTCC->nTSpkCharDevB.nPPC3_Re0, dev_b_re, gpFTCC->nTSpkCharDevB.nSpkReAlpha);\r
        set_temp_cal(dev_b_prm_pow, dev_b_prm_tlimit);  \r
        tas2557_close_bin();\r
 \r