使用我们最先进的ADC,将您的工程解决方案提升到一个新的水平。
A
A
硬件概览
它是如何工作的?
ADC 6 Click基于Analog Devices的AD7124-8,这是一款8通道、低噪声、低功耗、24位Σ-ΔADC,具有参考电压和可编程增益阵列。该IC提供了几种不同的功耗模式和输入连接配置,为工作提供了很大的灵活性。该设备可以具有八个差分或15个伪差分模拟输入以及它们之间的任何组合。所有输入通道都可以根据输入连接阻抗特性配置为缓冲或非缓冲。关于所选的功耗模式,最大输出数据速率从2400SPS到19200SPS(每秒样本数)不等。超低噪声操作在所有可用的功耗模式下产生22个无噪声位。AD7124-8 ADC中的信号路由通过内部多路复用器部分完成,这减少了IC引脚的数量,但允许所有功能都在现有引脚上使用。除了这些引脚外,还可以使用四个额外的GPIO引脚来执行各种任务,包括控制多路复用器单元。由于多路复用器集成到芯片中,因此转换过程与引脚配置的更改保持同步。所谓的设置进一步管理输入信号。在AD7124-8 ADC模块上有八个这样的设置可用。单个设置由四个不同的寄存器组成:配置寄存器、滤波器寄存器、增益寄存器、偏移寄存器。这些寄存器配置了连接通道的相应功能集。通道寄存
器用于配置相应ADC通道的基本设置,其中包括将可用的八个设置中的哪一个连接到该通道。此机制允许轻松配置多个通道,特别是当必须将相同设置应用于多个通道时,可以大大减少软件复杂性,因为设置可以重用。内部偏置电压发生器可以路由到输出引脚。它用于偏置所选输入通道的负端。这个功能在热电偶应用中很有用,因为当ADC从单一电源供电时,热电偶产生的电压必须偏置到某个DC电压附近。AD7124-8 ADC模块的时钟可以由内部时钟源驱动,其工作频率为614.4 kHz。CLK引脚可以用于输出ADC上可用的时钟信号或使用外部时钟输入。这允许使用相同的时钟频率同步多个设备。内部时钟速度根据所选的操作模式进行分频。选择低功耗操作模式将影响此设备可以执行的每秒样本数。ADC 6 Click使用SPI接口与主机MCU进行通信。SPI总线引脚被路由到mikroBUS™ SPI引脚(MISO、MOSI、SCK和CS),可以与开发系统轻松集成。该设备使用SPI模式3,这意味着时钟信号(SCK)处于空闲高电平,并且SCLK的上升沿是样本边沿。数据在时钟信号脉冲的下降沿时被输出,而在时钟信号的上升沿
时被输入。ADC模块的数据输出引脚(DOUT/#RDY)被路由到mikroBUS™的MISO引脚,除了用于数据输出外,还用于信号ADC输出移位寄存器中存在有效数据的指示。当在这个寄存器中存储了有效读数时,#RDY信号将被拉到低电平,表示数据输出寄存器的准备状态。它可以用于在主机MCU上触发中断。ADC模块的#SYNC引脚用于在使用多个设备时同步读取。当拉到低电平时,内部ADC部分被复位并保持在复位状态。此引脚通过板载电阻被拉到高逻辑电平。此引脚被路由到mikroBUS™的RST引脚。几个引脚被路由到2x10标准间距为2.54mm(100mil)的引脚排。这允许使用跳线或跳线线更容易地进行路由,因为引脚排可以进一步配置ADC,这是通过软件无法实现的,例如连接外部时钟源或参考电压。可以在ADC 6 Click的原理图中看到此引脚的完整布局。第二个2x10引脚排用于连接输入信号。AD7124-8 ADC模块允许通过多路复用部分将多种信号路由到这些引脚,从而允许将诊断功能与模拟信号的转换交错进行。
功能概述
开发板
EasyAVR v7 是第七代AVR开发板,专为快速开发嵌入式应用的需求而设计。它支持广泛的16位AVR微控制器,来自Microchip,并具有一系列独特功能,如强大的板载mikroProg程序员和通过USB的在线电路调试器。开发板布局合理,设计周到,使得最终用户可以在一个地方找到所有必要的元素,如开关、按钮、指示灯、连接器等。EasyAVR v7 通过每个端口的四种不同连接器,比以往更高效地连接附件板、传感器和自定义电子产品。EasyAVR v7 开发板的每个部分
都包含了使同一板块运行最高效的必要组件。一个集成的mikroProg,一个快速的USB 2.0程序员,带有mikroICD硬件在线电路调试器,提供许多有价值的编 程/调试选项和与Mikroe软件环境的无缝集成。除此之外,它还包括一个干净且调节过的开发板电源供应模块。它可以使用广泛的外部电源,包括外部12V电源供应,7-12V交流或9-15V直流通过DC连接器/螺丝端子,以及通过USB Type-B(USB-B)连接器的电源。通信选项如USB-UART和RS-232也包括在内,与
广受好评的mikroBUS™标准、三种显示选项(7段、图形和基于字符的LCD)和几种不同的DIP插座一起,覆盖了广泛的16位AVR MCU。EasyAVR v7 是Mikroe快速开发生态系统的一个组成部分。它由Mikroe软件工具原生支持,得益于大量不同的Click板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作和开发的许多方面。
微控制器概述
MCU卡片 / MCU

建筑
AVR
MCU 内存 (KB)
32
硅供应商
Microchip
引脚数
40
RAM (字节)
2048
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
实时跟踪您的结果
应用程序输出
1. 应用程序输出 - 在调试模式下,“应用程序输出”窗口支持实时数据监控,直接提供执行结果的可视化。请按照提供的教程正确配置环境,以确保数据正确显示。

2. UART 终端 - 使用UART Terminal通过USB to UART converter监视数据传输,实现Click board™与开发系统之间的直接通信。请根据项目需求配置波特率和其他串行设置,以确保正常运行。有关分步设置说明,请参考提供的教程。

3. Plot 输出 - Plot功能提供了一种强大的方式来可视化实时传感器数据,使趋势分析、调试和多个数据点的对比变得更加直观。要正确设置,请按照提供的教程,其中包含使用Plot功能显示Click board™读数的分步示例。在代码中使用Plot功能时,请使用以下函数:plot(insert_graph_name, variable_name);。这是一个通用格式,用户需要将“insert_graph_name”替换为实际图表名称,并将“variable_name”替换为要显示的参数。

软件支持
库描述
这个库包含ADC 6 Click驱动的API。
关键函数:
adc6_get_adc_data
- 获取数据函数adc6_read_reg
- 通用读取函数adc6_write_reg
- 通用写入函数
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief ADC6 Click example
*
* # Description
* This application collects data from the sensor, calculates the voltage to a
* digital value and then logs it.
*
* The demo application is composed of two sections :
*
* ## Application Init
* Initializes driver and sets configuration which enables channel 0,
* puts AIN0 on positive analog input and AIN1 on negative analog input,
* enables internal reference voltage (approximately 2.65V (AVDD = 3.3V)),
* and also enables bipolar operation mode and puts device on full power mode.
* When the ADC is configured for unipolar operation, the output code is natural
* (straight) binary with a zero differential input voltage
* resulting in a code of 0x00000000, a midscale voltage resulting in a code
* of 0x00800000, and a full-scale input voltage resulting in a code of 0x00FFFFFF.
* When the ADC is configured for bipolar operation, the output code is offset
* binary with a negative full-scale voltage resulting in a code of 0x00000000,
* a zero differential input voltage resulting in a code of 0x00800000,
* and a positive full-scale input voltage resulting in a code of 0x00FFFFFF.
*
* ## Application Task
* Gets 24-bit converted data in single read mode and logs data on USB UART.
* Repeats operation every 500 ms.
*
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "adc6.h"
// ------------------------------------------------------------------ VARIABLES
static adc6_t adc6;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( void )
{
log_cfg_t log_cfg;
adc6_cfg_t cfg;
/**
* Logger initialization.
* Default baud rate: 115200
* Default log level: LOG_LEVEL_DEBUG
* @note If USB_UART_RX and USB_UART_TX
* are defined as HAL_PIN_NC, you will
* need to define them manually for log to work.
* See @b LOG_MAP_USB_UART macro definition for detailed explanation.
*/
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
adc6_cfg_setup( &cfg );
ADC6_MAP_MIKROBUS( cfg, MIKROBUS_1 );
adc6_init( &adc6, &cfg );
adc6_default_cfg( &adc6 );
}
void application_task ( void )
{
uint32_t adc_value = 0;
adc_value = adc6_get_adc_data( &adc6 );
log_printf( &logger, "The ADC value is: 0x%.6LX\r\n", adc_value );
Delay_ms( 500 );
}
void main ( void )
{
application_init( );
for ( ; ; )
{
application_task( );
}
}
// ------------------------------------------------------------------------ END