EFM32外设模块—LESENSE V1.00

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/* 开启 GPIO 时钟
*/
CMU_ClockEnable(cmuClock_CORELE, true);
/* 开启 LE 时钟
*/
wenku.baidu.com
CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_LFXO); /* 选择 LFXO 为 LFA 时钟源
*/
CMU_ClockEnable(cmuClock_LESENSE, true);
3.1
实验目的 ................................................................................................................... 3
3.2
实验设备 ................................................................................................................... 3
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd. 2
广州周立功单片机科技有限公司
LESENSE
EFM32 系列微控制器
3. 实验指导
3.1 实验目的
掌握 Energy Micro EFM32 系列微控制器 LESENSE 的特性并能够利用 LESENSE 构建简 单应用。
2. FAQ ............................................................................................................................ 2
3. 实验指导...................................................................................................................3
LESENSE
EFM32 系列微控制器
EMU_EnterEM2(false);
/* 进入 EM2 深度睡眠模式
*/
}
}
在 LESENSE 容性传感器应用初始化函数中,先配置所需时钟,开启相关模块时钟,在 配置 LESENSE 时钟时,为了得到较高的测量精度,使用 LFXO 作为 LFA 的时钟源。由于 只使用通道 5,因此只需配置通道 5 对应的 PC5 引脚即可。最后调用 ACMP 初始化函数和 LESENSE 初始化函数并清零按键标志位。具体实现代码如程序清单 3.2 所示。
3.3
实验内容 ................................................................................................................... 3
3.4
试验步骤 ................................................................................................................... 3
/* 开启 LESENSE 时钟
*/
/* * PC5 作为电容按键输入,因此 GPIO 需配置为输入输出禁能的浮空状态。
*/
GPIO_PinModeSet(gpioPortC, 5, gpioModeDisabled, 0);
/* * LESENSE 作为电容传感器应用时不需要 DAC,因此不用配置 DAC
程序清单 3.1 主函数
int main (void) {
CHIP_Init();
CMU_ClockEnable(cmuClock_GPIO, true);
/* 开启 GPIO 时钟
*/
GPIO_PinModeSet(gpioPortD, 7, gpioModePushPull, 0);
/* 配置 PD7 为推挽输出初始低电平 */
4. 免责声明.................................................................................................................12
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd. 1
3.2 实验设备
z 硬件:PC 机一台和 EFM32TG-STK3300 开发板一套; z 软件:IAR(或 Keil)集成开发环境。
3.3 实验内容
本实验主要演示如何使用 LESENSE 实现电容触摸按键应用。 在实验例程中使用 LESENSE 的输入通道 5 检测电容触摸按键的输入,当检测到手指触 摸时 LED 将被点亮,而当手指离开触摸按键时 LED 则被熄灭。
广州周立功单片机科技有限公司
LESENSE
EFM32 系列微控制器
目录
1. 概述...........................................................................................................................1
3.5
实验参考程序 ........................................................................................................... 3
3.6
实验结果 ................................................................................................................. 10
广州周立功单片机科技有限公司
LESENSE
EFM32 系列微控制器
1. 概述
低功耗传感器接口(Low Energy Sensor Interface,简称 LESENSE)是 EFM32 片上的低 功耗外设,能够在不需要 CPU 的干预情况下即可完成对外部传感器输入信号的测量和处理。
如图 1.1 所示为 LESENSE 模块的结构框图。LESENSE 前端使用 ACMP 测量传感器输 入信号,并可以通过控制 DAC 生成测量所需的精确参考电压。
3.4 试验步骤
1) 连接开发板 USB 端口到电脑的 USB 端口,打开 MCU 电源; 2) 打开 Keil(或 IAR)工程,重新编译并下载程序; 3) 打开 Simplicity Studio 软件,点击 energyAware Profiler 图标项打开 AEM 监控软件
监控 MCU 运行功耗; 4) 复位 MCU,用手指触摸开发板 TOUCH SLIDER 最左边的触摸按键,观察 LED 灯
capacitiveInit();
/* 初始化 LESENSE 容性传感器应用 */
LESENSE_ScanStart();
/* 启动 LESENSE 扫描
*/
while(1) {
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd. 3
广州周立功单片机科技有限公司
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd.
4
广州周立功单片机科技有限公司
LESENSE
EFM32 系列微控制器
.warmTime
= acmpWarmTime512, /* 预热时间有 LESENSE 控制
*/
.lowPowerReferenceEnabled = false,
程序清单 3.3 ACMP 初始化函数
static void setupACMPCapacitive (void) {
/* * 由于 ACMP 使用电容感应模式,因此配置结构体选择电容传感器应用的初始化结构体 */ const ACMP_CapsenseInit_TypeDef tAcmpCapInit = {
程序清单 3.2 LESENSE 容性传感器应用初始化函数
void capacitiveInit (void)
{
/*
* PC5 作为电容按键输入,因此只需要开启 ACMP0 的时钟。
*/
CMU_ClockEnable(cmuClock_ACMP0, true);
CMU_ClockEnable(cmuClock_GPIO, true);
图 1.1 LESENSE 结构框图
产品应用笔记
©2012 Guangzhou ZLG MCU Technology Co., Ltd. 1
广州周立功单片机科技有限公司
LESENSE
EFM32 系列微控制器
2. FAQ
1. LESENSE 的扫描序列有哪些触发方式? A:扫描序列有 PRS 触发、单次触发和周期触发三种触发方式。 PRS 触发:通过 PRS 通道进行触发启动扫描; 单次触发:软件触发启动单次扫描; 周期触发:启动扫描后每次模块内部周期计数器溢出则再次启动扫描。 2. LESENSE 的传感器扫描时序哪些需要注意? A:LESENSE 有两个可选的时钟源。一个低频时钟源,工作在 LFACLKLESENSE 时钟下。 一个是高频时钟源,工作在 AUXHFRCO 时钟下。激励时间长度、采样延迟可以根据实际需 要选择 LFA 或 AUXHFRCO 作为其时钟源,而启动延迟和测量延迟则只能选择 LFA 作为其 时钟源。 3. LESENSE 支持的解码形式是什么? A:LESENSE 只支持 16 种状态的可编程状态机。它的输入是由四个位组成的可表达 16 种状态的编码。四个状态位可以由通道采样结果组成,也可以由 PRS 通道的输入组成。 4. LESENSE 的存储结果使用时需要注意什么? A:LESENSE 的结果缓存是由 16 个半字组成的循环队列。它映射在 LESENSE 内部 RAM 中,对这部分 RAM 进行访问时需要确保其未被禁能。
*/ setupACMPCapacitive(); setupLESENSECapacitive();
/* 配置 ACMP 模块
*/
/* 配置 LESENSE 模块
*/
__GucCapButtonFlag = 0;
/* 清 0 标志位
*/
}
在 ACMP 模块的配置中,由于是容性传感器应用,因此选择容性传感器应用配置结构 体初始化 ACMP 模块,其中偏置电流、滞回电压、VDD 分压值和电容感应回路中串联电阻 值等需根据实际应用需求配置。具体实现代码如程序清单 3.3 所示。
状态。
3.5 实验参考程序
如程序清单 3.1 所示为实验例程主函数代码。主函数中首先开启 GPIO 模块时钟,配置 LED 灯对应的 PD7 引脚为推挽输出,同时配置其初始状态为低电平输出。然后调用 LESENSE 容性传感器应用的初始化函数初始化 LESENSE 并启动 LESENSE 扫描。最后程序进入 EM2 深度睡眠模式。
/* 偏置电流配置
*/
.hysteresisLevel .vddLevel .resistor
= acmpHysteresisLevel5, /* 配置 ACMP 滞回电压
*/
= 0x30,
/* 配置 VDD 参考电压分压值
*/
= acmpResistor0
/* 电容感应回路中串联电阻选择
*/
};
/* * ACMP 电容感应模式配置 */ ACMP_CapsenseInit(ACMP0, &tAcmpCapInit); }
/* 禁能低功耗参考电压模式
*/
.enable
= false,
/* 由 LESENSE 控制使能 ACMP
*/
/* * 以下配置根据实际应用配置
*/
.fullBias .halfBias .biasProg
= true, = true, = 0x05,
/* 全偏置电流开启
*/
/* 减半偏置电流开启
*/
如程序清单 3.4 所示为 LESENSE 初始化函数。在该函数中主要完成 LESENSE 整体配 置和 LESENSE 通道配置。其中 LESENSE 总体配置中又分为 LESENSE 内核、测量时序和 LESENSE 所使用外设和译码器等四个部分的初始化工作。其中译码器部分在本实验例程中 未使用到。在 LESENSE 通道配置中将采样时间设为 127 个模块时钟周期以获取足够的计数 值,而阈值则根据实际的测量设置为 1200 并配置当计数器值低于阈值时产生中断。配置 LESENSE 每秒钟扫描 5 次,最后开启 LESENSE 总中断。
相关文档
最新文档