//***************************************************************************** // (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 CddCPSQ5352_Com.h /// /// \brief SPI communication interface /// /// \author OTT, Peter ALDE-RT/EES6 //----------------------------------------------------------------------------- #ifndef CDD_CPSQ5352_COM_2021_01_21_H_ #define CDD_CPSQ5352_COM_2021_01_21_H_ //----------------------------------------------------------------------------- // Includes //----------------------------------------------------------------------------- #include #include <../Gen/CddCPSQ5352_Types.h> #include <../Cfg/CddCPSQ5352_Cfg.h> #include //----------------------------------------------------------------------------- // Defines //----------------------------------------------------------------------------- #define CDDCPSQ5352_NbOfBit_SPIFrame 16u #define CDDCPSQ5352_ParityBit 0x0100u // Set parity bit (bit8) to '1' //----------------------------------------------------------------------------- // Mirror CPSQ5352 regiters //----------------------------------------------------------------------------- typedef struct tCddCPSQ5352_CtrlReg { tCddCPSQ5352_SYSCFG1 aSYSCFG1 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_SYSCFG2 aSYSCFG2 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CMWTAP aCMWTAP [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_TWLMT aTWLMT [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_SLEEP aSLEEP [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxIADJL aCHxIADJL [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxIADJH aCHxIADJH [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_PWMDIV aPWMDIV [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxPWML aCHxPWML [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxPWMH aCHxPWMH [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxTON aCHxTON [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHCFG1 aLHCFG1 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHCFG2 aLHCFG2 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHxIADJL aLHxIADJL [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHxIADJH aLHxIADJH [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHCHxPWML aLHCHxPWML[CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHCHxPWMH aLHCHxPWMH[CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHxTON aLHxTON [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_RESET aRESET [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_SYSCFG3 aSYSCFG3 [CDDCPSQ5352_Cfg_NbOfDevices]; }tCddCPSQ5352_CtrlReg; typedef struct tCddCPSQ5352_StatReg { tCddCPSQ5352_STATUS1 aSTATUS1 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_STATUS2 aSTATUS2 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_STATUS3 aSTATUS3 [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxVIN aCHxVIN [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxVLED aCHxVLED [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxVLEDON aCHxVLEDON [CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_CHxVLEDOFF aCHxVLEDOFF[CDDCPSQ5352_NbOfChannel][CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_TEMPL aTEMPL [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_TEMPH aTEMPH [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_V5D aV5D [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHIL aLHIL [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHIH aLHIH [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHIFILTL aLHIFILTL [CDDCPSQ5352_Cfg_NbOfDevices]; tCddCPSQ5352_LHIFILTH aLHIFILTH [CDDCPSQ5352_Cfg_NbOfDevices]; }tCddCPSQ5352_StatReg; typedef struct tCddCPSQ5352_DataMirror { tCddCPSQ5352_CtrlReg CtrlTx; tCddCPSQ5352_CtrlReg CtrlRx; tCddCPSQ5352_StatReg StatRx; }tCddCPSQ5352_DataMirror; //----------------------------------------------------------------------------- // Interfaces //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- // Start declaration or definitions of functions //----------------------------------------------------------------------------- #define ctadCddLed_START_SEC_CODE #include <../Cfg/CddCPSQ5352_MemMap.h> void CddCPSQ5352_EnableChannel(const uint32 ulChIdx, const boolean boEn); void CddCPSQ5352_SetCHxIADJH (const uint32 ulChnIdx, const uint8 ucCHxIDJH); void CddCPSQ5352_SetCHxIADJL (const uint32 ulChnIdx, const tCddCPSQ5352_CHxIADJL CHxIADJL); boolean CddCPSQ5352_GetSTATUS1 (const uint32 ulChnIdx, tCddCPSQ5352_STATUS1* pSTATUS1); boolean CddCPSQ5352_GetSTATUS2 (const uint32 ulChnIdx, tCddCPSQ5352_STATUS2* pSTATUS2); boolean CddCPSQ5352_GetSTATUS3 (const uint32 ulChnIdx, tCddCPSQ5352_STATUS3* pSTATUS3); boolean CddCPSQ5352_GetCHxVIN (const uint32 ulChnIdx, uint8* pucCHxVIN); boolean CddCPSQ5352_GetCHxVLED (const uint32 ulChnIdx, uint8* pucCHxVLED); boolean CddCPSQ5352_GetCHxVLEDON (const uint32 ulChnIdx, uint8* pucCHxVLEDON); boolean CddCPSQ5352_GetCHxVLEDOFF(const uint32 ulChnIdx, uint8* pucCHxVLEDOFF); boolean CddCPSQ5352_GetCHxIADJL (const uint32 ulChnIdx, uint8* pucCHxIADJL); boolean CddCPSQ5352_GetCHxIADJH (const uint32 ulChnIdx, uint8* pucCHxIADJH); #define ctadCddLed_STOP_SEC_CODE #include <../Cfg/CddCPSQ5352_MemMap.h> //----------------------------------------------------------------------------- // End declaration or definitions of functions //----------------------------------------------------------------------------- #endif // CDD_CPSQ5352_COM_2021_01_21_H_