Example #1
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_SytemCalibFull
*	功能说明: 启动系统校准满位. 请将AIN+ AIN-接最大输入电压源,执行该函数。校准应该由主程序控制并保存校准参数。
*			 执行完毕后。可以通过 TM7705_ReadReg(REG_FULL_CH1) 和  TM7705_ReadReg(REG_FULL_CH2) 读取校准参数。
*	形    参:  _ch : ADC通道,1或2
*	返 回 值: 无
*********************************************************************************************************
*/
void TM7705_SytemCalibFull(unsigned char _ch) {
	if (_ch == 1) {
		/* 校准CH1 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_1);	/* 写通信寄存器,下一步是写设置寄存器,通道1 */
		TM7705_WriteByte(MD_CAL_FULL | __CH1_GAIN_BIPOLAR_BUF | FSYNC_0);/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 */
	}
	else if (_ch == 2) {
		/* 校准CH2 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_2);	/* 写通信寄存器,下一步是写设置寄存器,通道2 */
		TM7705_WriteByte(MD_CAL_FULL | __CH2_GAIN_BIPOLAR_BUF | FSYNC_0);	/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 */
	}
}
Example #2
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_CalibSelf
*	功能说明: 启动自校准. 内部自动短接AIN+ AIN-校准0位,内部短接到Vref 校准满位。此函数执行过程较长,
*			  实测约 180ms
*	形    参:  _ch : ADC通道,1或2
*	返 回 值: 无
*********************************************************************************************************
*/
void TM7705_CalibSelf(unsigned char _ch) {
	if (_ch == 1) {
		/* 自校准CH1 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_1);	/* 写通信寄存器,下一步是写设置寄存器,通道1 */
		TM7705_WriteByte(MD_CAL_SELF | __CH1_GAIN_BIPOLAR_BUF | FSYNC_0);/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 --- 时间较长,约180ms */
	}
 	
 	else if (_ch == 2) {
		/* 自校准CH2 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_2);	/* 写通信寄存器,下一步是写设置寄存器,通道2 */
		TM7705_WriteByte(MD_CAL_SELF | __CH2_GAIN_BIPOLAR_BUF | FSYNC_0);	/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成  --- 时间较长,约180ms */
	}
}
Example #3
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_CalibSelf
*	功能说明: 启动自校准. 内部自动短接AIN+ AIN-校准0位,内部短接到Vref 校准满位。此函数执行过程较长,
*			  实测约 180ms
*	形    参:  _ch : ADC通道,1或2
*	返 回 值: 无
*********************************************************************************************************
*/
void ICACHE_FLASH_ATTR
TM7705_CalibSelf(uint8_t _ch)
{
	if (_ch == 1){
		/* 自校准CH1 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_1);	/* 写通信寄存器,下一步是写设置寄存器,通道1 */
		TM7705_WriteByte(MD_CAL_SELF | __CH1_GAIN_BIPOLAR_BUF | FSYNC_0);/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 --- 时间较长,约180ms */
	}
	else if (_ch == 2){
		/* 自校准CH2 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_2);	/* 写通信寄存器,下一步是写设置寄存器,通道2 */
		TM7705_WriteByte(MD_CAL_SELF | __CH2_GAIN_BIPOLAR_BUF | FSYNC_0);	/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成  --- 时间较长,约180ms */
	}
	os_printf("TM7705_CalibSelf %d\r\n", _ch);
}
Example #4
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_SytemCalibZero
*	功能说明: 启动系统校准零位. 请将AIN+ AIN-短接后,执行该函数。校准应该由主程序控制并保存校准参数。
*			 执行完毕后。可以通过 TM7705_ReadReg(REG_ZERO_CH1) 和  TM7705_ReadReg(REG_ZERO_CH2) 读取校准参数。
*	形    参: _ch : ADC通道,1或2
*	返 回 值: 无
*********************************************************************************************************
*/
void ICACHE_FLASH_ATTR
TM7705_SytemCalibZero(uint8_t _ch)
{
	if (_ch == 1)
	{
		/* 校准CH1 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_1);	/* 写通信寄存器,下一步是写设置寄存器,通道1 */
		TM7705_WriteByte(MD_CAL_ZERO | __CH1_GAIN_BIPOLAR_BUF | FSYNC_0);/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 */
	}
	else if (_ch == 2)
	{
		/* 校准CH2 */
		TM7705_WriteByte(REG_SETUP | WRITE | CH_2);	/* 写通信寄存器,下一步是写设置寄存器,通道1 */
		TM7705_WriteByte(MD_CAL_ZERO | __CH2_GAIN_BIPOLAR_BUF | FSYNC_0);	/* 启动自校准 */
		TM7705_WaitDRDY();	/* 等待内部操作完成 */
	}
}
Example #5
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_ReadAdc1
*	功能说明: 读通道1或2的ADC数据
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
uint16_t ICACHE_FLASH_ATTR
TM7705_ReadAdc(u8 _ch)
{
	u8 i;
	u16 read = 0;

	/* 为了避免通道切换造成读数失效,读2次 */
	for (i = 0; i < 2; i++){
		TM7705_WaitDRDY();		/* 等待DRDY口线为0 */
		if (_ch == 1){
			TM7705_WriteByte(0x38);
		}else if (_ch == 2){
			TM7705_WriteByte(0x39);
		}
		read = TM7705_Read2Byte();
	}
	return read;
}
Example #6
0
/*
*********************************************************************************************************
*	函 数 名: TM7705_ReadAdc
*	功能说明: 读通道1或2的ADC数据
*	形    参:  _ch : ADC通道,1或2
*	返 回 值: 0 ~ 65535
*********************************************************************************************************
*/
unsigned short TM7705_ReadAdc(unsigned char _ch) {
	unsigned char i;
	unsigned short read = 0;

	/* 为了避免通道切换造成读数失效,读3次 */
	for (i = 0; i < 3; i++) {
		TM7705_WaitDRDY();		/* 等待DRDY口线为0 */

		if (_ch == 1) {
			TM7705_WriteByte(0x38);
		}
		else if (_ch == 2) {
			TM7705_WriteByte(0x39);
		}

		read = TM7705_Read2Byte();
	}
	return read;
}