使用 AMR 角度传感器体验精确且可靠的周围磁场角度位置测量。
A
A
硬件概览
它是如何工作的?
AMR Angle 2 Click 基于 ADA4570,这是一款来自 Analog Devices 的各向异性磁阻 (AMR) 传感器,具有集成的信号调理放大器和模数转换器 (ADC) 驱动器。它由一个封装内的两个芯片组成,一个是 AMR 传感器,另一个是固定增益的仪器放大器,产生两个差分模拟输出,指示周围磁场的角度位置。这些放大的差分余弦和正弦输出信号相对于角度被传递,当磁场在 x 轴和 y 轴(x-y)平面内旋转时。这款 ADA4570 包含两个相对角度为 45° 的惠斯通电桥。二极磁铁的完全旋转在正弦输出上产生两个周期,因此从正弦和余弦差分输出计算
出的磁角表示磁铁相对于 ADA4570 的物理方向,在 0° 到 180° 的测量范围内。在 x-y 平面的均匀磁场内,ADA4570 的输出信号与 z 方向(空气间隙)的物理位置无关。如前所述,除了 AMR 传感器外,这款 Click board™ 还包含一个高速、低功耗、串行输出逐次逼近寄存器 (SAR) 模数转换器 (ADC),即 Analog Devices 的 MAX11122。它处理正弦和余弦输出,然后通过 SPI 接口将其传送到 MCU 进行进一步处理。除了 SPI 通信线路外,这款 Click board™ 还使用了 mikroBUS™ 上的几个引脚,例如 CST 和 EOC,这些引脚分别连接
到 mikroBUS™ 插座的 PWM 和 INT 引脚,表示 AD 转换启动的信号和表示转换完成的信号。此外,ADA4570 具有集成的温度传感器,该传感器在 mikroBUS™ 插座的 AN 引脚上提供与 ADA4570 供电电压成比例的电压,用于监控系统的工作温度并为进一步校准提供参考。这款 Click board™ 只能在 3.3V 逻辑电压下工作。在使用具有不同逻辑电压的 MCU 之前,板必须执行适当的逻辑电压电平转换。此外,这款 Click board™ 配备了一个包含函数和示例代码的库,可以作为进一步开发的参考。
功能概述
开发板
PIC18F57Q43 Curiosity Nano 评估套件是一款尖端的硬件平台,旨在评估 PIC18-Q43 系列内的微控制器。其设计的核心是包含了功能强大的 PIC18F57Q43 微控制器(MCU),提供先进的功能和稳健的性能。这个评估套件的关键特点包括一个黄 色用户 LED 和一个响应灵敏的机械用户开关,提供无
缝的交互和测试。为一个 32.768kHz 水晶振荡器足迹提供支持,确保精准的定时能力。套件内置的调试器拥有一个绿色电源和状态 LED,使编程和调试变得直观高效。此外,增强其实用性的还有虚拟串行端口 (CDC)和一个调试 GPIO 通道(DGI GPIO),提供广泛的连接选项。该套件通过 USB 供电,拥有由
MIC5353 LDO 调节器提供支持的可调目标电压功能,确保在 1.8V 至 5.1V 的输出电压范围内稳定运行,最大输出电流为 500mA,受环境温度和电压限制。
微控制器概述
MCU卡片 / MCU

建筑
PIC
MCU 内存 (KB)
128
硅供应商
Microchip
引脚数
48
RAM (字节)
8196
你完善了我!
配件
Curiosity Nano Base for Click boards 是一款多功能硬件扩展平台,专为简化 Curiosity Nano 套件与扩展板之间的集成而设计,特别针对符合 mikroBUS™ 标准的 Click 板和 Xplained Pro 扩展板。这款创新的基板(屏蔽板)提供了无缝的连接和扩展可能性,简化了实验和开发过程。主要特点包括从 Curiosity Nano 套件提供 USB 电源兼容性,以及为增强灵活性而提供的另一种外部电源输入选项。板载锂离子/锂聚合物充电器和管理电路确保电池供电应用的平稳运行,简化了使用和管理。此外,基板内置了一个固定的 3.3V 电源供应单元,专用于目标和 mikroBUS™ 电源轨,以及一个固定的 5.0V 升压转换器,专供 mikroBUS™ 插座的 5V 电源轨,为各种连接设备提供稳定的电力供应。
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
该库包含 AMR Angle 2 Click 驱动程序的 API。
关键功能:
- amrangle2_read_angle- 此函数读取 Vsin 和 Vcos 电压并将其转换为角度(度数)。
- amrangle2_read_temperature- 此函数读取摄氏温度。
- amrangle2_read_vsin_vcos- 此函数读取正弦和余弦差分信号输出的电压。
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
 * @file main.c
 * @brief AMR Angle 2 Click example
 *
 * # Description
 * This example demonstrates the use of AMR Angle 2 Click board by reading and displaying
 * the magnet's angular position in Degrees and a system temperature in Celsius.
 *
 * The demo application is composed of two sections :
 *
 * ## Application Init
 * Initializes the driver and performs the Click default configuration.
 *
 * ## Application Task
 * Reads the magnet's angular position in degrees and a system temperature in Celsius 
 * and displays the results on the USB UART approximately every 100ms.
 *
 * @author Stefan Filipovic
 *
 */
#include "board.h"
#include "log.h"
#include "amrangle2.h"
static amrangle2_t amrangle2;
static log_t logger;
void application_init ( void )
{
    log_cfg_t log_cfg;  /**< Logger config object. */
    amrangle2_cfg_t amrangle2_cfg;  /**< Click config object. */
    /** 
     * 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.
    amrangle2_cfg_setup( &amrangle2_cfg );
    AMRANGLE2_MAP_MIKROBUS( amrangle2_cfg, MIKROBUS_1 );
    if ( SPI_MASTER_ERROR == amrangle2_init( &amrangle2, &amrangle2_cfg ) )
    {
        log_error( &logger, " Communication init." );
        for ( ; ; );
    }
    
    if ( AMRANGLE2_ERROR == amrangle2_default_cfg ( &amrangle2 ) )
    {
        log_error( &logger, " Default configuration." );
        for ( ; ; );
    }
    
    log_info( &logger, " Application Task " );
}
void application_task ( void )
{
    float angle, temperature;
    if ( AMRANGLE2_OK == amrangle2_read_angle ( &amrangle2, &angle ) ) 
    {
        log_printf( &logger, " Angle: %.2f Degrees\r\n", angle );
    }
    if ( AMRANGLE2_OK == amrangle2_read_temperature ( &amrangle2, &temperature ) ) 
    {
        log_printf( &logger, " Temperature: %.2f C\r\n\n", temperature );
    }
    Delay_ms ( 100 );
}
int main ( void ) 
{
    /* Do not remove this line or clock might not be set correctly. */
    #ifdef PREINIT_SUPPORTED
    preinit();
    #endif
    
    application_init( );
    
    for ( ; ; ) 
    {
        application_task( );
    }
    return 0;
}
// ------------------------------------------------------------------------ END
额外支持
资源
类别:磁性


































