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
							 |