TM7705、TM7707使用

TM7705、TM7707的硬件电路

      TM7705和TM7707的是PIN对PIN(管脚)兼容的,因此在硬件电路上完全兼容。
      外围电路中,TM7705和TM7707内部没有振荡器和基准电压,需要外接晶振电路和基准电路,一般接1M或者2.4576M晶振;基准电压范围为GND~VDD,一般推荐1/2的VDD, 基准电压是模拟信号的参考电压,所以基准电压要保持稳定,不波动。输入电压与放大倍数有关,输入电压范围:0 ~ (基准电压/增益倍数)。

 

 

图1 硬件电路图

 

 

 通讯时序 

     通讯上TM7705和TM7707基本相同,只是具体的指令TM7707与TM7705不同,时序上TM7707和TM7705相同,都是五线通讯但是可以通过改变程序和硬件电路连接到SPI总线上进行通讯。

void write_byte_TM7705(uchar dat1)	//将数据dat1写入TM7705
{
  uchar i;
  SCLK_TM7705=1;
  for(i=0;i<8;i++)
  {
    SCLK_TM7705=0;
	delay_us();
	if(dat1&0x80) DIN_TM7705=1;	   //先写高位
	  else        DIN_TM7705=0;
	 delay_us();
	 SCLK_TM7705=1;
	 delay_us();
	 dat1<<=1;
  }
   SCLK_TM7705=1;
   DIN_TM7705=1;
}

unsigned char read_byte_TM7705()   //从TM7705寄存器读数据
{
  uchar i,dat2=0;
  SCLK_TM7705=1;
  for(i=0;i<8;i++)
  {
    SCLK_TM7705=0;
	delay_us();
	dat2=(dat2<<1)|DOUT_TM7705;	  // 高位先读
	delay_us();
	SCLK_TM7705=1;
	delay_us();
  }
	SCLK_TM7705=1;
	return dat2;
}

       在写程序时SCLK管脚的高、低电平的延时都要大于2US,程序流程大致上电40个时钟用于软件复位,然后发寄存器配置指令,在自校准后需要200MS的延时后才能接收到有效的输出数据,且每次通道切换都要进行自校准(即每次切换都要等待200MS)。

void TM7705_init()
{
  uchar i;
  SCLK_TM7705=1;
  DIN_TM7705=1;
  DOUT_TM7705=1;
  DRDY_TM7705=1;

  for(i=0;i<40;i++)
  {
   SCLK_TM7705=0;
   delay_us();
   SCLK_TM7705=1;
   delay_us();
  }
   delay_us();
   delay_us();
 
}
void main()
{
  unsigned char n,temp1,temp2;

  UART_init();
  TM7705_init();
  delay_nms(50);

  write_byte_TM7705(0x20);  	//通道1和2共用(0 0 1 0 0 0 0 0),写通讯寄存器下一步写时钟寄存器
  write_byte_TM7705(0x04);  	//50HZ(0 0 0 0 0 1 0 0)	 若晶振为2.4576MHZ需设置CLKDIV=0,CLK=1
  //write_byte_TM7705(0x08);  	//20HZ(0 0 0 0 1 0 0 0)	 若晶振为2MHZ需设置CLKDIV=1,CLK=0
   
  while(1)
  {
     write_byte_TM7705(0x10); 	//通道1(0 0 0 1 0 0 0 0),写通讯寄存器下一步写设置寄存器
   //write_byte_TM7705(0x44);	//写入设置寄存器(0 1 0 0 0 1 0 0),自校准模式0 1,1倍增益0 0 0,单极性B/U=1,buf串联设置为0,FSYNC=0;
   //write_byte_TM7705(0x40);	   //写入设置寄存器(0 1 0 0 0 0 0 0),自校准模式0 1,1倍增益0 0 0,双极性B/U=0,buf串联设置为0,FSYNC=0;
   write_byte_TM7705(0x58);	   //写入设置寄存器(0 1 0 0 0 0 0 0),自校准模式0 1,16倍增益0 0 0,双极性B/U=0,buf串联设置为0,FSYNC=0;
   delay_nms(200);
   for(n=0;n<6;n++)
   {
       write_byte_TM7705(0x38);	//读通道1
       while(DRDY_TM7705==1);
       delay_nms(1);
       temp1=read_byte_TM7705();  //先读高8位
       temp2=read_byte_TM7705();  //再读低8位
       delay_nms(10);
   }
 write_byte_TM7705(0x11); 	//通道2(0 0 0 1 0 0 0 1),写通讯寄存器下一步写设置寄存器
   //Write_byte_TM7705(0x44);	//写入设置寄存器(0 1 0 0 0 1 0 0)自校准模式0 1,1倍增益0 0 0,单极性B/U=1,buf串联设置为0,FSYNC=0;
   write_byte_TM7705(0x40);	   //写入设置寄存器(0 1 0 0 0 0 0 0),自校准模式0 1,1倍增益0 0 0,双极性B/U=0,buf串联设置为0,FSYNC=0;
   delay_nms(200);
   for(n=0;n<6;n++)
   {
       write_byte_TM7705(0x39);	//读通道2
       while(DRDY_TM7705==1);
       delay_nms(1);
       temp1=read_byte_TM7705();	//先读高8位
       temp2=read_byte_TM7705();	//再读低8位
       delay_nms(10);
   }
  }
}

