中级
30 分钟

使用 NIS6150 和 PIC18F57Q43 确保您的设备发挥最佳性能

eFuse:解锁可靠性,提高效率

eFuse 3 Click with Curiosity Nano with PIC18F57Q43

已发布 6月 25, 2024

点击板

eFuse 3 Click

开发板

Curiosity Nano with PIC18F57Q43

编译器

NECTO Studio

微控制器单元

PIC18F57Q43

通过我们的尖端eFuse设备体验增强的可靠性和效率,轻松管理电压和电流,保护您的设备并提升其性能。

A

A

硬件概览

它是如何工作的?

eFuse 3 Click基于NIS6150,这是ON Semiconductor生产的自保护、可复位电子保险丝,包含电路可监测输入电压、输出电压、输出电流和芯片温度。它具有启用功能(ENABLE),带有单独的“标志”用于故障识别,可调输出电流限制保护,带有热关断功能和电流监测引脚。NIS6150还包括一个内部温度感应电路,可感应功率FET芯片上的温度。如果温度达到175°C,设备将关闭并断开负载电源。此Click板™通过Microchip的22位sigma-delta ADC MCP3551使用3线SPI串行接口与MCU通信。MCP3551用于电流监测目的,通过将NIS6150 IMON引脚的输出电流转换为数字数据,具有22位的高分辨率和低噪声,可通过Click板™的SPI接口获

得。此ADC使用参考电压,由Microchip的MCP1541提供的4.096V参考电压水平,从+5V mikroBUS™电源轨供电,从而实现高精度和稳定性。连接到此Click板™中间连接器的电阻(标记为Rlim)设置过载和短路电流限制水平。VSL引脚路由到mikroBUS™插座上的RST引脚,通过将此引脚拉至低逻辑状态,可以将过电压钳位设置为5.7V或6.5V的最低值。它监测输出电压,如果输入超过输出电压,主FET的栅极驱动将减少以限制输出。这旨在允许通过瞬态运行,同时保护负载。如果过电压条件存在数秒钟,由于FET上的电压降和负载电流组合,设备可能会过热。在这种情况下,热保护电路将关闭设备。eFuse 3 Click还具有mikroBUS™插座的

两个活动附加引脚,标记为FLG和EN的INT和PWM引脚。连接到mikroBUS™插座上的PWM引脚的启用功能提供了控制eFuse输出的数字接口。因此,当此引脚拉至低逻辑状态时,eFuse将关闭。另一方面,路由到mikroBUS™插座上的INT引脚的“标志”引脚向MCU发送有关芯片状态的信息。如果发生热故障,此引脚上的电压将变为低电平,以向监控电路发出设备处于热关断状态的信号。此Click板™可以通过VCC SEL跳线选择3.3V或5V逻辑电压电平运行。这使得具有3.3V和5V功能的MCU可以正确使用通信线路。此外,Click板™配备了一个库,包含易于使用的函数和示例代码,可作为进一步开发的参考。

eFuse 3 Click hardware overview image

功能概述

开发板

PIC18F57Q43 Curiosity Nano 评估套件是一款尖端的硬件平台,旨在评估 PIC18-Q43 系列内的微控制器。其设计的核心是包含了功能强大的 PIC18F57Q43 微控制器(MCU),提供先进的功能和稳健的性能。这个评估套件的关键特点包括一个黄 色用户 LED 和一个响应灵敏的机械用户开关,提供无

缝的交互和测试。为一个 32.768kHz 水晶振荡器足迹提供支持,确保精准的定时能力。套件内置的调试器拥有一个绿色电源和状态 LED,使编程和调试变得直观高效。此外,增强其实用性的还有虚拟串行端口 (CDC)和一个调试 GPIO 通道(DGI GPIO),提供广泛的连接选项。该套件通过 USB 供电,拥有由

 MIC5353 LDO 调节器提供支持的可调目标电压功能,确保在 1.8V 至 5.1V 的输出电压范围内稳定运行,最大输出电流为 500mA,受环境温度和电压限制。

PIC18F57Q43 Curiosity Nano double side image

微控制器概述 

MCU卡片 / MCU

default

建筑

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 电源轨,为各种连接设备提供稳定的电力供应。

Curiosity Nano Base for Click boards accessories 1 image

使用的MCU引脚

mikroBUS™映射器

NC
NC
AN
Overvolatage Clamp
PA7
RST
SPI Chip Select
PD4
CS
SPI Clock
PC6
SCK
SPI Data OUT
PC5
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
Enable
PB0
PWM
Interrupt
PA6
INT
NC
NC
TX
NC
NC
RX
NC
NC
SCL
NC
NC
SDA
Power Supply
5V
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

