AD芯片总结之AD7705
AD7705是一款16位、可编程增益、差分输入式、具有模数转换器(MC)的高精度A/D转换器,它使用SPI接口与微控制器或数字信号处理器相连,具有高速采集率、低电源消耗、单电源供电和软件校准等特点。它的输入电压范围为±VRef,增益可编程为1、2、4、8、16、32或64,最大采样率为500SPS。
使用方法:
1.硬件连接
AD7705在引脚上有44引脚,我们只需将其直接插入对应的开发板上即可,如图所示。

2.驱动程序
AD7705的驱动程序有许多种语言版本,我们这里详细介绍一下Arduino的驱动程序。程序如下:
```
/*
* AD7705 Library - Example code
* Author: Bildr
* Modified by: Erik Katerborg, works with v2.0 or greater of the library.
* Date: 05.08.11
*
* This example code is in the public domain.
*/
#include "AD7705.h"
#define CS 10
//if u use the arduino mega u have to swap pin 51 to pin 53, and pin 50 to 52
//i have no idea why, digital pin mapping issue for PWM.
AD7705 AD(CS,51,50);
void setup(){
Serial.begin(9600);
Serial.println("Start");
AD.begin(); //initiates the AD7705
AD.SetPGA(AD7705_GAIN_1); //sets the gain for the amplifier.. options are: AD7705_GAIN_1, AD7705_GAIN_2, AD7705_GAIN_4, AD7705_GAIN_8, AD7705_GAIN_16, AD7705_GAIN_32, AD7705_GAIN_64 and AD7705_GAIN_INTERNAL which is a 10V reference within the AD7705.
AD.SetSingleEnded(AD7705_CH1); //chooses channel one to use for single ended input..\options are AD7705_CH1, AD7705_CH2
Serial.println("Ready");
}
void loop(){
Serial.print("Reading: ");
Serial.println(AD.ReadCurrentChannelVoltage()); //read voltage
delay(100); //just here to slow down the output, and show it easier to read
}
```
3.功能实现
AD7705可以通过调用各种函数实现各种功能。AD7705支持多种模式,包括正常工作模式和自校准模式。还可以设置振荡器输出和调制器输出以及自动切换输入模式。以下是其中一些重要函数的详细说明:
1.void begin():初始化,建立SPI通信和AD7705的通信。
2.void SetPGA(AD7705_GAIN gain):设置PGA,具有以下选项:
AD7705_GAIN_1
AD7705_GAIN_2
AD7705_GAIN_4
AD7705_GAIN_8
AD7705_GAIN_16
AD7705_GAIN_32
AD7705_GAIN_64
AD7705_GAIN_INTERNAL
3.void SetSingleEnded(AD7705_CHANNEL channel):选择输入通道,具有以下选项:
AD7705_CH1
AD7705_CH2
4.void SetRegisterValue(byte reg, unsigned int value):设置寄存器中的值。具有以下选项:
AD7705_REG_MODE
AD7705_REG_CLOCK
AD7705_REG_SETUPCON
AD7705_REG_SETUPDAT
AD7705_REG_FILTER
AD7705_REG_ADCON
5.unsigned int ReadCurrentChannelVoltage(void):读取当前通道输入电压。
案例说明:
例如,在我们对模拟信号进行处理时,需要将模拟信号转换成数字信号进行处理。我们可以使用AD7705这款芯片来实现这个过程。
以下是一个使用AD7705将模拟信号转换为数字信号的简单示例。
连接AD7705到Arduino,并将电压输入到输入引脚。在设置连接之后,您需要设置下面的选项:
1.设置输入通道(单端或差分模式).
2.设置PGA(增益).
完成上述设置后,您可以通过调用ReadCurrentChannelVoltage函数来读取输入模拟电压值。
下面是一些代码:
```
#define CS 10
//if u use the arduino mega u have to swap pin 51 to pin 53, and pin 50 to 52
//i have no idea why, digital pin mapping issue for PWM.
AD7705 AD(CS,51,50);
void setup() {
Serial.begin(9600);
Serial.println("Start");
AD.begin();
AD.SetPGA(AD7705_GAIN_1); //choose gain option, eg: AD7705_GAIN_1, AD7705_GAIN_2, AD7705_GAIN_4, AD7705_GAIN_8, AD7705_GAIN_16, AD7705_GAIN_32, AD7705_GAIN_64 or AD7705_GAIN_INTERNAL.
AD.SetSingleEnded(AD7705_CH1);//choose which channel to read the data from, eg: AD7705_CH1 or AD7705_CH2.
Serial.println("Ready");
}
void loop() {
Serial.print("Reading: ");
Serial.println(AD.ReadCurrentChannelVoltage()); //Read voltage
delay(100);
}
```
AD7705是一款通用的高精度模数转换器芯片,可以广泛应用于医疗、安防、通信、工业自动化控制等领域。可以采用MATLAB等工具进行数据分析和处理。它具有开发简单、易于使用、低功耗等优点,是我们在实际应用中常常使用的一款芯片。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
发表评论 取消回复