创建准确定时的脉冲,并确保在各种系统和设备中的同步操作。
A
A
硬件概览
它是如何工作的?
One Shot Click基于Analog Devices的LTC6993-2,这是一种单稳态多谐振荡器(也称为“一次性”脉冲发生器),其可编程脉冲宽度范围为1μs到33.6秒。LTC6993-2属于TimerBlox®系列多功能硅定时设备。一个单独的电阻RSET用于编程内部主振荡器频率,设置LTC6993的时间基准。输出脉冲宽度由这个主振荡器和一个内部时钟分频器NDIV决定,NDIV可以编程为八个设置,从1到221。输出脉冲由触发输入(TRIG)上的转换触发。每个部分可以配置为生成正或负输出脉冲。LTC6993-2有四个版本,提供不同的触发信号极性和重新触发能力。此外,LTC6993-2还提供了通过引入到IC的SET引脚的
独立控制电压动态调整输出脉冲宽度的能力。一个简单的微调器或电位器可以用于此目的,但出于可靠性原因,One Shot Click上使用了AD5241数字电位器。AD5241是一种来自Analog Devices的256位数字电位器,具有低温度系数(30 ppm/°C)。AD5241通过标准I2C接口与微控制器通信,因此用户只需在AD5241寄存器中设置滑动器值即可轻松控制和精确计算输出脉冲宽度。One Shot Click还包含一个多圈微调器,其作为V+和GND之间的分压电阻连接到LTC6993-2的DIV引脚。DIV引脚是可编程分频器和极性输入。极性输入引脚电压内部转换为4位结果(DIVCODE)。DIVCODE的
MSB(POL)确定OUT引脚的极性。当POL = 0时,输出产生正脉冲。当POL = 1时,输出产生负脉冲。这样,用户可以通过设置微调器上的所需电压轻松设置输出脉冲宽度范围和极性。该Click还包含测试点,以方便用户访问参考电压。用户可以使用分离开关(SW1)将微调器与电路的其余部分分离,然后精确设置和测量所需电压,并将开关重新打开位置。该Click板™可以在3.3V或5V逻辑电压水平下工作,通过VCC SEL跳线选择。这种方式,3.3V和5V能力的MCU都可以正确使用通信线。此外,该Click板™配备了一个包含易于使用的功能和示例代码的库,可作为进一步开发的参考。
功能概述
开发板
Curiosity PIC32 MZ EF 开发板是一个完全集成的 32 位开发平台,特点是高性能的 PIC32MZ EF 系列(PIC32MZ2048EFM),该系列具有 2MB Flash、512KB RAM、集成的浮点单元(FPU)、加密加速器和出色的连接选项。它包括一个集成的程序员和调试器,无需额外硬件。用户可以通过 MIKROE
mikroBUS™ Click™ 适配器板扩展功能,通过 Microchip PHY 女儿板添加以太网连接功能,使用 Microchip 扩展板添加 WiFi 连接能力,并通过 Microchip 音频女儿板添加音频输入和输出功能。这些板完全集成到 PIC32 强大的软件框架 MPLAB Harmony 中,该框架提供了一个灵活且模块化的接口
来应用开发、一套丰富的互操作软件堆栈(TCP-IP、USB)和易于使用的功能。Curiosity PIC32 MZ EF 开发板提供了扩展能力,使其成为连接性、物联网和通用应用中快速原型设计的绝佳选择。
微控制器概述
MCU卡片 / MCU

建筑
PIC32
MCU 内存 (KB)
2048
硅供应商
Microchip
引脚数
100
RAM (字节)
524288
使用的MCU引脚
mikroBUS™映射器
“仔细看看!”
Click board™ 原理图

一步一步来
项目组装
软件支持
库描述
该库包含 One Shot Click 驱动程序的 API。
关键功能:
oneshot_get_resistance- 此功能从AD5241芯片读取电阻数据oneshot_digital_read_rst- 此功能读取RST引脚的数字信号oneshot_digital_write_cs- 此功能向CS引脚写入指定的数字信号
开源
代码示例
完整的应用程序代码和一个现成的项目可以通过NECTO Studio包管理器直接安装到NECTO Studio。 应用程序代码也可以在MIKROE的GitHub账户中找到。
/*!
* \file
* \brief OneShot Click example
*
* # Description
* This example shows the user how to configure and use the One Shot Click. The Click has a
* monostable monovibrator which cam generate a pulse of width between 1μs and 33.6 seconds.
*
* The demo application is composed of two sections :
*
* ## Application Init
* This function initializes and configures the logger and Click modules. Resistance data,
* acquired from the AD5241, is displayed at the end of the initialization process.
*
* ## Application Task
* This function triggers one shot every 8 seconds.
*
* \author MikroE Team
*
*/
// ------------------------------------------------------------------- INCLUDES
#include "board.h"
#include "log.h"
#include "oneshot.h"
// ------------------------------------------------------------------ VARIABLES
static oneshot_t oneshot;
static log_t logger;
// ------------------------------------------------------ APPLICATION FUNCTIONS
void application_init ( )
{
log_cfg_t log_cfg;
oneshot_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 );
log_info( &logger, "---- Application Init ----" );
// Click initialization.
oneshot_cfg_setup( &cfg );
ONESHOT_MAP_MIKROBUS( cfg, MIKROBUS_1 );
oneshot_init( &oneshot, &cfg );
Delay_100ms( );
oneshot_default_cfg( &oneshot );
Delay_100ms( );
log_printf( &logger, " * Resistance: %.1f Ohm\r\n", oneshot_get_resistance( &oneshot ) );
}
void application_task ( )
{
oneshot_digital_write_cs( &oneshot, 1 );
Delay_ms ( 1 );
oneshot_digital_write_cs( &oneshot, 0 );
log_printf( &logger, " * One shot triggered \r\n" );
log_printf( &logger, " --------------------------- \r\n" );
// 8 seconds delay
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
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
额外支持
资源
类别:时钟发生器































