88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef JW3425IIC_H
 | |||
|  | #define JW3425IIC_H
 | |||
|  | 
 | |||
|  | #include "base/define.h"
 | |||
|  | #include "gpio_cfg.h"
 | |||
|  | 
 | |||
|  | #define SDA_IN()  IIC_SDA_DIR(1)	//PB11输入模式
 | |||
|  | #define SDA_OUT() IIC_SDA_DIR(0)//PB11输出模式
 | |||
|  | #define IIC_SDA(x)  PBout(I2IC_SDA_Pin_Nu)=(x)
 | |||
|  | #define IIC_SCL(x)  PBout(I2IC_SCL_Pin_Nu)=(x)
 | |||
|  | #define READ_SDA    (PBin(I2IC_SDA_Pin_Nu)&0x01)
 | |||
|  | #define IIC_PLUS_DELAY  5
 | |||
|  | #define I2C_OPERATION_OUTTIME 100000
 | |||
|  | 
 | |||
|  | void I2C_init(void); | |||
|  | void I2C_Definit(void); | |||
|  | void IIC_SDA_DIR(uint8_t dir); | |||
|  | int32_t I2C_master_write(uint16_t address, uint8_t *src, uint32_t size, uint32_t *nwriten, uint8_t bi_dir); | |||
|  | /* @param bi_dir: option using in transceive */ | |||
|  | int32_t I2C_master_read(uint16_t address, uint8_t *dst, uint32_t size, uint32_t *nread, uint8_t bi_dir); | |||
|  | /* @param bi_dir: option using in transceive */ | |||
|  | int32_t I2C_master_write_read(uint16_t address, uint8_t*cmd, uint8_t cmd_size,uint8_t *dst, uint32_t read_size, uint32_t *nread); | |||
|  | /*
 | |||
|  | @brief   Vref电压校准 | |||
|  | @param0  0不更新,1更新 | |||
|  | @param1  校准值 | |||
|  | */ | |||
|  | void MC_VrefTrim(void); | |||
|  | /*
 | |||
|  | @brief   Iref电压校准 | |||
|  | @param0  Iref1 0不更新,1更新 | |||
|  | @param1  Iref2 0不更新,1更新 | |||
|  | @param2  Iref1 校准值 | |||
|  | @param3  Iref2 校准值 | |||
|  | */ | |||
|  | void MC_IrefTrim(void); | |||
|  | /*
 | |||
|  | @brief   Iref1电压校准 | |||
|  | @param0  0不更新,1更新 | |||
|  | @param1  校准值 | |||
|  | */ | |||
|  | void MC_RC4MTrim(void); | |||
|  | /*
 | |||
|  | @brief   RC128K校准 | |||
|  | @param0  0不更新,1更新 | |||
|  | @param1  校准值 | |||
|  | */ | |||
|  | void MC_RC128KTrim(void); | |||
|  | 
 | |||
|  | /*
 | |||
|  | @brief   设置MTP电压 | |||
|  | @param0  低压 | |||
|  | @param1  高压 | |||
|  | */ | |||
|  | void MC_SetMTPVol(void); | |||
|  | /*
 | |||
|  | @brief   设置MTP电压 | |||
|  | @param0  MTP地址 | |||
|  | @param1  擦除模式 | |||
|  | */ | |||
|  | void MC_EraseMTP(void); | |||
|  | /*
 | |||
|  | @brief   MTP写入数据 | |||
|  | @param0..N  编程数据 | |||
|  | */ | |||
|  | void MC_IICWriteMTP(void); | |||
|  | /*
 | |||
|  | @brief   MTP读数据 | |||
|  | @param0  读取数据字节长度 | |||
|  | */ | |||
|  | void MC_IICReadMTP(void); | |||
|  | /*
 | |||
|  | @brief   MTP状态查询 | |||
|  | */ | |||
|  | void MC_IICCheckMTPState(void); | |||
|  | /*
 | |||
|  | @brief MTP下载程序 | |||
|  | @param 更新地址 | |||
|  | @param 烧录长度 | |||
|  | */ | |||
|  | void MC_IICUpdateMTP(void); | |||
|  | /*
 | |||
|  | @brief   MTP使能或失能 | |||
|  | @param0  0失/1使能 | |||
|  | */ | |||
|  | void MC_IICEnMTP(void); | |||
|  | #endif
 |