中级
30 分钟

使用CD74HC4067和PIC18F57Q43在模拟多路复用中取得非凡成功

终极模拟切换解决方案

Analog MUX Click with Curiosity Nano with PIC18F57Q43

已发布 6月 25, 2024

点击板

Analog MUX Click

开发板

Curiosity Nano with PIC18F57Q43

编译器

NECTO Studio

微控制器单元

PIC18F57Q43

通过我们的16通道输入切换解决方案,在复杂系统中实现对模拟信号的精确控制,该解决方案专为各行业的高性能应用优化。

A

A

硬件概览

它是如何工作的?

Analog MUX Click 基于德州仪器的CD74HC4067,这是一款高速CMOS逻辑16通道模拟多路复用器/解复用器。它支持3.3V和5V电源以及轨到轨操作,能够在各种应用中使用。四个控制引脚将十六个输入中的一个切换到单个输出。标记为S0、S1、S2和S3的控制引脚路由到mikroBUS™,可以由3.3V和5V MCU操作。这些引脚分别连接到mikroBUS™的RST、PWM、INT和CS引脚,而来自多路复用器的公共输出引脚连接到mikroBUS™的AN引脚。CD74HC4067 IC是一种数字控制的模拟开关,利用硅栅

CMOS技术实现与LSTTL类似的操作速度,并具有标准CMOS集成电路的低功耗。上述模拟多路复用器/解复用器控制可能在电源电压范围内变化的模拟电压。超低泄漏电流确保未被S0、S1、S2和S3引脚选择的输入信号没有干扰。低串扰还确保一个通道上的信号不受其他通道引起的干扰的影响。为了防止同时在输出端切换两个输入,采用了断开优先于连接的切换动作。这确保了IC和Click板™本身的可靠操作。Analog MUX Click 也是一个双向开关,允许任何模拟输入用作输出,反之亦然。开关具有低“导通”电阻和

低“关断”泄漏。所有输入通道都可以轻松连接到两个9极弹簧式端子块,无需使用任何其他工具,如螺丝刀。关于CD74HC4067的更多信息可以在附带的数据手册中找到。然而,该Click板™配备了一个包含易于使用的函数和用法示例的库,可以用作开发参考。此Click板™可以通过VCC SEL跳线选择3.3V或5V逻辑电压水平。这种方式,3.3V和5V的MCU都可以正确使用通信线路。此外,该Click板™配备了一个包含易于使用的函数和示例代码的库,可以用作进一步开发的参考。

Analog MUX Click top side image
Analog MUX Click bottom side 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™映射器

Common Output
PA0
AN
Control pin 0
PA7
RST
Control pin 3
PD4
CS
NC
NC
SCK
NC
NC
MISO
NC
NC
MOSI
Power Supply
3.3V
3.3V
Ground
GND
GND
Control pin 1
PB0
PWM
Control pin 2
PA6
INT
NC
NC
TX
NC
NC
RX
NC
NC
SCL
NC
NC
SDA
Power Supply
5V
5V
Ground
GND
GND
1

“仔细看看!”

Click board™ 原理图

Analog MUX 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

软件支持

库描述

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

关键功能:

  • analogmux_get_voltage - 通用读取电压函数

  • analogmux_set_channel - 此函数设置MUX上的活动通道

开源

代码示例

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

/*!
 * \file 
 * \brief AnalogMUX Click example
 * 
 * # Description
 * This example showcases how to initialize, configure and use the Analog MUX Click module. 
 * The Click switches one of the 16 inputs to output so the adc value of that input 
 * can be read on the COM (AN) pin. The RST, PWM, CS and INT are used as control output pins. 
 *
 * The demo application is composed of two sections :
 * 
 * ## Application Init 
 * This function initializes and configures the logger and Click modules.
 * 
 * ## Application Task  
 * This function reads ADC value and voltage from channel 0 (AN0) and shows the results 
 * on the USB UART every 2 seconds. 
 * 
 * \author MikroE Team
 *
 */
// ------------------------------------------------------------------- INCLUDES

#include "board.h"
#include "log.h"
#include "analogmux.h"

// ------------------------------------------------------------------ VARIABLES

static analogmux_t analogmux;
static log_t logger;

// ------------------------------------------------------ APPLICATION FUNCTIONS

void application_init ( void )
{
    log_cfg_t log_cfg;
    analogmux_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 );
    Delay_100ms( );
    log_info( &logger, "---- Application Init ----" );

    //  Click initialization.

    analogmux_cfg_setup( &cfg );
    ANALOGMUX_MAP_MIKROBUS( cfg, MIKROBUS_1 );
    analogmux_init( &analogmux, &cfg );

    analogmux_set_channel( &analogmux, ANALOGMUX_CHANNEL_0 );
    log_printf( &logger, " Channel 0 enabled\r\n" );
    log_printf( &logger, " -------------------\r\n" );
}

void application_task ( void )
{
    uint16_t tmp;
    float val;

    tmp = analogmux_generic_read( &analogmux );
    
    log_printf( &logger, " ADC value : %u\r\n", tmp );

    val = analogmux_generic_read_voltage( &analogmux );

    log_printf( &logger, " Voltage: %.3f mV\r\n", val );
    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

额外支持

资源

喜欢这个项目吗?

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