初学者
10 分钟

通过使用DRV8213电机驱动器、MF25060V2-1000U-A99散热风扇和MK64FN1M0VDC12实现电子系统的最佳散热管理

紧凑型散热解决方案,用于管理电子系统中的热量

Cooler Click with Clicker 2 for Kinetis

已发布 6月 24, 2024

点击板

Cooler Click

开发板

Clicker 2 for Kinetis

编译器

NECTO Studio

微控制器单元

MK64FN1M0VDC12

防止电子设备过热!使用此迷你空调添加高效散热。

A

A

硬件概览

它是如何工作的?

Cooler Click基于德州仪器的先进无刷直流电机驱动器DRV8213作为其核心组件。此创新板集成了微型温度传感器TMP007和冷却风扇MF25060V2-1000U-A99,直接在其表面,使其成为即插即用的冷却解决方案。它非常适用于易于过热的环境,例如服务器机架冷却、嵌入式系统和物联网设备、开发板原型制作、游戏机和PC冷却、汽车电子、医疗设备冷却或类似应用中,在这些应用中持续冷却至关重要。DRV8213是一款全面的电机驱动器,具有集成的全桥驱动器,具有电流感应和调节能力,并具有独特的电流感应输出。它设计高效,使用2针PWM接口,通过

mikroBUS™插座上的IN1和IN2引脚进行电机速度控制,覆盖从0到100kHz的宽PWM频率范围。值得注意的是,其自动休眠模式通过在不使用时自动进入低功耗模式减少了对额外GPIO连接的需求。DRV8213还增强了多种保护功能,例如欠压锁定、过流保护和过温关断,确保在各种条件下的可靠运行。另一个板载组件是来自德州仪器的TMP007传感器,采用红外热电堆技术测量温度而无需与物体直接接触。此功能可以准确监测Click板放置位置的周围温度。传感器的输出被数字化,并与晶片温度一起处理,以计算物体温度。它使用I2C接口与主机MCU通信,并通过

mikroBUS™插座的ALR引脚提供超温通知。补充这些组件的是MF25060V2-1000U-A99风扇,这是一款高性能冷却风扇,工作在5VDC电源下,最高转速可达10,000 RPM。此风扇对于高效散热至关重要,确保系统在运行期间保持凉爽。此Click板可以通过VCC SEL跳线选择3.3V或5V逻辑电压电平运行。这样,既支持3.3V又支持5V的MCU可以正确使用通信线路。此外,此Click板配备了一个包含易于使用的功能和示例代码的库,可用作进一步开发的参考。

Cooler Click hardware overview image

功能概述

开发板

Clicker 2 for Kinetis 是一款紧凑型入门开发板,它将 Click 板™的灵活性带给您喜爱的微控制器,使其成为实现您想法的完美入门套件。它配备了一款板载 32 位 ARM Cortex-M4F 微控制器,NXP 半导体公司的 MK64FN1M0VDC12,两个 mikroBUS™ 插槽用于 Click 板™连接,一个 USB 连接器,LED 指示灯,按钮,一个 JTAG 程序员连接器以及两个 26 针头用于与外部电子设备的接口。其紧凑的设计和清晰、易识别的丝网标记让您能够迅速构建具有独特功能和特性

的小工具。Clicker 2 for Kinetis 开发套件的每个部分 都包含了使同一板块运行最高效的必要组件。除了可以选择 Clicker 2 for Kinetis 的编程方式,使用 USB HID mikroBootloader 或外部 mikroProg 连接器进行 Kinetis 编程外,Clicker 2 板还包括一个干净且调节过的开发套件电源供应模块。它提供了两种供电方式;通过 USB Micro-B 电缆,其中板载电压调节器为板上每个组件提供适当的电压水平,或使用锂聚合物 电池通过板载电池连接器供电。所有 mikroBUS™ 本

身支持的通信方法都在这块板上,包括已经建立良好的 mikroBUS™ 插槽、重置按钮和几个用户可配置的按钮及 LED 指示灯。Clicker 2 for Kinetis 是 Mikroe 生态系统的一个组成部分,允许您在几分钟内创建新的应用程序。它由 Mikroe 软件工具原生支持,得益于大量不同的 Click 板™(超过一千块板),其数量每天都在增长,它涵盖了原型制作的许多方面。

