T_CV.cpp
上传用户:gelin96
上传日期:2017-01-08
资源大小:20993k
文件大小:8k
源码类别:

MTK

开发平台:

C++ Builder

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *   T_CV.cpp
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   Maui META APP
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *  Constant voltage (CV) calibraiton source
  48.  *
  49.  * Author:
  50.  * -------
  51.  *  Andy Ueng (mtk00490)
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * $Revision$
  58.  * $Modtime$
  59.  * $Log$
  60.  * 
  61.  *------------------------------------------------------------------------------
  62.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  63.  *============================================================================
  64. ****************************************************************************/
  65. #pragma hdrstop
  66. #ifndef _META_FACTORY_H_
  67. #include "meta_factory.h"
  68. #endif
  69. #ifndef _T_META_FACTORY_CALIBRATION_H_
  70. #include  "T_META_factory_calibration.H"
  71. #endif
  72. #ifndef  _META_UTILS_H_
  73. #include "meta_utils.h"
  74. #endif
  75. #ifndef  _RCT_COMMON_H_
  76. #include "rct_common.h"
  77. #endif
  78. // misc
  79. #ifndef  _TIME_UTILS_H_
  80. #include "time_utils.h"
  81. #endif
  82. #ifndef  _FT_UTILS_H_
  83. #include "ft_utils.h"
  84. #endif
  85. // callback
  86. #ifndef _META_FACTORY_BB_CB_H_
  87. #include "meta_factory_bb_cb.h"
  88. #endif
  89. extern bool  is_suspend_cal;
  90. //===========================================================================
  91. bool __fastcall T_META_factory_calibration::CVCal_cal(void)
  92. {
  93.     log->Add("n" +DateToStr(Date()) +  " " + CurrentTimeStr() +
  94.               " ====================== CV calibration begin ===================== "
  95.            );
  96.     PostMessage(ctrl.hPostMsgDestHandle,
  97.                 WM_MF_CV_BEGIN,
  98.                 0,
  99.                 0
  100.                 );
  101.                 
  102.     if (!m_dcs_ctrl.DCS_Init(m_pDcs))
  103.     {
  104.         CalErrorHandler(WM_MF_ADC_DCS_INIT_FAIL);
  105.         log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() + " FAIL: Power supply initialize ");
  106.         return false;
  107.     }
  108.     // set output voltage = 4.2V
  109.     if (!m_dcs_ctrl.DCS_outputVoltCurr( m_pDcs, 4.2, i_CURRENT_LIMIT/1000.0))
  110.     {
  111.         CalErrorHandler(WM_MF_ADC_DCS_SET_VOLTAGE_CURRENT_FAIL );
  112.         log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() + " FAIL: power supply set vlotage = " +
  113.                  Double_To_AnsiString(i_ADC_V1/1000.0)
  114.                  );
  115.         return false;
  116.     }
  117.     log->Add( DateToStr(Date()) +  " " + CurrentTimeStr() + " Set power supply vlotage = " +
  118.                   Double_To_AnsiString(4.2)
  119.                             );
  120.     CHECK_TERMINATE_BY_USER
  121.     Sleep (50);
  122.     // set CV calibration register
  123.     m_cBB_CV_Obj.ConfirmCallback = ::CNF_BB;
  124.     m_cBB_CV_Obj.REQ_Set_CV_Cal_Register_Start(m_pCal->e_bb_chip);
  125.     RestartTimerCal(WM_MF_BB_REG_SET_FAIL);
  126.     SUSPEND_CAL_THREAD
  127.     E_METAAPP_RESULT_T state = m_cBB_CV_Obj.Get_ConfirmState();
  128.     if (state != METAAPP_SUCCESS)
  129.     {
  130.         CalErrorHandler(WM_MF_BB_REG_SET_FAIL);
  131.         log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  132.                      " FAIL : Target < set CV calibration register fail "
  133.                     );
  134.         return false;
  135.     }
  136.     char c_pmu  = m_cBB_CV_Obj.Get_PMU();
  137.     char c_step = m_cBB_CV_Obj.Get_CvStep();
  138.     log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  139.                      " PMU = " + IntToStr(c_pmu) +
  140.                      ", step = " + IntToStr(c_step)
  141.                     );
  142.     CHECK_TERMINATE_BY_USER
  143.     // write NVRAM
  144.     m_cBB_CV_Obj.ConfirmCallback = ::CNF_BB;
  145.     m_cBB_CV_Obj.REQ_Write_To_NVRAM_Start();
  146.     RestartTimerCal(WM_MF_NVRAM_CV_WRITE_FAIL);
  147.     SUSPEND_CAL_THREAD
  148.     state = m_cBB_CV_Obj.Get_ConfirmState();
  149.     if (state != METAAPP_SUCCESS)
  150.     {
  151.         CalErrorHandler(WM_MF_NVRAM_CV_WRITE_FAIL);
  152.         log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  153.                      " FAIL : Target < set CV calibration register fail "
  154.                     );
  155.         return false;
  156.     }
  157.     log->Add("n" +DateToStr(Date()) +  " " + CurrentTimeStr() +
  158.               " ======================  CV calibration end  ===================== "
  159.            );
  160.     return true;
  161. }
  162. //---------------------------------------------------------------------------
  163. bool __fastcall T_META_factory_calibration::CVCal_check(void)
  164. {
  165.     log->Add("n" +DateToStr(Date()) +  " " + CurrentTimeStr() +
  166.               " ======================   CV check begin   ===================== "
  167.            );
  168.     char step = m_cBB_CV_Obj.Get_CvStep();
  169.     if ((step > m_cMAX_CV_STEP) || (step < m_cMIN_CV_STEP))
  170.     {
  171.         CalErrorHandler(WM_MF_CV_CHECK_FAIL);
  172.         log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  173.                   " Fail: CV check ." + " CV step = " + IntToStr(step) +
  174.                   ", min CV step = " + IntToStr(m_cMIN_CV_STEP) +
  175.                   ", max CV step = " + IntToStr(m_cMAX_CV_STEP)
  176.                 );
  177.         return false;
  178.     }
  179.     log->Add(DateToStr(Date()) +  " " + CurrentTimeStr() +
  180.                   " Pass: CV check ." + " CV step = " + IntToStr(step) +
  181.                   ", min CV step = " + IntToStr(m_cMIN_CV_STEP) +
  182.                   ", max CV step = " + IntToStr(m_cMAX_CV_STEP)
  183.                 );
  184.     PostMessage(
  185.                      ctrl.hPostMsgDestHandle,
  186.                      WM_MF_CV_CALIBRATION_DONE,
  187.                      0,
  188.                      0
  189.                     );
  190.     frmFatcory->DisableAllCalTimer();
  191.     log->Add("n" +DateToStr(Date()) +  " " + CurrentTimeStr() +
  192.               " ======================    CV check end    ===================== "
  193.            );
  194.     return true;
  195. }