电赛总结介绍 mdash  mdash AD芯片总结之AD7705

AD芯片总结之AD7705

AD7705是一款16位、可编程增益、差分输入式、具有模数转换器(MC)的高精度A/D转换器,它使用SPI接口与微控制器或数字信号处理器相连,具有高速采集率、低电源消耗、单电源供电和软件校准等特点。它的输入电压范围为±VRef,增益可编程为1、2、4、8、16、32或64,最大采样率为500SPS。

使用方法:

1.硬件连接

AD7705在引脚上有44引脚,我们只需将其直接插入对应的开发板上即可,如图所示。

![AD7705硬件连接](https://img-blog.csdn.net/20180502215524411?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhbSZDb250ZW50SUQ9MjA4NzkxNzU0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)

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/

点赞(16) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部