Clicker 2 for Kinetis dimensions image

微控制器概述 

MCU卡片 / MCU

default

建筑

ARM Cortex-M4

MCU 内存 (KB)

1024

硅供应商

NXP

引脚数

121

RAM (字节)

262144

使用的MCU引脚

mikroBUS™映射器

Current Monitor
PB2
AN
Fan Driver Control 2
PB11
RST
ID COMM
PC4
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
Fan Driver Control 1
PA10
PWM
Alert Interrupt
PB13
INT
NC
NC
TX
NC
NC
RX
I2C Clock
PD8
SCL
I2C Data
PD9
SDA
Power Supply
5V
5V
Ground
GND
GND
1

“仔细看看!”

原理图

Cooler Click Schematic schematic

一步一步来

项目组装

Clicker 2 for PIC32MZ front image hardware assembly

从选择您的开发板和Click板™开始。以Clicker 2 for Kinetis作为您的开发板开始。

Clicker 2 for PIC32MZ front image hardware assembly
Buck 22 Click front image hardware assembly
Prog-cut hardware assembly
Micro B Connector Clicker 2 - 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

实时跟踪您的结果

通过调试模式的应用程序输出

1. 一旦代码示例加载完成,按下 "DEBUG" 按钮将启动构建过程,并将其编程到创建的设置上,然后进入调试模式。

2. 编程完成后,IDE 中将出现一个带有各种操作按钮的标题。点击绿色的 "PLAY" 按钮开始读取通过 Click board™ 获得的结果。获得的结果将在 "Application Output" 标签中显示。

DEBUG_Application_Output

软件支持

库描述

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

关键功能:

  • cooler_get_object_temperature - 此函数读取对象的温度数据,以摄氏度为单位。

  • cooler_set_out_state - 此函数控制冷却器的操作 - 开/关。

开源

代码示例

这个示例可以在 NECTO Studio 中找到。欢迎下载代码,或者您也可以复制下面的代码。

/*!
 * @file main.c
 * @brief Cooler Click Example.
 *
 * # Description
 * This example demonstrates the use of the Cooler click board 
 * by reading the target object temperature and controlling the cooler.
 *
 * 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
 * The demo application measures the temperature of the target object in degrees Celsius 
 * and enables a cooler if the temperature exceeds the temperature high limit value.
 * Results are being sent to the UART Terminal, where you can track their changes.
 *
 * @author Nenad Filipovic
 *
 */

#include "board.h"
#include "log.h"
#include "cooler.h"

// Object temperature high limit
#define COOLER_TEMP_HIGH_LIMIT    30.0

static cooler_t cooler;   /**< Cooler Click driver object. */
static log_t logger;    /**< Logger object. */

void application_init ( void )
{
    log_cfg_t log_cfg;  /**< Logger config object. */
    cooler_cfg_t cooler_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.
    cooler_cfg_setup( &cooler_cfg );
    COOLER_MAP_MIKROBUS( cooler_cfg, MIKROBUS_1 );
    err_t init_flag = cooler_init( &cooler, &cooler_cfg );
    if ( ( ADC_ERROR == init_flag ) || ( I2C_MASTER_ERROR == init_flag ) )
    {
        log_error( &logger, " Communication init." );
        for ( ; ; );
    }
    
    if ( COOLER_ERROR == cooler_default_cfg ( &cooler ) )
    {
        log_error( &logger, " Default configuration." );
        for ( ; ; );
    }
    
    log_info( &logger, " Application Task " );
}

void application_task ( void ) 
{
    float temperature = 0;
    if ( COOLER_OK == cooler_get_object_temperature( &cooler, &temperature ) )
    {
        log_printf( &logger, " Temperature: %.2f degC\r\n", temperature );
        log_printf( &logger, " Cooler: " );
        if ( COOLER_TEMP_HIGH_LIMIT < temperature )
        {
            if ( COOLER_OK == cooler_set_out_state( &cooler, COOLER_ENABLE ) )
            {
                log_printf( &logger, " Enabled.\r\n\n" );
            }
        }
        else
        {
            if ( COOLER_OK == cooler_set_out_state( &cooler, COOLER_DISABLE ) )
            {
                log_printf( &logger, " Disabled.\r\n\n" );
            }
        }
    }
    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

额外支持

资源

喜欢这个项目吗?

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