⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 des_mc33972.h

📁 BCM 控制demo源代码
💻 H
字号:
/*******************************************************************************/
/**
Copyright (c) 2007 Freescale Semiconductor
\file       des_MC33742.h
\brief      Register definitions and function prototypes for MSDI handling
\author     Freescale Semiconductor
\author     B05114
\version    0.2
\date       May/2007
*/
/*******************************************************************************/ 

/** Variable types and common definitions */
#include "typedefs.h" 

#ifndef _DES_MC33972_H  /* Prevent duplicated includes */
#define _DES_MC33972_H


typedef struct{         /* Struct for MSDI status */
    UINT8 Flags;
    UINT8 SPinputs;
    UINT16 SGinputs ;
}MSDI_Stat32b;


/* MSDI Identifiers */
#define MSDI_I      0
#define MSDI_II     1


/* MSDI I default configuration */ 
/* Inputs switch to GND, wetting timer enabled */
#define  MSDI_I_SETTINGS_INIT     (MSDI_NONE)
#define  MSDI_I_WKPINTSP_INIT     (MSDI_NONE)
#define  MSDI_I_WKPINTSG_INIT     (MSDI_NONE)
#define  MSDI_I_WETCURRENTSP_INIT (MSDI_SP0_SP7)
#define  MSDI_I_WETCURRENTSG_INIT (MSDI_SG0_SG13)
#define  MSDI_I_ANALOG_INIT       (MSDI_AN_NONE|MSDI_AN_HiImpedance)
#define  MSDI_I_WETTIMERSP_INIT   (MSDI_SP0_SP7)
#define  MSDI_I_WETTIMERSG_INIT   (MSDI_SG0_SG13)
#define  MSDI_I_TRISTATESP_INIT   (MSDI_NONE)
#define  MSDI_I_TRISTATESG_INIT   (MSDI_NONE)


/* MSDI II default configuration */
/* Inputs switch to GND except SP7, wetting timer disabled, 
   all inputs high impedance, AMUX SP2 (Analog voltage 1) */
#define  MSDI_II_SETTINGS_INIT     (MSDI_SP7)
#define  MSDI_II_WKPINTSP_INIT     (MSDI_NONE)
#define  MSDI_II_WKPINTSG_INIT     (MSDI_NONE)
#define  MSDI_II_WETCURRENTSP_INIT (MSDI_NONE)
#define  MSDI_II_WETCURRENTSG_INIT (MSDI_SG0|MSDI_SG2|MSDI_SG4)
#define  MSDI_II_ANALOG_INIT       (MSDI_AN_SP2|MSDI_AN_HiImpedance)
#define  MSDI_II_WETTIMERSP_INIT   (MSDI_NONE)
#define  MSDI_II_WETTIMERSG_INIT   (MSDI_NONE)
#define  MSDI_II_TRISTATESP_INIT   (MSDI_SP0_SP7)
#define  MSDI_II_TRISTATESG_INIT   (MSDI_SG0_SG13)

	
/* Commands */
#define MSDI_SWITCHSTAT_CMD      0x00
#define MSDI_SETTINGS_CMD        0x01
#define MSDI_WAKEUPINTSP_CMD     0x02
#define MSDI_WAKEUPINTSG_CMD     0x03
#define MSDI_WETCURRENTSP_CMD    0x04
#define MSDI_WETCURRENTSG_CMD    0x05
#define MSDI_ANALOG_CMD          0x06
#define MSDI_WETTINGTIMERSP_CMD  0x07
#define MSDI_WETTINGTIMERSG_CMD  0x08
#define MSDI_TRISTATESP_CMD      0x09
#define MSDI_TRISTATESG_CMD      0x0A
#define MSDI_CALIBRATION_CMD     0x0B
#define MSDI_SLEEP_CMD           0x0C
#define MSDI_RESET_CMD           0x7F

/* SP/ SG configuration */
#define MSDI_NONE            0x0000	
#define MSDI_SP0             0x0001
#define MSDI_SP1             0x0002
#define MSDI_SP2             0x0004
#define MSDI_SP3             0x0008
#define MSDI_SP4             0x0010
#define MSDI_SP5             0x0020
#define MSDI_SP6             0x0040
#define MSDI_SP7             0x0080
#define MSDI_SP0_SP7         0x00FF

#define MSDI_SG0             0x0001
#define MSDI_SG1             0x0002
#define MSDI_SG2             0x0004
#define MSDI_SG3             0x0008
#define MSDI_SG4             0x0010
#define MSDI_SG5             0x0020
#define MSDI_SG6             0x0040
#define MSDI_SG7             0x0080
#define MSDI_SG8             0x0100
#define MSDI_SG9             0x0200
#define MSDI_SG10            0x0400
#define MSDI_SG11            0x0800
#define MSDI_SG12            0x1000
#define MSDI_SG13            0x2000
#define MSDI_SG0_SG13        0x3FFF

/* Configuration constants */
#define MSDI_SWtoGND         0
#define MSDI_SWtoBAT         1
#define MSDI_2mA             0
#define MSDI_16mA            1


/* Analog Command */
/* Current Mode */
#define MSDI_AN_HiImpedance  0x0000
#define MSDI_AN_2mA          0x0020
#define MSDI_AN_16mA         0x0040