eFuse 3 Click Schematic schematic

一步一步来

项目组装

Curiosity Nano Base for Click boards front image hardware assembly

从选择您的开发板和Click板™开始。以Curiosity Nano with PIC18F57Q43作为您的开发板开始。

Curiosity Nano Base for Click boards front image hardware assembly
Charger 27 Click front image hardware assembly
PIC18F47Q10 Curiosity Nano front image hardware assembly
Prog-cut hardware assembly
Charger 27 Click complete accessories setup image hardware assembly
Board mapper by product8 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
PIC18F57Q43 Curiosity 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

软件支持

库描述

该库包含 eFuse 3 Click 驱动程序的 API。

关键功能:

  • efuse3_get_current - eFuse 3获取电流功能

  • efuse3_get_flag - eFuse 3获取标志功能

  • efuse3_reset - eFuse 3复位功能

开源

代码示例

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

/*!
 * @file main.c
 * @brief eFuse3 Click example
 *
 * # Description
 * This library contains API for the eFuse 3 Click driver.
 * The library contains drivers to enable/disable the device, 
 * for reading ADC voltage, overflow status, output and current value [ A ].
 *
 * The demo application is composed of two sections :
 *
 * ## Application Init
 * Initializes SPI driver and set default configuration.
 *
 * ## Application Task
 * This is an example that demonstrates the use of the eFuse 3 Click board. 
 * Read and display device status information and current value [ A ].
 * The eFuse 3 includes an overvoltage clamp the circuit that limits the output voltage
 * during transients but does not shut the unit down, 
 * thereby allowing the load circuit to continue its operation.
 * The Electronic Fuse is to limit current and current limit 
 * Current limit ( 0.1 A - 1.8 A ) depends on the choice of resistor wired 
 * on the Rlimit ( 1 Ohm - 15 Ohm ) connector.
 * For example, for Rlimit resistance of 1 Ohm, current limit is 1 A 
 * ( 3.5 Ohm - 0.5 A, 7 Ohm - 0.25 A ). 
 * Read details from the ON Semiconductor NIS6150 datasheets.   
 * Results are being sent to the Usart Terminal where you can track their changes.
 *
 * @author Nenad Filipovic
 *
 */

#include "board.h"
#include "log.h"
#include "efuse3.h"

static efuse3_t efuse3;
static log_t logger;

static float voltage;
static float current;
static uint8_t overflow_status;

void application_init ( void ) {
    log_cfg_t log_cfg;        /**< Logger config object. */
    efuse3_cfg_t efuse3_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.

    efuse3_cfg_setup( &efuse3_cfg );
    EFUSE3_MAP_MIKROBUS( efuse3_cfg, MIKROBUS_1 );
    err_t init_flag  = efuse3_init( &efuse3, &efuse3_cfg );
    if ( init_flag == SPI_MASTER_ERROR ) {
        log_error( &logger, " Application Init Error. " );
        log_info( &logger, " Please, run program again... " );

        for ( ; ; );
    }

    efuse3_default_cfg ( &efuse3 );
    log_info( &logger, " Application Task " );
    log_printf( &logger, "---------------------------\r\n" );
    Delay_ms ( 100 );
}

void application_task ( void ) {
    log_printf( &logger, " Status  :" );    
    
    if ( efuse3_get_flag( &efuse3 ) == EFUSE3_FLAG_NORMAL_OPERATION ) {
        log_printf( &logger, " Normal operation \r\n" );
    } else {
        log_printf( &logger, " Device OFF \r\n" );

        if ( overflow_status == EFUSE3_OVERFLOW_HIGH ) {
            log_printf( &logger, " Overflow high in the analog input voltage.\r\n" );    
        } else if ( overflow_status == EFUSE3_OVERFLOW_LOW ) {
            log_printf( &logger, " Overflow low in the analog input voltage.\r\n" ); 
        }
        
        efuse3_reset( &efuse3 );
        Delay_ms ( 1000 );
    }
    
    log_printf( &logger, "- - - - - - - - - - - - - - \r\n" );
    efuse3_get_current( &efuse3, &current );
    log_printf( &logger, " Current : %.5f A\r\n", current );
    log_printf( &logger, "---------------------------\r\n" );
    Delay_ms ( 1000 );
    Delay_ms ( 1000 );
}

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

额外支持

资源

喜欢这个项目吗?

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