Nordic nRF52832/nRF51822 GPIOTE

1、GPIOTE 简单介绍

Nordic 的GPIO中断是通过 GPIOTE这个外设模块来实现的。

GPIOTE 使用task 和event的方式来控制GPIO,GPIO做为输出可以通过 GPIOTE task 来控制IO输出高电平、低电平、或者翻转电平,GPIO做为输入在IO发生变化(Rising edge、
Falling edge、Any change)产生GPIOTE event事件,可以触发GPIOTE中断,或着将event连接到PPI上触发task。PPI这个外设功能非常好,可以减少CPU工作。

2、GPIOTE 通道

nRF52832 GPIOTE 有8 个通道,最多可以配置8个GPIO(Pin events and tasks)

3、如果超过8个怎么办?

可以使用Port event

Port event是所有GPIO DETECT信号的组合事件,每个GPIO都可以触发GPIOTE Port event。

4、程序代码如何配置使用pin event还是port event ?

nrf_drv_gpiote_in_init 初始化函数中参数p_config->hi_accuracy = true 为 pin event,否则为port event

5、下面说说使用GPIOTE遇到的问题

无论是pin event还是port event的方式都有些问题,要根据自己的使用场景和要求来选择配置

5.1  GPIOTE pin event 功耗高

GPIOTE pin event 需要使用16MHz HFCLK,所以功耗比较高

5.2  GPIOTE port event 不能多个GPIO同时触发

因为GPIOTE port event是检测DETECT 上升沿信号,GPIO的SENSE条件为真就将DETECT设置为1,DETECT是所有GPIO的组合信号,如果一个GPIO 已经触发DETECT信号,并且IO状态未改变,SENSE条件还是为真,DETECT将还是1,这里另一个GPIO再次Sense条件满足,也不会触发port event中断,因为DETECT没有改变(没有检测到上升沿)

5.3  解决方法

5.3.1 如果不在乎功耗,那么很简单,配置p_config->hi_accuracy = true使用pin event

5.3.2 如果功耗非常重要,并且没有多个GPIO同时中断的场景,那么配置p_config->hi_accuracy = false使用port event

5.3.3 如果功耗非常重要 , 并且需要多个GPIO同时中断,那么配置p_config->hi_accuracy = false使用port event,并且p_config->sense配置为NRF_GPIOTE_POLARITY_TOGGLE, 这样配置如果按键按下触发port event 中断后改变按键GPIO sense设置就不会持续触发DETECT信号,这时有其他GPIO中断就可以触发Port Event中断

6、参考

https://devzone.nordicsemi.com/f/nordic-q-a/18052/gpiote-handler-module-or-gpiote-driver-for-port-interrupt

https://devzone.nordicsemi.com/f/nordic-q-a/14825/gpiote-interrupt-issue/56595#56595

https://devzone.nordicsemi.com/f/nordic-q-a/40386/question-about-current-in-low-power-mode/157035#157035

https://devzone.nordicsemi.com/f/nordic-q-a/5016/how-to-use-the-port-event/17685#17685

https://devzone.nordicsemi.com/f/nordic-q-a/37063/what-s-difference-between-hi_accuracy-and-port-event-interruption/142491#142491

https://devzone.nordicsemi.com/f/nordic-q-a/25428/gpio-in_event-to-gpio-port-event/100221#100221

https://devzone.nordicsemi.com/f/nordic-q-a/577/current-consumption-when-using-rtc-ppi-and-gpiote#post-id-18533

原文地址:https://www.cnblogs.com/dreamblog/p/10160661.html

时间: 2024-10-04 21:20:07

Nordic nRF52832/nRF51822 GPIOTE的相关文章

Nordic nRF52832 学习笔记(1) 介绍,入门,与准备工作

近来,物联网已成为大势所趋,VR与AR正方兴未艾,各种手环.遥控.智能家居也在粉墨登场.技术前沿的领航者们已经快马加鞭,各种意志与暗示也在上传下达.物联网,无线通讯,移动互联,将成为新的目标与宠儿.最近开的电赛动员会上已经明确而彻底的传达了"互联网+"的精神,甚至要用手机做APP来操控云云,总之是无线通信已经被摆在了前所未有的位置上. 现在常用的有规范标准的无限通信协议主要有WiFi(802.11a/b/g/n),蓝牙(Bluetooth),ZigBee(802.15.4)等等,他们各

Nordic Semiconductor nRF52832 蓝牙智能多协议单芯片解决方案荣获《中国电子商情》编辑选择奖

挪威奥斯陆 – 2016年4月11日 – Nordic Semiconductor ASA (OSE: NOD) 赢得<中国电子商情>颁发的“2015年编辑选择奖”,其nRF52 系列中的第一款产品nRF52832蓝牙智能系统级芯片(SoC)荣获<中国电子商情>评定为“2015 年度中国最具竞争力接口产品”. 由<中国电子商情>和中电会展与信息传播有限公司联合举办的“2015年编辑选择奖”,评选准则设定在品牌影响力.市场份额.技术创新以及产品服务等方面的考虑.Nordi

&lt;转&gt;主流蓝牙BLE控制芯片详解(4):Nordic nRF51822

导读] nRF51822 是功能强大.高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗无线应用. 同系列芯片资料推荐:    主流蓝牙BLE控制芯片详解(1):TI CC2540    主流蓝牙BLE控制芯片详解(2):CSR BC6130    主流蓝牙BLE控制芯片详解(3):创杰 IS1685S Nordic nRF51822简介 nRF51822 是功能强大.高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超

NORDIC内核ARM蓝牙芯片NRF51802/NRF51822

Nordic  nRF51 系列的IC 和协议堆栈对内存大小.封装类型.接口.周边产品及无线连接提供更多选择. 关于 nRF51 系列 多协议 2.4GHz 射频收发器拥有高性能.超低功耗以及灵活性等好处.它的主要功能包括: 在蓝牙低功耗模式下灵敏度为-92.5dB RX, 高达 +4dBm 的输出功率: 与 Nordic 上一代射频收发器相比,链接预算增强高达 9.5dBm: 低于10mA 的峰值电流适合3V 纽扣电池: 符合蓝牙低功耗(蓝牙 4.0 )标准: 与 Nordic 现有的 nRF

详解BLE 空中包格式—兼BLE Link layer协议解析

BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(packet)涉及BLE协议栈link layer,L2CAP,SMP和ATT等各层次,但link layer跟空中包格式关系最紧密,掌握了BLE packet的格式,就很容易理解BLE link layer协议的工作原理,因此文章取名"详解BLE空中包格式-兼BLE link layer协议解析&qu

智能手环幕后的英雄

转载:http://www.eeworld.com.cn/qrs/article_2016092730607.html 在我们生活中,如果出门时手上没个什么“表”.什么“环”的会不会感觉Out了.2014年开始,可穿戴设备犹如洪水般冒出来,三星.Sony.LG.小米.华为等大厂纷纷入驻.智能手环是一种穿戴式智能设备,通过这款手环,用户可以记录日常生活中的锻炼.睡眠.部分还有饮食等试试数据,并将这些数据与手机.平板同步,起到通过数据指导健康生活的作用. 近期我们编程器部门频繁接到客户关于咨询nRF

NRF51822和NRF52832的主要区别

对于NRF51822和NRF52832的选择性相信大家也是非常困惑的,哪个性价比高?下面为大家讲下NRF51822和NRF52832的一个区别,让大家能够更好的快速选型加快研发产品进度! 主要分为五大要点: 一.功耗方面:nRF52832更是在nRF51822的基础上简直将功耗降低了一半 二.更好的RF体现,主要是发射功率和接纳敏感度更好.发射功率,他哥俩适当,都是+4dbm ,nrf52832的灵敏度是 -96dbm,nrf51822的接纳灵敏度是 -93dbm. 三. 更强的处理才能,nrf

[蓝牙] 3、&lt;KEIL path&gt; \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs BLE心率检测工程

Heart Rate Example The Heart Rate Application is a firmware example that implements the Heart Rate profile using the hardware delivered in the nRF51822 Development Kit. The source code and project file can be found in the <InstallFolder>\Nordic\nrf5

[nRF51822] 5、 霸屏了——详解nRF51 SDK中的GPIOTE(从GPIO电平变化到产生中断事件的流程详解)

:由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) . 从GPIO电平变化到产生中断事件的流程详解  1.GPIOTE概览 nRF51上面有32个GPIO,由于在大多数情况下GPIO的状态变化都会触发应用程序执行一些动作.为了方便nRF51官方把该流程封装成了GPIOTE,全称:The GPIO Tasks and Events (GPIOTE) .GP