/* Channel */
#define MSDI_AN_NONE         0x0000
#define MSDI_AN_SG0          0x0001
#define MSDI_AN_SG1          0x0002
#define MSDI_AN_SG2          0x0003
#define MSDI_AN_SG3          0x0004
#define MSDI_AN_SG4          0x0005
#define MSDI_AN_SG5          0x0006
#define MSDI_AN_SG6          0x0007
#define MSDI_AN_SG7          0x0008
#define MSDI_AN_SG8          0x0009
#define MSDI_AN_SG9          0x000A
#define MSDI_AN_SG10         0x000B
#define MSDI_AN_SG11         0x000C
#define MSDI_AN_SG12         0x000D
#define MSDI_AN_SG13         0x000E
#define MSDI_AN_SP0          0x000F
#define MSDI_AN_SP1          0x0010
#define MSDI_AN_SP2          0x0011
#define MSDI_AN_SP3          0x0012
#define MSDI_AN_SP4          0x0013
#define MSDI_AN_SP5          0x0014
#define MSDI_AN_SP6          0x0015
#define MSDI_AN_SP7          0x0016

/* Timer values for Sleep Command */
#define MSDI_NO_SCAN         0x0000
#define MSDI_SCAN_1ms        0x0001
#define MSDI_SCAN_2ms        0x0002
#define MSDI_SCAN_4ms        0x0003
#define MSDI_SCAN_8ms        0x0004
#define MSDI_SCAN_16ms       0x0005
#define MSDI_SCAN_32ms       0x0006
#define MSDI_SCAN_64ms       0x0007

#define MSDI_INT_32ms        0x0000
#define MSDI_INT_64ms        0x0008
#define MSDI_INT_128ms       0x0010
#define MSDI_INT_256ms       0x0018
#define MSDI_INT_512ms       0x0020
#define MSDI_INT_1024ms      0x0028
#define MSDI_INT_2048ms      0x0030
#define MSDI_NO_INTms        0x0038

/* Status */
/* Flags */
#define MSDI_INTFLG          0x40
#define MSDI_THEMFLG         0x80

/* SP inputs */
#define MSDI_SP0_R           0x01
#define MSDI_SP1_R           0x02
#define MSDI_SP2_R           0x04
#define MSDI_SP3_R           0x08
#define MSDI_SP4_R           0x10
#define MSDI_SP5_R           0x20
#define MSDI_SP6_R           0x40
#define MSDI_SP7_R           0x80

/* SG inputs */
#define MSDI_SG0_R           0x0001
#define MSDI_SG1_R           0x0002
#define MSDI_SG2_R           0x0004
#define MSDI_SG3_R           0x0008
#define MSDI_SG4_R           0x0010
#define MSDI_SG5_R           0x0020
#define MSDI_SG6_R           0x0040
#define MSDI_SG7_R           0x0080
#define MSDI_SG8_R           0x0100
#define MSDI_SG9_R           0x0200
#define MSDI_SG10_R          0x0400
#define MSDI_SG11_R          0x0800
#define MSDI_SG12_R          0x1000
#define MSDI_SG13_R          0x2000
		
		
/** Function Prototypes */

/** Write MSDI register and read Serial Output response */
void des_MC33972_SendCommand(UINT8 u8MSDI_ID, UINT8 u8MSDI_Command, UINT16 u8MSDI_Data);

/** MSDI initial configuration with default values */
void des_MC33972_Config(UINT8 u8MSDI_ID);

/** Set MSDI in sleep mode and configures scan and interrupt timers */
void des_MC33972_SleepMode_IntTimers(UINT8 u8MSDI_ID, UINT8 u8TimersConfig);
        
/** Configure SPx pin(s) as switch to battery or switch to ground */
void des_MC33972_Set_SPinputs(UINT8 u8MSDI_ID, UINT8 u8SelectSP, UINT8 u8Connect);

/** Select SPx inputs wetting current */
void des_MC33972_Set_SP_WettingCurrent(UINT8 u8MSDI_ID, UINT8 u8SPin, UINT8 bCurrent);

/** Select SGx inputs wetting current */
void des_MC33972_Set_SG_WettingCurrent(UINT8 u8MSDI_ID, UINT16 u16SGin, UINT8 bCurrent);

/** Enable/ disable the wetting timer for SPx inputs */
void des_MC33972_SPinputs_WettingTimer(UINT8 u8MSDI_ID, UINT8 u8SPint, UINT8 u8Select);

/** Enable/ disable the wetting timer for SGx inputs */
void des_MC33972_SGinputs_WettingTimer(UINT8 u8MSDI_ID, UINT16 u16SGin, UINT8 u8Select);

/**  Set SPx inputs in high impedance state */
void des_MC33972_Set_SP_HighImpedance(UINT8 u8MSDI_ID, UINT8 u8SPin);

/**  Set SGx inputs in high impedance state */
void des_MC33972_Set_SG_HighImpedance(UINT8 u8MSDI_ID, UINT16 u16SGin);

/** Select SPx/ SGx input(s) for wake-up interrupt  */
void des_MC33972_Select_WakeUp_Interrupt(UINT8 u8MSDI_ID, UINT8 u8SPin, UINT16 u16SGin);

/** Select analog input channel and desired current or high impedance */
void des_MC33972_Set_Analog_Channel(UINT8 u8MSDI_ID, UINT8 u8Channel, UINT8 u8Mode);

/** Read SPx, SGx and flags status */ 
MSDI_Stat32b des_MC33972_Read_Status(UINT8 u8MSDI_ID);


#endif /* _DES_MC33972_H */
/*******************************************************************************/ 	




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -