初学者
10 分钟

通过AMC80和PIC32MZ2048EFH100对您的硬件能力充满信心

巅峰性能 - 毫无妥协!

HW Monitor 2 Click with Flip&Click PIC32MZ

已发布 6月 27, 2024

点击板

HW Monitor 2 Click

开发板

Flip&Click PIC32MZ

编译器

NECTO Studio

微控制器单元

PIC32MZ2048EFH100

重新定义您的硬件监控方式——我们的解决方案是解锁无与伦比性能的关键,树立卓越的新标准。

A

A

硬件概览

它是如何工作的?

HW Monitor 2 Click基于德州仪器(Texas Instruments)的AMC80系统硬件监控器,能够对各种嵌入式系统进行电源、温度和风扇监控。AMC80在单个芯片上集成了七个模拟输入(分别标记为CH0到CH6)、温度传感器、ADC、两个风扇速度计数器以及各种输入和输出。它能够以2.5mV的最低有效位(LSB)将模拟输入连续转换为10位分辨率,输入范围为0到2.56V。这些模拟输入适用于连接到典型通信基础设施系统中的多个电源。该Click板™通过标准I2C双线接口与MCU进行通信,以读取数据和配置设置,最大频率为400kHz。AMC80在I2C线上包括一个模拟滤波器,增强了抗噪能力,并支持SDA和SCL引脚的超时复位功能,防止I2C总线锁定。此外,AMC80允许通过标记为ADDR SEL的SMD跳线选择其I2C从设备地址的最低有效位(LSB)。AMC80特别适合通过左侧未焊

接的BTI引脚接口与TMP75等线性和数字温度传感器进行连接。温度可以转换为分辨率为0.5°C或0.0625°C LSB的9位或12位二进制补码。在相同的引脚头上,除了BTI引脚外,还有一个GPI引脚,该引脚除了作为通用输入引脚外,还可以作为机箱入侵检测输入。机箱入侵输入设计为接受来自外部电路的高电平信号,如计算机机盖被移除时的信号。该板的其他附加功能包括外部中断输入INT IN、用于外部目的的主复位RST O和单个电源开关引脚GPO。INT IN有效低中断提供了一种通过AMC80将其他设备的中断链到主机的方法,RST O用于向连接到该线路的设备提供主复位,而GPO引脚是一个有效低的NMOS开漏输出,用于驱动外部电源PMOS以进行软件电源控制或用于控制冷却风扇的电源。AMC80还具有一个通用复位信号,路由到mikroBUS™插座的RST引脚,用于复位AMC80,

以及一个额外的中断信号,路由到mikroBUS™插座的INT引脚,当发生外部中断(如INT_OUT、温度传感器中断或机箱检测事件)时触发。右侧插针包含标记为F1和F2的风扇输入,可以编程为接受高电平或低电平的风扇故障指示或转速计信号。风扇输入通过测量风扇的转速脉冲周期来提供较高的计数值,较低的风扇速度对应较高的计数值。全量程风扇计数为255(8位计数器),表示风扇停止或低速运行。根据153的计数值,额定速度可编程为1100到8800 RPM。信号调理电路也包括在内,以适应缓慢的上升和下降时间。该Click板™可以通过VCC SEL跳线选择使用3.3V或5V逻辑电压电平,从而使3.3V和5V的MCU都能够正确使用通信线路。此外,该Click板™配备了包含易于使用的功能库和示例代码的库,可以作为进一步开发的参考。

HW Monitor 2 Click hardware overview image

功能概述

开发板

Flip&Click PIC32MZ 是一款紧凑型开发板,设计为一套完整的解决方案,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位 PIC32MZ 微控制器,Microchip 的 PIC32MZ2048EFH100,四个 mikroBUS™ 插槽用于 Click 板™连接,两个 USB 连接器,LED 指示灯,按钮,调试器/程序员连接器,以及两个与 Arduino-UNO 引脚兼容的头部。得益于创

新的制造技术,它允许您快速构建具有独特功能和特性的小工具。Flip&Click PIC32MZ 开发套件的每个部分都包含了使同一板块运行最高效的必要组件。此外,还可以选择 Flip&Click PIC32MZ 的编程方式,使用 chipKIT 引导程序(Arduino 风格的开发环境)或我们的 USB HID 引导程序,使用 mikroC、mikroBasic 和 mikroPascal for PIC32。该套件包括一个通过 USB 类型-C(USB-C)连接器的干净且调

节过的电源供应模块。所有 mikroBUS™ 本身支持的 通信方法都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、用户可配置的按钮和 LED 指示灯。Flip&Click PIC32MZ 开发套件允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。

Flip&Click PIC32MZ double image

微控制器概述 

MCU卡片 / MCU

default

建筑

PIC32

MCU 内存 (KB)

2048

硅供应商

Microchip

引脚数

100

RAM (字节)

524288

使用的MCU引脚

