小磷光一

BF533ADT7516时序底层读写的实现

0
阅读(2691)

 

* 名称 : ADT7516_SPISS_SELECT
* 功能 : 控制CPLD内部 使SPISS 选通 ADT7516_SPISS
* 入口参数 :无
* 出口参数 :无
****************************************************************************/

void ADT7516_TEST(void)
{
	ADT7516_READ_REG(0x7F,1); //读状态 如果返回为1 则表示进入了SPI模式
	udelay(0x3ff);
	if(databuf[0]==0x01)
	{
		printf( "\nThe SPI Lock Status has been entered!\n\r" );
	}
	    
	ADT7516_READ_REG(0x4D,1); //读 device ID 03
	udelay(0x3ff);
	    
	if(databuf[0]==0x03) 
	{
	    printf( "\nThe Device ID is  %d\n\r",databuf[0]);
	} 
}

/****************************************************************************
* 名称 : ADT7516_CTL
* 功能 : 设置各种控制模式 中断允许 AIN2 选通 
* 入口参数 :无
* 出口参数 :无
****************************************************************************/

void ADT7516_CTL(void)
{
	//18H Control configure 1
	//C0=1 启动监听模式 C1-C2 00 AIN1 AIN2 选通 C3=0 LDAC 选择C4=0 保留
	//C5=0 INT 允许 C6=0 低电平中断 C7=0 工作模式
	
	cmd[0] = 0x21; 
	ADT7516_WRITE_REG(0x18,cmd,1); 
	
	//19H Control configure 2
	// C2-C0  采样通道选择 011 选择了 AIN2 C3=0 保留 C4=1 单通道周期
	
	cmd[0] = 0x03; 
	ADT7516_WRITE_REG(0x19,cmd,1); 
	 
	// 1A H Control configure 3
	// C0=0 采样率为1.4K C1=0 DAC 为8位 C2=0 保留 C3=0 LDAC控制输出、
	// C4 =0 内部基准电压 C5=0 DAC A 选通 C5=1 输出为内部温度 C6=0 DAC B输出C6=1 输出外部温度
	//C7=0 保留
	 
	cmd[0] = 0x08; 
	ADT7516_WRITE_REG(0x1A,cmd,1);
	 
	//1B H  DAC CONFIGURE
	// C0-C3 = 1 DAC 输出电压范围 0-2*VREF  为0 0-VREF
	//C5-C4  LDAC 内部控制时更新方式 (此配置为外部控制)
	//C6 C7 =0 保留
	 
	cmd[0] = 0x00; 
	ADT7516_WRITE_REG(0x1B,cmd,1);
	 
	// 1C H LDAC CONFIGURE 
	// C0 C1 C2 C3 为1 S时 内部更新DAC A B C D 的输出 (LDAC内部起作用时)
	// C4= 1 DAC A B 输出基准电压为内部 为0 时输出为外部
	// C5= 1 DAC C D 输出基准电压为内部 为0 时输出为外部
	//D6 D7 =0 保留 
	 
	cmd[0] = 0x30; 
	ADT7516_WRITE_REG(0x1c,cmd,1);
	 
	//1D H INT MASK
	// 中断允许控制 为0 允许中断 AIN2 中断允许
	
	cmd[0] = 0xdf;//df; 
	ADT7516_WRITE_REG(0x1d,cmd,1);
	
	// 1EH INT MASK 2 
	// C4 允许VDD中断 其他保留
	 
	cmd[0] = 0x10; 
	ADT7516_WRITE_REG(0x1e,cmd,1);
}

/****************************************************************************
* 名称 : ADT7516_RST
* 功能 : ADT7516 软件控制复位
* 入口参数 :无
* 出口参数 :无
****************************************************************************/

void ADT7516_RST(void)
{
	cmd[0] = 0x80; 
	ADT7516_WRITE_REG(0x19,cmd,1);
}