//***************************************************************************** // (C) Automotive Lighting Reutlingen GmbH // Tuebinger Strasse 123, 72762 Reutlingen, Germany // // Automotive Lighting Reutlingen GmbH owns all the rights to this work. // This work shall not be copied, reproduced, used, modified, transferred // or its information shall not be disclosed without the prior written // authorization of Automotive Lighting Reutlingen GmbH. //***************************************************************************** //----------------------------------------------------------------------------- /// \file CddTps92682_Com.c /// /// \brief /// /// \author OTT, Peter ALDE-RT/EES6 //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Includes //----------------------------------------------------------------------------- // standard includes #include #include // module API (include path) #include #include // adapter #include <../Adapter/CddBoost_Adapter.h> // module includes (relative to API) #include <../Cfg/CddTps92682_Cfg.h> #include <../Cfg/CddTps92682_RoutCfg.h> #include <../Gen/CddTps92682_Types.h> #include <../Gen/CddTps92682_Com.h> #include <../Gen/CddTps92682_Sched.h> //----------------------------------------------------------------------------- // Defines and Typedef //----------------------------------------------------------------------------- #define CDDTPS92682_InitZeroReg {.unRaw=0x0000u} #define CDDTPS92682_Reg0x00_Init {.Bit= \ {.biFPINRST = CDDTPS92682_CFG_BOOST_BIT_1, \ .biSYNCEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2MAXDEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1MAXDEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2PDRVEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1PDRVEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2EN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1EN = CDDTPS92682_CFG_BOOST_BIT_0} } #define CDDTPS92682_Reg0x01_Init {.Bit= \ {.biPWMPH = CDDTPS92682_CFG_BOOST_BIT_0, \ .biINTPWM = CDDTPS92682_CFG_BOOST_BIT_0, \ .bi2PH = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLH = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2HG = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1HG = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2CV = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1CV = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x02_Init {.Bit= \ {.biCH2LEB = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1LEB = CDDTPS92682_CFG_BOOST_BIT_0, \ .biRSVD1 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2FILT1 = CDDTPS92682_CFG_BOOST_BIT_1, \ .biRSVD2 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1FILT1 = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x03_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2DIV = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1DIV = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x04_Init {.Bit= \ {.biRSVD1 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2ISLP = CDDTPS92682_CFG_BOOST_BIT_5, \ .biRSVD2 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1ISLP = CDDTPS92682_CFG_BOOST_BIT_5} } #define CDDTPS92682_Reg0x05_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biFMMAG = CDDTPS92682_CFG_BOOST_BIT_2, \ .biFMFREQ = CDDTPS92682_CFG_BOOST_BIT_8} } #define CDDTPS92682_Reg0x06_Init {.Bit= \ {.biCH2SS = 0xC, \ .biCH1SS = 0xC} } #define CDDTPS92682_Reg0x07_Init {.Bit={ .biCH1IADJ = 0XF5} } #define CDDTPS92682_Reg0x08_Init {.Bit={ .biCH2IADJ = 0XF5} } #define CDDTPS92682_Reg0x09_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biPWMDIV = CDDTPS92682_CFG_BOOST_BIT_0} } #define CDDTPS92682_Reg0x0A_Init {.Bit={ .biCH1PWM = 0xFF} } #define CDDTPS92682_Reg0x0B_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1PWM = CDDTPS92682_CFG_BOOST_BIT_3} } #define CDDTPS92682_Reg0x0C_Init {.Bit={ .biCH2PWM = 0xFF} } #define CDDTPS92682_Reg0x0D_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2PWM = 0x03} } #define CDDTPS92682_Reg0x0E_Init {.Bit= \ {.biCH2ILIMCNT = CDDTPS92682_CFG_BOOST_BIT_2, \ .biCH1ILIMCNT = CDDTPS92682_CFG_BOOST_BIT_2, \ .biCH2ILIM = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1ILIM = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x0F_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2IFT = CDDTPS92682_CFG_BOOST_BIT_2, \ .biCH1IFT = CDDTPS92682_CFG_BOOST_BIT_2} } #define CDDTPS92682_Reg0x10_Init {.Bit= \ {.biCH2MFT = CDDTPS92682_CFG_BOOST_BIT_5, \ .biCH2MFT = CDDTPS92682_CFG_BOOST_BIT_5} } #define CDDTPS92682_Reg0x11_Init {.Bit= \ {.biRTO = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biRSVD = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biPC = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biTW = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH2OV = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1OV = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH2UV = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1UV = CDDTPS92682_CFG_BOOST_UNDEFINE} } #define CDDTPS92682_Reg0x12_Init {.Bit= \ {.biCH2UC = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1UC = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH2OC = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1OC = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH2ILIM = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1ILIM = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH2ISO = CDDTPS92682_CFG_BOOST_UNDEFINE, \ .biCH1ISO = CDDTPS92682_CFG_BOOST_UNDEFINE} } #define CDDTPS92682_Reg0x13_Init {.Bit= \ {.biCH2RFEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1RFEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2FBOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1FBOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2OVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1OVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2UVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1UVEN = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x14_Init {.Bit= \ {.biOVOPT = CDDTPS92682_CFG_BOOST_BIT_0, \ .biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2OCEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1OCEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2ILIMEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1ILIMEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH2ISOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biCH1ISOEN = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x15_Init {.Bit= \ {.biCH2ILIMFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1ILIMFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2OCFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1OCFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2OVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1OVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2UVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1UVFL = CDDTPS92682_CFG_BOOST_BIT_0} } #define CDDTPS92682_Reg0x16_Init {.Bit= \ {.biRSVD1 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2OV = CDDTPS92682_CFG_BOOST_BIT_2, \ .biRSVD2 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1OV = CDDTPS92682_CFG_BOOST_BIT_2} } #define CDDTPS92682_Reg0x17_Init {.Bit= \ {.biLHPWMPH = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHINTPWM = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2MAXDEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1MAXDEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH2PDRVEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1PDRVEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2EN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1EN = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x18_Init {.Bit={ .biLHCH1IADJ = 0XF5} } #define CDDTPS92682_Reg0x19_Init {.Bit={ .biLHCH2IADJ = 0XF5} } #define CDDTPS92682_Reg0x1A_Init {.Bit={ .biLHCH1PWM = 0XFF} } #define CDDTPS92682_Reg0x1B_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1PWM = CDDTPS92682_CFG_BOOST_BIT_3} } #define CDDTPS92682_Reg0x1C_Init {.Bit={ .biLHCH2PWM = 0XFF} } #define CDDTPS92682_Reg0x1D_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2PWM = CDDTPS92682_CFG_BOOST_BIT_3} } #define CDDTPS92682_Reg0x1E_Init {.Bit= \ {.biLHCH2ILIMCNT= CDDTPS92682_CFG_BOOST_BIT_2, \ .biLHCH1ILIMCNT= CDDTPS92682_CFG_BOOST_BIT_2, \ .biLHCH2ILIM = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1ILIM = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x1F_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2IFT = CDDTPS92682_CFG_BOOST_BIT_2, \ .biLHCH1IFT = CDDTPS92682_CFG_BOOST_BIT_2} } #define CDDTPS92682_Reg0x20_Init {.Bit= \ {.biLHCH2MFT = CDDTPS92682_CFG_BOOST_BIT_5, \ .biLHCH1MFT = CDDTPS92682_CFG_BOOST_BIT_5} } #define CDDTPS92682_Reg0x21_Init {.Bit= \ {.biLHCH2RFEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1RFEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH2FBOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1FBOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH2OVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1OVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH2UVEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1UVEN = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x22_Init {.Bit= \ {.biRSVD = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2OCEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1OCEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2ILIMEN = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1ILIMEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH2ISOEN = CDDTPS92682_CFG_BOOST_BIT_1, \ .biLHCH1ISOEN = CDDTPS92682_CFG_BOOST_BIT_1} } #define CDDTPS92682_Reg0x23_Init {.Bit= \ {.biLHCH2ILIMFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1ILIMFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2OCFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1OCFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2OVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1OVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2UVFL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1UVFL = CDDTPS92682_CFG_BOOST_BIT_0} } #define CDDTPS92682_Reg0x24_Init {.Bit= \ {.biRSVD1 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH2OV = CDDTPS92682_CFG_BOOST_BIT_2, \ .biRSVD2 = CDDTPS92682_CFG_BOOST_BIT_0, \ .biLHCH1OV = CDDTPS92682_CFG_BOOST_BIT_2} } #define CDDTPS92682_Reg0x25_Init {.Bit= \ {.biCH2CAL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH2GOFF = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1CAL = CDDTPS92682_CFG_BOOST_BIT_0, \ .biCH1GOFF = CDDTPS92682_CFG_BOOST_BIT_0} } #define CDDTPS92682_DataMirror_Init \ { \ { /* CtrlTx */ \ CDDTPS92682_Reg0x00_Init, \ CDDTPS92682_Reg0x01_Init, \ CDDTPS92682_Reg0x02_Init, \ CDDTPS92682_Reg0x03_Init, \ CDDTPS92682_Reg0x04_Init, \ CDDTPS92682_Reg0x05_Init, \ CDDTPS92682_Reg0x06_Init, \ CDDTPS92682_Reg0x07_Init, \ CDDTPS92682_Reg0x08_Init, \ CDDTPS92682_Reg0x09_Init, \ CDDTPS92682_Reg0x0A_Init, \ CDDTPS92682_Reg0x0B_Init, \ CDDTPS92682_Reg0x0C_Init, \ CDDTPS92682_Reg0x0D_Init, \ CDDTPS92682_Reg0x0E_Init, \ CDDTPS92682_Reg0x0F_Init, \ CDDTPS92682_Reg0x10_Init, \ CDDTPS92682_Reg0x13_Init, \ CDDTPS92682_Reg0x14_Init, \ CDDTPS92682_Reg0x15_Init, \ CDDTPS92682_Reg0x16_Init, \ }, \ { /* CtrlRx */ \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ }, \ { /* StatRx */ \ CDDTPS92682_InitZeroReg, \ CDDTPS92682_InitZeroReg, \ } \ } #define CDDTPS92682_Reg0x00_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x00.unRaw #define CDDTPS92682_Reg0x01_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x01.unRaw #define CDDTPS92682_Reg0x02_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x02.unRaw #define CDDTPS92682_Reg0x03_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x03.unRaw #define CDDTPS92682_Reg0x04_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x04.unRaw #define CDDTPS92682_Reg0x05_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x05.unRaw #define CDDTPS92682_Reg0x06_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x06.unRaw #define CDDTPS92682_Reg0x07_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x07.unRaw #define CDDTPS92682_Reg0x08_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x08.unRaw #define CDDTPS92682_Reg0x09_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x09.unRaw #define CDDTPS92682_Reg0x0A_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0A.unRaw #define CDDTPS92682_Reg0x0B_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0B.unRaw #define CDDTPS92682_Reg0x0C_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0C.unRaw #define CDDTPS92682_Reg0x0D_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0D.unRaw #define CDDTPS92682_Reg0x0E_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0E.unRaw #define CDDTPS92682_Reg0x0F_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x0F.unRaw #define CDDTPS92682_Reg0x10_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x10.unRaw #define CDDTPS92682_Reg0x13_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x13.unRaw #define CDDTPS92682_Reg0x14_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x14.unRaw #define CDDTPS92682_Reg0x15_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x15.unRaw #define CDDTPS92682_Reg0x16_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x16.unRaw #define CDDTPS92682_Reg0x17_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x17.unRaw #define CDDTPS92682_Reg0x18_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x18.unRaw #define CDDTPS92682_Reg0x19_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x19.unRaw #define CDDTPS92682_Reg0x20_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x20.unRaw #define CDDTPS92682_Reg0x21_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x21.unRaw #define CDDTPS92682_Reg0x22_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x22.unRaw #define CDDTPS92682_Reg0x23_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x23.unRaw #define CDDTPS92682_Reg0x24_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x24.unRaw #define CDDTPS92682_Reg0x25_Tx &CddTps92682_DataMirror.CtrlTx.Reg0x25.unRaw #define CDDTPS92682_Reg0x00_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x00.unRaw #define CDDTPS92682_Reg0x01_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x01.unRaw #define CDDTPS92682_Reg0x02_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x02.unRaw #define CDDTPS92682_Reg0x03_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x03.unRaw #define CDDTPS92682_Reg0x04_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x04.unRaw #define CDDTPS92682_Reg0x05_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x05.unRaw #define CDDTPS92682_Reg0x06_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x06.unRaw #define CDDTPS92682_Reg0x07_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x07.unRaw #define CDDTPS92682_Reg0x08_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x08.unRaw #define CDDTPS92682_Reg0x09_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x09.unRaw #define CDDTPS92682_Reg0x0A_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0A.unRaw #define CDDTPS92682_Reg0x0B_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0B.unRaw #define CDDTPS92682_Reg0x0C_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0C.unRaw #define CDDTPS92682_Reg0x0D_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0D.unRaw #define CDDTPS92682_Reg0x0E_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0E.unRaw #define CDDTPS92682_Reg0x0F_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x0F.unRaw #define CDDTPS92682_Reg0x10_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x10.unRaw #define CDDTPS92682_Reg0x13_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x13.unRaw #define CDDTPS92682_Reg0x14_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x14.unRaw #define CDDTPS92682_Reg0x15_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x15.unRaw #define CDDTPS92682_Reg0x16_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x16.unRaw #define CDDTPS92682_Reg0x17_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x17.unRaw #define CDDTPS92682_Reg0x18_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x18.unRaw #define CDDTPS92682_Reg0x19_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x19.unRaw #define CDDTPS92682_Reg0x20_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x20.unRaw #define CDDTPS92682_Reg0x21_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x21.unRaw #define CDDTPS92682_Reg0x22_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x22.unRaw #define CDDTPS92682_Reg0x23_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x23.unRaw #define CDDTPS92682_Reg0x24_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x24.unRaw #define CDDTPS92682_Reg0x25_Rx &CddTps92682_DataMirror.CtrlRx.Reg0x25.unRaw #define CDDTPS92682_Reg0x11_Rx &CddTps92682_DataMirror.StatRx.Reg0x11.unRaw #define CDDTPS92682_Reg0x12_Rx &CddTps92682_DataMirror.StatRx.Reg0x12.unRaw #define CDDTPS92682_Zero_Tx &CddTps92682_aunZero #define CDDTPS92682_Dummy_Rx &CddTps92682_aunDummy #define CDDTPS92682_BSTSYNC_DUTY_50 0x4000u // SPI schedule table entry datatype typedef struct tCddTps92682_SpiSchedTable { uint8 ucNextEntry; // index of next schedule table entry uint8 ucAction; // index of action function done after Rx --> TODO change as function pointer ? uint16 unCmd; // Read/Write Command to send uint16 unAddr; // SPI address (combination of low and high nibble) const uint16* punTx; // SPI control register data for transmission - offset related to 1st address of stuct uint16* punRx; // SPI status register data for reception - offset related to 1st address of stuct } tCddTps92682_SpiSchedTable; //----------------------------------------------------------------------------- // Start definitions of initialized 16 bit variables //----------------------------------------------------------------------------- #define ctadCddBoost_START_SEC_VAR_INIT_16 #include <../Cfg/CddTps92682_MemMap.h> #if (CDDBUCK_CHIP_ERROR_HAND == CDDBUCk_CHIP_CPSQ5352) STATIC_AL uint16 CddTps92682_unSchedIx_Rx = 20u; // pointer to schedule table for receiving frames STATIC_AL uint16 CddTps92682_unSchedIx_Tx = 20u; // pointer to schedule table for sending frames STATIC_AL uint8 CddTps92682_cycleSpi = 0; #else STATIC_AL uint16 CddTps92682_unSchedIx_Rx = 0u; // pointer to schedule table for receiving frames STATIC_AL uint16 CddTps92682_unSchedIx_Tx = 0u; // pointer to schedule table for sending frames #endif STATIC_AL uint16 CddTps92682_aunDummy = 0u; // for dummy recieve Spi Frames #define ctadCddBoost_STOP_SEC_VAR_INIT_16 #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // End definitions of initialized 16 bit variables //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Start definitions of initialized structures and unions or arrays variables //----------------------------------------------------------------------------- #define ctadCddBoost_START_SEC_VAR_INIT_UNSPECIFIED #include <../Cfg/CddTps92682_MemMap.h> STATIC_AL tCddTps92682_DataMirror CddTps92682_DataMirror = CDDTPS92682_DataMirror_Init; #define ctadCddBoost_STOP_SEC_VAR_INIT_UNSPECIFIED #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // End definitions of initialized structures and unions or arrays variables //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Start definitions of 16 bit const //----------------------------------------------------------------------------- /* #define ctadCddBoost_START_SEC_CONST_ROM_16BIT */ #define ctadCddBoost_START_SEC_CONST_16 //for UAP BSW #include <../Cfg/CddTps92682_MemMap.h> STATIC_AL CONST_AL uint16 CddTps92682_aunZero = 0; /*#define ctadCddBoost_STOP_SEC_CONST_ROM_16BIT*/ #define ctadCddBoost_STOP_SEC_CONST_16 //for UAP BSW #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // End definitions of 16 bit const //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Start definitions of const structures and unions or arrays variables //----------------------------------------------------------------------------- /*#define ctadCddBoost_START_SEC_CONST_ROM_UNSPECIFIED*/ #define ctadCddBoost_START_SEC_CONST_UNSPECIFIED //for UAP BSW #include <../Cfg/CddTps92682_MemMap.h> STATIC_AL CONST_AL tCddTps92682_SpiSchedTable aCddTps92682_SpiSchedTable[CDDTPS92682_Cfg_SpiSchedTableLen] = CDDTPS92682_Cfg_SpiSchedTable_Init; \ /*#define ctadCddBoost_STOP_SEC_CONST_ROM_UNSPECIFIED*/ #define ctadCddBoost_STOP_SEC_CONST_UNSPECIFIED //for UAP BSW #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // End definitions of const structures and unions or arrays variables //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Start declaration or definitions of functions //----------------------------------------------------------------------------- #define ctadCddBoost_START_SEC_CODE #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // Function prototypes //----------------------------------------------------------------------------- STATIC_AL uint16 CddTps92682_AssembleSPICmd(const uint16 unCmd, const uint16 unAddr, const uint16 unData); STATIC_AL boolean CddTps92682_StAction(const uint8 ucAction); //----------------------------------------------------------------------------- /// \brief Set the Booster Voltage output /// /// \descr Set the Booster voltage output sent via SPI. /// /// \param ucBoostVsetpoint /// /// \return void //----------------------------------------------------------------------------- void CddTPS92682_SetBoostOutput(const uint8 ucBoostVOutput) { CddTps92682_DataMirror.CtrlTx.Reg0x07.Bit.biCH1IADJ=ucBoostVOutput; } //----------------------------------------------------------------------------- /// \brief Get the RTO: RT pin is open /// /// \descr Get the RTO: RT pin is open /// /// \param pucRTO /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetRTO(uint8* pucRTO) { if (pucRTO != NULL_PTR) { *pucRTO = CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biRTO; } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief Get the Power Cycled bit /// /// \descr Get the Power Cycled bit /// /// \param pucPowerCycled /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetPowerCycled(uint8* pucPowerCycled) { if (pucPowerCycled != NULL_PTR) { *pucPowerCycled = CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biPC; } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief Get the Thermal Warning /// /// \descr Get the Thermal Warning /// /// \param pucThermalWarning /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetThermalWarning(uint8* pucThermalWarning) { if (pucThermalWarning != NULL_PTR) { *pucThermalWarning = CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biTW; } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief Get the output overvoltage fault /// /// \descr Get the output overvoltage fault /// /// \param pucCHXOV /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXOV(uint8* pucCHXOV) { if (pucCHXOV != NULL_PTR) { *pucCHXOV = CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biCH1OV;//CH2OV is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief Get the output overvoltage fault /// /// \descr Get the output overvoltage fault /// /// \param pucCHXUV /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXUV(uint8* pucCHXUV) { if (pucCHXUV != NULL_PTR) { *pucCHXUV = CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biCH1UV;//CH2UV is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief CHx output current less than 0.5 times of the set value (CH2UC is disabled if 2PH is set to '1'). /// /// \descr CHx output current less than 0.5 times of the set value (CH2UC is disabled if 2PH is set to '1'). /// /// \param pucCHXUC /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXUC(uint8* pucCHXUC) { if (pucCHXUC != NULL_PTR) { *pucCHXUC = CddTps92682_DataMirror.StatRx.Reg0x12.Bit.biCH1UC;//CH2UC is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x12.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief CHx output current more then 1.5 times of the set value /// /// \descr CHx output current more then 1.5 times of the set value /// /// \param pucCHXOC /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXOC(uint8* pucCHXOC) { if (pucCHXOC != NULL_PTR) { *pucCHXOC = CddTps92682_DataMirror.StatRx.Reg0x12.Bit.biCH1OC;//CH2OC is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x12.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief ILIM bit is only set after CHxILIMCNT counter has reached the programmed value /// /// \descr ILIM bit is only set after CHxILIMCNT counter has reached the programmed value /// /// \param pucCHXILIM /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXILIM(uint8* pucCHXILIM) { if (pucCHXILIM != NULL_PTR) { *pucCHXILIM = CddTps92682_DataMirror.StatRx.Reg0x12.Bit.biCH1ILIM;//CH2OC is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x12.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief ILIM bit is only set after CHxILIMCNT counter has reached the programmed value /// /// \descr ILIM bit is only set after CHxILIMCNT counter has reached the programmed value /// /// \param pucCHXILIM /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetCHXISO(uint8* pucCHXISO) { if (pucCHXISO != NULL_PTR) { *pucCHXISO = CddTps92682_DataMirror.StatRx.Reg0x12.Bit.biCH1ISO;//CH2OC is disabled if 2PH is set to '1' } // return SPI Error status bit return ((CddTps92682_DataMirror.StatRx.Reg0x12.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- // Function definitions //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- /// \brief get content of status register FLT1 /// /// \descr /// /// \param ulChnIdx : channel index /// \param pFLT1 :content of status register FLT1(REG0x11) /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetFLT1(tCddTps92682_Reg0x11* pFLT1) { *pFLT1 = CddTps92682_DataMirror.StatRx.Reg0x11; // return SPI Error bit status return ((CddTps92682_DataMirror.StatRx.Reg0x11.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- // Function definitions //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- /// \brief get content of status register FLT2 /// /// \descr /// /// \param ulChnIdx : channel index /// \param pFLT2 : content of status register FLT2(REG0x12) /// /// \return boolean: TRUE - data are valid /// FALSE - data shall be discard //----------------------------------------------------------------------------- boolean CddTps92682_GetFLT2(tCddTps92682_Reg0x12* pFLT2) { *pFLT2 = CddTps92682_DataMirror.StatRx.Reg0x12; // return SPI Error bit status return ((CddTps92682_DataMirror.StatRx.Reg0x12.unRaw & CDDTPS92682_SPE) != CDDTPS92682_SPE) ? TRUE : FALSE; } //----------------------------------------------------------------------------- /// \brief Calculate odd parity bit based on 15 bits (Cmd, Addr, Data) and /// add it to bit position 8 /// /// \descr Concatenate Command bit, Address register and Data /// Calculate parity bit based on Cmd, Addr and data /// Add parity bit in order to have an odd parity on SPI Tx frame /// /// \param unCmd : Read or Write command bit shifted at the bit15 /// \param unAddr : Register address shifted at the bit position 9 /// \param unData : Data shifted at the bit position 0 /// /// \return uint16 : complete SPI command frame (Cmd, Addr, Parity Bit, Data) //----------------------------------------------------------------------------- STATIC_AL uint16 CddTps92682_AssembleSPICmd(const uint16 unCmd, const uint16 unAddr, const uint16 unData) { uint16 assembledCmd = 0; // Build this to shift through parity calculation uint16 parity = 0; // Parity bit calculated here uint16 packet = 0; // This will be what we send if(CDDTPS92682_WriteCmd == unCmd) { assembledCmd |= 0x8000; // Set CMD = 1 } assembledCmd |= (((unAddr << 9) & 0x7E00) | (uint16)(unData & 0x00FF)); packet = assembledCmd; // Calculate parity while(assembledCmd > 0) { // Count the number of 1s in the LSb if(assembledCmd & 0x0001) { parity++; } // Shift right assembledCmd >>= 1; } // If the LSb is a 0 (even # of 1s), we need to add the odd parity bit if(!(parity & 0x0001)) { packet |= (1 << 8); } return(packet); } //----------------------------------------------------------------------------- /// \brief Action executed synchronously with schedule Table /// /// \descr /// /// \param ucAction /// /// \return boolean //----------------------------------------------------------------------------- STATIC_AL boolean CddTps92682_StAction(const uint8 ucAction) { boolean boRestart = FALSE; switch (ucAction) { case CDDTPS92682_ST_ACT_DIS_BOOST_GPIO: CddTps92682_SetBoostEnableGpio(FALSE); break; case CDDTPS92682_ST_ACT_EN_BOOST_GPIO: CddTps92682_SetBoostEnableGpio(TRUE); break; case CDDTPS92682_ST_ACT_DIS_BOOST_LH_GPIO: CddTps92682_SetBoostLimpHomeGpio(FALSE); break; case CDDTPS92682_ST_ACT_EN_BOOST_REG: CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH1EN = 1; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH2EN = 1; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH1PDRVEN = 0; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH2PDRVEN = 1; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH1MAXDEN = 0; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biCH2MAXDEN = 0; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biSYNCEN = 0; CddTps92682_DataMirror.CtrlTx.Reg0x00.Bit.biFPINRST = 0; break; case CDDTPS92682_ST_ACT_DIS_BOOST_REG: break; case CDDTPS92682_ST_ACT_EN_BOOST_PWM: CddTps92682_SetBoostDuty(TRUE); break; case CDDTPS92682_ST_ACT_DIS_BOOST_PWM: CddTps92682_SetBoostDuty(FALSE); break; case CDDTPS92682_ST_ACT_READ_BOOST_FLT1: if(CddTps92682_DataMirror.StatRx.Reg0x11.Bit.biPC==1) { boRestart = TRUE; } break; default: //Do nothing break; } return boRestart; } //----------------------------------------------------------------------------- /// \brief Called after reception of a SPI frame /// /// \descr The function reads the content of SPI Rx data provided by SPI and /// store data in CddTps92682_DataMirror. /// /// \param unIx /// \param ulData : SPI Rx data (only 16 LSB valid) /// /// \return void //----------------------------------------------------------------------------- void CddTps92682_SpiRx(const uint16 unIx, const uint32 ulData) { boolean boSchTableRestart = FALSE; #if (CDDBUCK_CHIP_ERROR_HAND == CDDBUCk_CHIP_CPSQ5352) /* polling first frame processing - Send then Receive */ if(CddTps92682_cycleSpi == 0u) { CddTps92682_cycleSpi = 1u; } else { // calculate pointer to actual schedule table entry const tCddTps92682_SpiSchedTable* pTabEntry = &aCddTps92682_SpiSchedTable[CddTps92682_unSchedIx_Rx]; pTabEntry->punRx[unIx] = (uint16) ulData; // store RX data (only 16 LSB are relevant) // set index to next schedule table entry CddTps92682_unSchedIx_Rx = pTabEntry->ucNextEntry; CddTps92682_unSchedIx_Tx = pTabEntry->ucNextEntry; // make copy to ensure synchronism of RX and TX // calculate pointer to actual schedule table entry (read next TX entry to check action) pTabEntry = &aCddTps92682_SpiSchedTable[CddTps92682_unSchedIx_Tx]; if (pTabEntry->ucAction != CDDTPS92682_ST_NO_ACT) { boSchTableRestart = CddTps92682_StAction(pTabEntry->ucAction); if (boSchTableRestart != FALSE) { CddTps92682_unSchedIx_Rx = 0u; CddTps92682_unSchedIx_Tx = 0u; } } } #else // calculate pointer to actual schedule table entry const tCddTps92682_SpiSchedTable* pTabEntry = &aCddTps92682_SpiSchedTable[CddTps92682_unSchedIx_Rx]; pTabEntry->punRx[unIx] = (uint16) ulData; // store RX data (only 16 LSB are relevant) // set index to next schedule table entry CddTps92682_unSchedIx_Rx = pTabEntry->ucNextEntry; CddTps92682_unSchedIx_Tx = pTabEntry->ucNextEntry; // make copy to ensure synchronism of RX and TX // calculate pointer to actual schedule table entry (read next TX entry to check action) pTabEntry = &aCddTps92682_SpiSchedTable[CddTps92682_unSchedIx_Tx]; if (pTabEntry->ucAction != CDDTPS92682_ST_NO_ACT) { boSchTableRestart = CddTps92682_StAction(pTabEntry->ucAction); if (boSchTableRestart != FALSE) { CddTps92682_unSchedIx_Rx = 0u; CddTps92682_unSchedIx_Tx = 0u; } } #endif } //----------------------------------------------------------------------------- /// \brief Called before transmission of SPI telegram /// /// \descr The function reads the content of CddTps92682_DataMirror /// and adds the odd parity bit. /// /// \param unIx /// /// \return uint32 : Tx data (16 LSB are valid) //----------------------------------------------------------------------------- uint32 CddTps92682_SpiTx(const uint16 unIx) { // calculate pointer to actual schedule table entry const tCddTps92682_SpiSchedTable* pSchedEntry = &aCddTps92682_SpiSchedTable[CddTps92682_unSchedIx_Tx]; (void)unIx; // switch to next schedule table entry for next transmission CddTps92682_unSchedIx_Tx = pSchedEntry->ucNextEntry; // get SPI command (read or write), register address and contents of control register for next SPI frame // update parity bit according to control register data return (uint32) CddTps92682_AssembleSPICmd(pSchedEntry->unCmd, pSchedEntry->unAddr, *(pSchedEntry->punTx)); } #if (CDDBUCK_CHIP_ERROR_HAND == CDDBUCk_CHIP_CPSQ5352) //----------------------------------------------------------------------------- /// \brief Boost Chip Initialization - SPI Setup /// /// \descr This function sends SPI frames for initializing the boost /// - 20 frames of data in total /// /// \param void /// /// \return void : //----------------------------------------------------------------------------- void CddTps92682_SpiInit(void) { uint32 TransferCnt= 30000ul; uint32 ulTxData = 0ul; uint8 ucDevIdx = 0u; uint8 ucRxBuff[2]; uint8 ucTxBuff[2]; const tCddTps92682_SpiSchedTable* pTabEntry_Init; /* Delay 1ms,Ensure that the first frame write command response is successful */ while (TransferCnt) { TransferCnt--; } /* Send initialization data */ for(ucDevIdx = 0u; ucDevIdx < CDDTPS92682_Cfg_SpiinitSchedTableLen; ucDevIdx++) { /* calculate pointer to actual schedule table entry */ //pTabEntry_Init = &aCddTps92682_SpiinitSchedTable[ucDevIdx]; pTabEntry_Init = &aCddTps92682_SpiSchedTable[ucDevIdx]; ulTxData = CddTps92682_AssembleSPICmd(pTabEntry_Init->unCmd, pTabEntry_Init->unAddr, *(pTabEntry_Init->punTx)); ucTxBuff[0] = ulTxData & 0x00FF; ucTxBuff[1] = ulTxData >> 8; /* Send operation */ Spi_SetAsyncMode(SPI_INTERRUPT_MODE); Spi_SetupEB(SpiConf_SpiChannel_SpiChl_Boost,ucTxBuff, ucRxBuff, 2u); Spi_AsyncTransmit(SpiConf_SpiChannel_SpiChl_Boost); /* Waiting for sending to complete */ TransferCnt = 0ul; while ((Spi_GetJobResult(SpiConf_SpiChannel_SpiChl_Boost) != 0) && (TransferCnt < 30000ul)) { TransferCnt++; } *pTabEntry_Init->punRx = ucRxBuff[0] | (ucRxBuff[1]<<8); /* */ if(ucDevIdx < CDDTPS92682_Cfg_SpiinitSchedTableLen - 1) { //pTabEntry_Init = &aCddTps92682_SpiinitSchedTable[ucDevIdx+1]; pTabEntry_Init = &aCddTps92682_SpiSchedTable[ucDevIdx+1]; if (pTabEntry_Init->ucAction != CDDTPS92682_ST_NO_ACT) { (void) CddTps92682_StAction(pTabEntry_Init->ucAction); } else{} } else{} } } #endif #if 0 //----------------------------------------------------------------------------- /// \brief Called before SBC sleep /// /// \descr The function disables the booster /// /// \param void /// /// \return void //----------------------------------------------------------------------------- void CddTps92682_SetBoostSleep(void) { uint16 unCmdAddrData = CddTps92682_CalculateAndAddOddParityBit(CDDTPS92682_WriteCmd, CDDTPS92682_WriteReg0x06Addr, 0u); (void)CDDBOOST_TransferMsg((uint8)CDDSPI_DEVICE(BOOST), &unCmdAddrData); } #endif #define ctadCddBoost_STOP_SEC_CODE #include <../Cfg/CddTps92682_MemMap.h> //----------------------------------------------------------------------------- // End declaration or definitions of functions //-----------------------------------------------------------------------------