You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
4.3 KiB

4 years ago
////////////////////////////////////////////////////////////////////////////
///@copyright Copyright (c) 2017, ���ؿƼ� All rights reserved.
///-------------------------------------------------------------------------
/// @file msa300.c
/// @brief msa300 driver app
///-------------------------------------------------------------------------
/// @version 1.0
/// @author CC
/// @date 20170122
/// @note cc_AS_stc01
//////////////////////////////////////////////////////////////////////////////
#ifndef _cw63xx_H
#define _cw63xx_H
#define D_i2c_addr_cw63xx 0x12
#include "../msp/iic_sim.h"
//#include "../bsp/type_hs.h"
///--------------------------------------------------------------------
#define D_CW63X_REG_system 0X00
#define D_CW63X_REG_Charge 0X01
#define D_CW63X_EN_NTC BITN7 ///Enable NTC check
#define D_CW63X_EN_CHG BITN6 /// Enable charging
#define D_CW63X_EN_TIMER BITN5 // Enalble charging timer
// in power-off state,the IC will turn off LDO1,2,3,B ut hte LDORTC/LDO4 will remain on
#define D_CW63X_power_off 0x0a
//L1_cw63xx_set(D_CW63X_REG_Safety,D_CW63X_EN_NTC|D_CW63X_EN_CHG|D_CW63X_EN_TIMER|D_CW63X_power_off);
//L1_cw63xx_set(D_CW63X_REG_Safety,D_CW63X_EN_NTC|D_CW63X_EN_CHG|D_CW63X_EN_TIMER);
///--------------------------------------------------------------------
#define D_CW63X_REG_Safety 0X02
#define D_CW63X_LowBateryThreshold 0
#define L0_set_LBT(x) ((x) - 28)
// L0_set_LBT(28)
/// L1_cw63xx_set(D_CW63X_REG_Safety,L0_set_LBT(28));/// 2.8v����
/// fixme ��������ʵ�ֵ�Դ�IJ���
///--------------------------------------------------------------------
#define D_CW63X_REG_Interrupt 0X03
#define D_CW63X_REG_Interrupt_type 0X04
#define D_CW63X_INT_CHG_OUT BITN7 ///Charging unplugged
#define D_CW63X_INT_TIMER_EXPIRE BITN6 ///Charging timer expire
#define D_CW63X_INT_CHG_INT BITN5 ///Charger detected
#define D_CW63X_INT_BAT_FULL BITN4 ///Battery full
#define D_CW63X_INT_BAT_OT BITN3 ///Battery over temperature
#define D_CW63X_INT_BAT_UT BITN2 ///Battery under temperature
#define D_CW63X_INT_LOW_BAT BITN1 ///Battery low voltage
#define D_CW63X_INT_BUTTON BITN0 ///button detected
///--------------------------------------------------------------------
#define D_CW63X_REG_LDO1 0X0A
#define D_CW63X_REG_LDO2 0X0B
#define D_CW63X_REG_LDO3 0X0C
#define D_CW63X_REG_LDO4 0X0D
//// reg[]543] reg[210]
//// 54 3
//// || |210
#define D_CW63XX_V800 B0000_0000
#define D_CW63XX_V975 B0000_0111
#define D_CW63XX_1V4 B0001_0100
#define D_CW63XX_1V8 B0001_1100
#define D_CW63XX_2V1 B0011_0001
#define D_CW63XX_2V5 B0011_0101
#define D_CW63XX_2V8 B0011_1000
#define D_CW63XX_3V B0011_1010
#define D_CW63XX_3V2 B0011_1100
#define D_CW63XX_ON B1000_0000
#define D_CW63XX_OFF B0000_0000
////extern void L1_cw63xx_init(void);
extern void L3_cw63xx_fun(U8 *pPara);
extern void L1_cw63xx_sta(void);
///debug ʹ��U8
////ine L3_cw63xx_fun(x);
///---------------------------------
#define D_power_VCC1 D_CW63X_REG_LDO1
#define D_power_VCC2 D_CW63X_REG_LDO2
#define D_power_VCC3 D_CW63X_REG_LDO3
#define D_power_VCC D_CW63X_REG_LDO4
/*
#define D_power_rf_Rxd D_power_VCC2 /// rf�����
#define D_power_rf_Txd D_power_VCC1 /// rf �����
#define D_power_AS D_power_VCC3 /// AS�
#define L2_power_AS_OFF(); L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_AS,D_CW63XX_OFF|D_CW63XX_3V);
#define L2_power_AS_ON(); L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_AS,D_CW63XX_ON|D_CW63XX_3V);
#define L2_power_rf_Rxd_OFF(); L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Rxd,D_CW63XX_OFF|D_CW63XX_3V);
#define L2_power_rf_Rxd_ON(); L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Rxd,D_CW63XX_ON|D_CW63XX_3V);
//#define L2_power_rf_Txd_OFF(); //L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Txd,D_CW63XX_OFF|D_CW63XX_3V);
//#define L2_power_rf_Txd_ON(); //L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Txd,D_CW63XX_ON|D_CW63XX_3V);
/// fixme for the
#define L2_power_rf_Txd_OFF(); //L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Rxd,D_CW63XX_OFF|D_CW63XX_3V);
#define L2_power_rf_Txd_ON(); //L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_power_rf_Rxd,D_CW63XX_ON|D_CW63XX_3V);
*/
#define L1_cw63xx_init() L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_CW63X_REG_Charge,0x3F);\
L2_I2C_WriteCmd(D_i2c_addr_cw63xx,D_CW63X_REG_Safety,0x05);///n3.3v baongjin
#endif // #ifndef _cw63xx_H