mikroBUS™映射器

NC
NC
AN
Reset
RE2
RST
NC
NC
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
NC
NC
PWM
Interrupt
RD9
INT
NC
NC
TX
NC
NC
RX
I2C Clock
RA2
SCL
I2C Data
RA3
SDA
Power Supply
5V
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

HW Monitor 2 Click Schematic schematic

一步一步来

项目组装

Flip&Click PIC32MZ front image hardware assembly

从选择您的开发板和Click板™开始。以Flip&Click PIC32MZ作为您的开发板开始。

Flip&Click PIC32MZ front image hardware assembly
GNSS2 Click front image hardware assembly
Prog-cut hardware assembly
GNSS2 Click complete accessories setup image hardware assembly
Flip&Click PIC32MZ MB1 Access - upright/background hardware assembly
Necto image step 2 hardware assembly
Necto image step 3 hardware assembly
Necto image step 4 hardware assembly
Necto image step 5 hardware assembly
Necto image step 6 hardware assembly
Flip&Click PIC32MZ MCU step hardware assembly
Necto No Display image step 8 hardware assembly
Necto image step 9 hardware assembly
Necto image step 10 hardware assembly
Debug Image Necto Step hardware assembly

实时跟踪您的结果

应用程序输出

此款Click板可通过两种方式进行接口连接和监控:

  • Application Output - 在调试模式下,使用“Application Output”窗口进行实时数据监控。按照本教程正确设置它。

软件支持

库描述

该库包含 HW Monitor 2 Click 驱动程序的 API。

关键功能:

  • hwmonitor2_get_analog_inputs - HW Monitor 2 获取模拟输入电压功能。

  • hwmonitor2_get_temperature - HW Monitor 2 获取温度功能。

  • hwmonitor2_set_config - HW Monitor 2 设置配置功能。

开源

代码示例

完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio 应用程序代码也可以在MIKROE的GitHub账户中找到。

/*!
 * @file main.c
 * @brief HW Monitor 2 Click example
 *
 * # Description
 * This example demonstrates the use of the HW Monitor 2 Click board™.
 * The demo application monitors analog voltage inputs and local temperature data.
 *
 * The demo application is composed of two sections :
 *
 * ## Application Init
 * The initialization of the I2C module, log UART and additional pins.
 * After the driver init, the app executes a default configuration.
 *
 * ## Application Task
 * This example displays the Analog Voltage Inputs from CH0 to CH6 [mV] 
 * and Temperature [degree Celsius] data.
 * Results are being sent to the UART Terminal, where you can track their changes.
 *
 * @author Nenad Filipovic
 *
 */

#include "board.h"
#include "log.h"
#include "hwmonitor2.h"

static hwmonitor2_t hwmonitor2;
static log_t logger;

void application_init ( void ) 
{
    log_cfg_t log_cfg;  /**< Logger config object. */
    hwmonitor2_cfg_t hwmonitor2_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.
    hwmonitor2_cfg_setup( &hwmonitor2_cfg );
    HWMONITOR2_MAP_MIKROBUS( hwmonitor2_cfg, MIKROBUS_1 );
    if ( I2C_MASTER_ERROR == hwmonitor2_init( &hwmonitor2, &hwmonitor2_cfg ) ) 
    {
        log_error( &logger, " Communication init." );
        for ( ; ; );
    }
    
    if ( HWMONITOR2_ERROR == hwmonitor2_default_cfg ( &hwmonitor2 ) )
    {
        log_error( &logger, " Default configuration." );
        for ( ; ; );
    }
    
    log_info( &logger, " Application Task " );
    log_printf( &logger, "---------------------------\r\n" );
    Delay_ms( 1000 );
}

void application_task ( void ) 
{
    static float temperature, voltage;
    for ( uint8_t ch_pos = 0; ch_pos < 7; ch_pos++ )
    {
        if ( HWMONITOR2_OK == hwmonitor2_get_analog_inputs( &hwmonitor2, ch_pos, &voltage ) )
        {
            log_printf( &logger, "CH %d: %.1f mV\r\n", ( uint16_t ) ch_pos, voltage );
            Delay_ms( 100 );
        }
    }
    log_printf( &logger, "- - - - - - - - - - - - - -\r\n" );
    
    if ( HWMONITOR2_OK == hwmonitor2_get_temperature( &hwmonitor2, &temperature ) )
    {
        log_printf( &logger, " Temperature: %.3f [deg c]\r\n", temperature );
        Delay_ms( 100 );
    }
    log_printf( &logger, "---------------------------\r\n" );
    Delay_ms( 1000 );
}

void main ( void ) 
{
    application_init( );

    for ( ; ; ) 
    {
        application_task( );
    }
}

// ------------------------------------------------------------------------ END

额外支持

资源

喜欢这个项目吗?

'购买此套件' 按钮会直接带您进入购物车,您可以在购物车中轻松添加或移除产品。