输出的电压转换

    TM7705、TM7707输出的都是16进制的数据,需要转换后才能得到有效的电压值

单极性公式

 

 

双极性公式
  • 8
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Arduino TM7705是一款电压/电流数字转换器模块,可以连接到 Arduino 开发板,用于测量电压和电流信号。TM7705由TI公司生产,是一款高精度的ADC芯片TM7705的工作电压范围为2.7V至5.3V,供电电源要求较低,适配不同的Arduino开发板。同时,它具有低功耗的特点,在应用中可以有效延长Arduino的工作时间。 TM7705能够测量单端和差分信号,测量精度高达16位,能够提供稳定可靠的测量结果。它还具有可编程增益放大器,能够调节输入信号的放大倍数,适应不同的测量场景。 除了测量电压和电流信号外,TM7705还可以通过带有内部参考电压的参考电位器进行测量。这使得它可以用于测量电阻、电容和其他传感器的电信号。 在Arduino开发板上使用TM7705模块十分简单,只需通过SPI接口与Arduino进行通信。Arduino可以通过发送简单的指令来控制TM7705进行数据采集和测量,并从模块中读取测量结果。同时,库函数已经开发完善,用户可以很快地为自己的具体应用开发代码。 总之,Arduino TM7705是一款功能强大的模块,适用于各种需要测量电压和电流的应用场景。它的高精度、低功耗和易用性使得它在物联网、嵌入式系统和传感器领域得到了广泛应用。 ### 回答2: Arduino TM7705是一款集成了模拟信号调制解调模块和统计滤波器功能的嵌入式系统。它主要用于测量和处理模拟信号,具有高精度和低功耗等特点。 TM7705的主要特点之一是其高精度的测量能力。它能够进行16位的模拟信号测量,达到±0.015%的精度。这使得它在需要准确测量模拟信号的应用中具有很大的优势,例如温度、压力、电流等传感器的数据采集与处理。 此外,TM7705还具有低功耗的特点,可在运行中仅消耗几十微安的电流。这使得它可以在电池供电的设备中长时间运行,延长了设备的使用寿命。 TM7705集成了统计滤波器功能,可以对信号进行滤波处理。这可以让用户通过设定滤波参数来去除信号中的噪音和干扰,提高测量的准确性和稳定性。 此外,TM7705采用SPI接口与Arduino主控板通信,方便与其他模块进行数据传输和交互。同时,它还可以通过引脚选择输入信号的放大倍数,以适应不同幅值的模拟信号。 Arduino TM7705是一款功能强大且易于使用的测量和信号处理模块,可广泛应用于各种需要准确测量和处理模拟信号的项目中。无论是在科研实验、工业控制还是个人制作项目中,TM7705都是一个可靠的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值