BSP--NRF51/52
文章平均质量分 75
nrf51/52介绍和使用说明
jianqiang.xue
欢迎交流,寻找小众MCU厂商代理合作
展开
-
[nrf52][SDK17] FDS的GC操作
本文介绍FDS库的GC操作。原创 2022-01-05 16:12:44 · 610 阅读 · 0 评论 -
[嵌入式框架][nrf52820][nrf52840] 硬件USB_HID
USB设备(USBD)控制器实现全速USB设备功能,满足2.0版本的USB规范。这里列出的是USBD的主要特性:全速度(12mbps)设备完全符合通用串行总线规范修订2.0,包括以下是USB实施者论坛发布的工程更改通知:上拉/下拉电阻ECN5V短路耐受要求变更ECNUSB设备栈在北欧SDK中可用集成(芯片上)USB收发器(PHY)软件控制的芯片上拉在D+端点:两个控制(1 IN, 1 OUT)14 bulk/interrupt (7 IN, 7 OUT)两个同步(1in原创 2022-03-05 12:20:21 · 4943 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_gpio] GPIO配置和使用
GPIO — General purpose input/output通用输入/输出(GPIO)组织为一个端口多达32个I/ o(依赖于包),允许通过一个端口访问和控制多达32个引脚。 每个GPIO可以单独访问GPIO具有以下用户可配置的特性:最大支持32 GPIO8 GPIO与模拟通道,用于SAADC, COMP或LPCOMP输入可配置的输出驱动器强度内部上拉和下拉电阻从所有引脚的高或低电平触发器唤醒在任何引脚上的状态改变触发中断所有引脚都可以被PPI任务/事件系统使用可以通过PPI原创 2021-10-17 22:12:42 · 573 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_rng] RNG随机数生成器配置和使用
当启动时,新的随机数将连续生成,并在准备就绪时写入VALUE寄存器。这意味着在生成VALRDY事件后,CPU有时间直到下一个VALRDY事件从VALUE寄存器读出随机数,然后再被一个新的随机数覆盖。在内部比特流上使用偏差校正算法,以消除对’1’或’0’的任何偏差。然后,这些位被排到一个8位寄存器中,以便从VALUE寄存器并行读出。可以在CONFIG寄存器中启用偏差校正。这将导致较慢的值生成,但将确保随机值的统计均匀分布。生成一个随机字节数据所需的时间是不可预测的,并且可能随字节的不同而变化。原创 2021-10-18 18:48:45 · 499 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_led] LED配置和使用
本文将介绍NRF51,如何点亮LED灯原创 2021-10-18 18:15:56 · 214 阅读 · 0 评论 -
[nrf52][SDK17] 如何修改BLE_MAC地址?
打开nrf52832的开发环境,例如Keil或者Segger Embedded Studio。打开nrf52832的工程文件。找到nrf52832的BLE协议栈源代码文件,一般是在SDK文件夹下的components/ble目录下。打开ble_gap.c文件,找到以下代码:这里的m_addr就是nrf52832的BLE_MAC地址,可以根据需要进行修改。修改m_addr的值为新的MAC地址,例如:保存修改后的文件,重新编译nrf52832的工程文件,烧录到nrf52832芯片中即可。原创 2022-01-25 18:17:26 · 1102 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_pwm] PWM配置和使用
有一个普通的15位计数器与四个比较通道。因此,所有四个通道将共享相同的周期(PWM频率),但可以有各自的占空比和极性。极性由从RAM读取的值设置(参见第498页图144:解码器内存访问模式),而MODE寄存器控制计数器是向上计数还是向上和向下计数。这个寄存器值与PWM_CLK的所选PRESCALER结合将产生一个给定的PWM周期。LOAD=波形,寄存器值将被忽略,并从RAM中获取(参见下面498页的译码器和 EasyDMA)。所有的比较寄存器都是内部的,只能通过后面提供的解码器进行配置。原创 2021-10-18 18:25:37 · 461 阅读 · 0 评论 -
[nrf52][SDK17] 弄懂FDS
1. 基础nRF52系列芯片都是Cortex-M4内核,芯片的Flash操作由NVMC(Non-volatile memory controller)管理,读写擦的机制相同:写:以Word(4字节)为单位进行Flash写操作。写入地址要Word对齐,往未对齐的地址执行写操作会导致Hard Fault。写入过程中,CPU处于挂起(Halt)状态。芯片写入次数有寿命限制擦:以Page(4kB)为单位进行Flash擦操作。擦除过程中,CPU处于挂起(Halt)状态。读:自由操作,无寿命限制nRF原创 2022-01-05 16:02:01 · 2114 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_exti] exti/gpioe配置和使用
GPIOTE—GPIO任务和事件GPIO任务和事件(GPIOTE)模块提供了使用任务和事件访问GPIO管脚的功能。 每个GPIOTE通道可以分配到一个引脚。GPIOTE块使GPIOs能够在引脚状态变化上生成事件,可以用于通过PPI系统执行任务。 还可以使用ppissystem驱动GPIO更改系统事件的状态。 在系统开启或关闭时,可以对引脚状态变化进行低功耗检测Table 31: GPIOTE propertiesInstanceNumber of GPIOTE channelsG原创 2021-10-18 09:58:48 · 242 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_uart] UART配置和使用
不同的信号RXD, CTS (Clear To Send, active low), RTS (Request To Send, active low)和TXD与UART相关联,分别根据PSELRXD, PSELCTS, PSELRTS和PSELTXD寄存器中指定的配置映射到物理引脚。因此,在配置和使用UART之前,必须禁用与UART ID相同的所有外围设备。当系统处于OFF模式时,为了确保UART在引脚上的正确信号电平,必须按照第531页引脚配置中的描述在GPIO外围设备中配置引脚。原创 2021-10-18 18:42:54 · 491 阅读 · 0 评论 -
[NRF52] mesh DFU
以前nRF SDK DFU的实现是通过nRF51 Dongle配合主机nRF connect工具,且借助Secure DFU的后台式更新速率较快(见另一篇笔记),现在的nRF mesh DFU分角色,全都由DK充当:一个带有serial串口交互的发送设备(source)和若干个待升级设备(relay或target)角色,从而实现整个网络所有设备全都批量升级,这对未来的物联网是一次崭新的创意点。原创 2023-02-01 11:57:36 · 539 阅读 · 0 评论 -
[嵌入式方案][nrf52810] ESB(2.4G) 主从一体方案 多通道通信 动态调频
支持星状网络拓扑实现一拖多的双向链路是nrf52的一个特点,nrf52一个接收端能最多支持8个发送端。8个逻辑通道(pipe)拥有单独特定的传输物理地址,所以保证了数据不会错乱。8个逻辑地址是如何和物理地址对应呢,如下图逻辑地址的定义,第一章我们说了物理地址由base+prefix组成,所以通道0的地址是BASE0+prefix[0],其他的地址是BASE1+prefix[1]~[7]。然后发送端发送自己逻辑地址,接收端接收判断收到数据包逻辑通道。...原创 2022-02-17 21:29:41 · 2428 阅读 · 3 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_key] KEY配置和使用
理解独立按键,必须理解应用层KeyDriver()和底层KeyScan(),KeyAction()三者的联系KeyScan()在中断里扫描键值 运用移位操作,静态变量,循环,判断按下的键值KeyDriver()在主函数循环里刷新 使用静态变量keyback,进行按键松开,按下,按住的判断KeyAction()根据扫描的键值操作 使用多个if语句,或者case语句进行直接操作或flag操作流程:判断按下的哪个键,进行松开,按下,按住的判断,最后执行按键的指令.代码将讲解如何实现按键扫描功能,注册按键事件(单原创 2021-10-18 18:12:34 · 257 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][bsp_adc] ADC/SSADC配置和使用
RESULT.AMOUNT 可以在END事件或STOPPED事件之后读取AMOUNT寄存器,查看自触发START任务以来有多少结果被转移到RAM中的Result缓冲区。在Scan模式下,Result缓冲区的大小必须足够大,以便有足够的空间容纳来自每个启用通道的至少一个结果。为了确保这一点,结果。当MAXCNT寄存器和ADC填满Result缓冲区时,将生成一个END事件,参见第362页的图101:ADC。在内部,ADC始终是一个差分模数转换器,但默认情况下,它在CH[n]的MODE字段中配置为单端输入。原创 2021-10-18 18:06:37 · 727 阅读 · 0 评论 -
[单片机框架][bsp层][nrf52832][nrf52840][nrf52810][nrf52820][ESB(2.4G)] ESB(2.4G)使用说明
ESB具有自动数据包事务处理功能,可轻松实现可靠的双向数据链路, 在这当中,传输包(A transaction is a packet)是两个收发器之间的分组交换,一个收发器作为主接收PRX,一个收发器作为主发送PTX.ESB协议嵌入在传统nRF24L系列的硬件中,而增强型ShockBurst模块(即ESB)使nRF5系列设备能够使用ESB协议与nRF5或nRF24L系列设备进行通信。ESB支持双向数据包通信,包括数据包缓冲,数据包确认和丢失数据包的自动重传的基本协议.ESB提供低功耗的射频传输功能。原创 2021-12-22 10:35:11 · 1598 阅读 · 1 评论 -
[嵌入式方案][nrf52820] DONGLE适配器 ESB(2.4G) 主从一体方案 多通道通信 动态调频
| —app_usbd_core.c (USB设备高级库核心内部模块/内部变量、辅助宏和函数)【注意】 CMSIS版本不能低于5.8.0,否则程序将不正常运行。| | —biz_usb.c (USB初始化/通道发送/USB信息)| | ±–app_usbd_string_desc.c (USB字符串描述符/当前系统类型)\nrf52_boot\out\nrf52_boot_usb_dfu.hex。原创 2022-03-05 11:15:32 · 1220 阅读 · 5 评论 -
[nrf51][nrf52] sd_power_gpregret_set 特殊寄存器 在软复位的情况下自动保持,外部复位时才会清除
除SWJ-DP外的所有调试组件。有关系统中不同调试组件的更多信息,请参阅第72页的调试和跟踪。如果设备处于调试接口模式,则禁止从CPU锁定复位。CPU锁定是不可能在系统关闭。如果设备处于调试接口模式,则Debug组件不会被重置。从OFF模式唤醒时RAM不会被重置,但根据RAM寄存器部分的设置,或整个RAM,在设备进入系统OFF模式后可能不会被保留。看门狗重置在系统关闭不可用.因此在某些特殊情况下将数据临时存储在RAM或寄存器中更加合适,如.上图中标星的情形。原创 2022-04-01 11:41:58 · 839 阅读 · 0 评论 -
[nrf51][nrf52] 非静态地址设置白名单,导致程序死机
这种特定类型的蓝牙地址可作为公共地址的一种流行替代方法,因为使用它无需付费。随机静态地址可以通过以下两种方式之一使用:但是,无法在运行时更改它。随机静态地址的格式如下:重要说明:所有蓝牙设备都必须使用以下两种类型之一:公共地址或随机静态地址。静态设备地址的特征可总结为:静态设备地址的使用场景可总结为:46bits 的随机数,可以很好地解决“设备地址唯一性”的问题,因为两个地址相同的概率很小。地址随机生成,可以解决公共设备地址申请所带来的费用和维护问题。原创 2022-03-26 17:34:11 · 439 阅读 · 0 评论 -
[嵌入式方案][nrf51822][LSC-01] BLE模块 从机 AT指令 BLE HID NUS 密码配对 自动回连 电量显示 OTA DFU DTM 定频 4路PWM 2路ADC4路自定义IO
蓝牙模块功能:BLE4.2仅从机( 支持 苹果/安卓/PC/小程序 连接)串口透传(NUS)HID(鼠标/键盘)密码配对(6位数字密码)自动回连(无需APP支持)系统电量显示(IOS/Win,安卓需要走自定义)OTA更新固件(空中升级+UART升级)带DTM和定频模式(过验证)系统电量显示:window苹果负一屏AT指令(UART)4路PWM4路自定义IO2路ADC采集1路WS28xx本模块应用方向:1.蓝牙鼠标、键盘2.串口透传3.自动回连,靠近开锁。(原创 2022-03-23 22:15:45 · 1100 阅读 · 3 评论 -
[nrf51822][SDK12.3] 实现白名单快速广播3s,转白名单慢广播无限
adv_flags 设置为BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE。options.ble_adv_whitelist_enabled设置为true。原创 2022-03-19 00:53:04 · 781 阅读 · 0 评论 -
[nrf51822][SDK12.3] 使用[静态/动态密码]进行配对
如果没有使用sd_ble_opt_set函数,密码会一直保持不变。需要先设置一个默认密码。原创 2022-03-19 00:53:43 · 502 阅读 · 0 评论 -
[嵌入式框架][nrf51822][SDK12.3] BLE分层设计 NUS 透传数据队列发送,提升带宽利用率
透传数据队列发送,提升带宽利用率原创 2022-03-18 10:17:19 · 650 阅读 · 0 评论 -
[嵌入式框架][nrf51822][SDK12.3] BLE分层设计 DFU OTA 透传(NUS) 电量 设备信息 BLE_HID
简化后只有700+,仅保留协议栈事件处理,白名单,对等管理器,连接状态。目的使其减轻头文件定义,业务功能调整。三、 参数统一头文件管理。原创 2022-03-18 00:11:54 · 664 阅读 · 0 评论 -
[nrf51822] nrf51 创建服务出现 NRF_ERROR_NO_MEM
最后定位错误出现在sd_ble_uuid_vs_add()这个函数;我在ble_ancs_c_init()中添加了4个自定义服务,除了苹果的ANCS,还在使用了一个自定义服务,总的用来5个,修改#define NRF_SDH_BLE_VS_UUID_COUNT 5。从上面三个方向入手,虽然能解决一些常见的内存不足的错误,但是还是没有搞定NRF_ERROR_NO_MEM这个错误。在sdk_config.h中,根据使用的蓝牙服务,以及服务特征的数量来调整对应的大小,确保蓝牙属性列表不会越界。原创 2022-02-25 21:52:44 · 659 阅读 · 0 评论 -
[nrf51][nrf52] nrfconnect 安装说明指南
nrfconnect 是一个用于开发和调试 Nordic Semiconductor 公司的无线设备的工具。以下是 nrfconnect 的安装说明:首先,您需要下载并安装 nrfconnect 工具。您可以在 Nordic Semiconductor 的官方网站上找到 nrfconnect 的下载链接。安装完成后,您需要将您的设备连接到计算机上。请确保您的设备已经正确连接并且可以被识别。打开 nrfconnect 工具,并选择您要使用的设备。您可以在 nrfconnect 工具的界面上找到设备列表。原创 2022-02-14 17:14:14 · 1742 阅读 · 0 评论 -
[nrf52][SDK17] 如何使用官方BootLoader
使用keil编译完成后,直接烧录,是无法运行的,因为[mbr_nrf52_2.4.1_mbr.hex]引导文件没有烧录。写一个脚本,命名[program.bat]所需文件已经编译完毕,直接放入指定目录。BootLoader工程位置。将文件复制到工程根目录。原创 2022-01-07 10:14:34 · 953 阅读 · 0 评论 -
[nrf51][nrf52][SDK17] NRF系列怎么实现低功耗运行,带freertos能进入吗?
一、NRF51/NRF52系统低功耗表(浅睡)型号电流nrf51822/nrf514222.2uA-3uAnRF528321.9uA-2uAnRF528401.5uA-1.6uA其他2uA左右(深睡,唤醒就复位重启)型号电流nrf51822/nrf51422<1uAnRF52832300nAnRF52840400nA其他<1uA二、实测产品没有达到低功耗怎么办?测量有100uA,这个原创 2021-11-24 14:11:30 · 2803 阅读 · 1 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_rng] rng随机数生成器配置和使用
Random Number Generator (RNG)The Random Number Generator (RNG) generates true non-deterministic random numbers derived from thermal noise that are suitable for cryptographic purposes. The RNG does not require a seed value.随机数生成器(RNG)从热噪声中生成真实的非确定性随机数,适合于原创 2021-10-17 21:22:08 · 121 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_uart] UART配置和使用
用于每个UART接口线的GPIO可以从设备上的任何GPIO中选择,并且是独立配置的。这使得设备引脚具有很大的灵活性,并能有效地利用板空间和信号路由。通用异步接收/发送器提供快速,全双工,内置流控制(CTS, RTS)的异步串行通信硬件支持高达1mbps波特率。原创 2021-10-17 21:02:16 · 190 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_led] LED配置和使用
本文将介绍NRF51,如何点亮LED灯原创 2021-10-17 20:28:47 · 183 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_pwm] PWM配置和使用
NRF51系列的PWM是由TIM+PPI+GPIO组成的,下面依次介绍:Programmable Peripheral Interconnect (PPI)The Programmable Peripheral Interconnect (PPI) enables peripherals to interact autonomously with each other using tasks and events independent of the CPU. The PPI allows precis原创 2021-10-17 20:20:42 · 226 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_adc] ADC配置和使用
本文介绍ADC的使用原创 2021-10-17 20:07:40 · 182 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_exti] GPIOE配置和使用
【代码】[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_exti] GPIOE配置和使用。原创 2021-10-17 19:59:11 · 2080 阅读 · 0 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_gpio] GPIO配置和使用
建议使用初始化宏APP_GPIOTE_INIT而不是例程APP_GPIOTE_INIT,因为前者负责为宏的MAX_USERS参数中请求的每个用户分配所需的内存。由于一个应用程序可以由多个独立的模块组成,GPIOTE库允许多个组件共享GPIOTE中断,每个用户定义一组能够为用户生成事件的引脚。GPIO任务和事件(GPIOTE)库在SDK中称为“app_gpiote”,用于帮助应用程序注册一个或多个引脚的状态更改通知。成功注册后,为用户分配一个用户id,并期望用户在后续向模块发出的所有请求中记住这个标识符。原创 2021-10-17 19:49:37 · 2875 阅读 · 1 评论 -
[单片机框架][bsp层][nrf51822][nrf51422][nrf51802][bsp_key] KEY配置和使用
按键的基本原理是设置单片机IO口(PB0-PB3)为输入状态,如DDRB = 0XF0(方向寄存器,“1”为输出,“0”为输入);单片机一直检测按键端口(PB0-PB3)的状态,当端口为低电平时(即按键按下),实行相应的动作(比如控制LED灯)。原理就是这么回事,但是正真实现时,按键会有抖动,要进行按键去抖。示例参考[单片机框架][bsp层][N32G4FR][framework][key_scan] 按键扫描[单片机框架][APP_KEY] 利用软定时器实现按键扫描按键涉及到的重要知识点就是扫描和消原创 2021-10-17 19:27:48 · 99 阅读 · 0 评论 -
[nrf51][nrf52] 开发ibeacon指南
在iOS 7中引入的iBeacon是一项令人兴奋的技术,可以实现新的位置感知可能的应用程序。利用低能耗蓝牙(BLE),一种具有iBeacon技术的设备可以用来建立对象周围的区域。这允许iOS设备来决定当它进入或离开该区域时,以及估计接近信标的距离。在那里在使用iBeacon技术时,需要同时考虑硬件和软件组件吗本文将介绍这两种方法,以及建议的用法和最佳实践以确保高效的部署,带来出色的用户体验。iBeacon有三种不同的受众。你可能属于其中的一种,两种,或者可能都属于这三种类别,取决于你的角色。原创 2021-09-26 23:42:45 · 420 阅读 · 0 评论 -
[nrf51] ADC采集导致蓝牙ble服务断开
从上图得知,如果P0.26和p0.27接了外部晶振,这时候在启动ADC_AIN0和ADC_AIN1,进行通道采集,就会导致BLE断开。因为外部晶振受到干扰导致的。这个问题需要仔细看清楚硬件设计。。。原创 2021-09-23 09:17:21 · 372 阅读 · 0 评论 -
NORDIC 烧录BLE协议栈后不能用JLINK仿真bootloader问题及修改方案
问题原因:bootloader的程序区域是0X78000~0X7E000但是在bootloader程序中定义了0X0FF8与0XFFC位置处的数据,此数据与BLE协议栈冲突原创 2021-09-18 15:06:04 · 807 阅读 · 0 评论 -
[nrf51][nrf52] 移植RTX或者FreeRTOS需要注意的问题
一、 使用MDK中的cmsis_os接口,需要查看以下代码是否被启用/* Setup SVC to reset value.*/__STATIC_INLINE void SVC_Setup(void){#if (__ARM_ARCH_7A__ == 0U) /* Service Call interrupt might be configured before kernel start */ /* and when its priority is lower or原创 2021-09-16 15:54:49 · 955 阅读 · 0 评论 -
[nrf51][nrf52]设置快速广播和慢速广播
@{ *//**@} */1. BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE:有限可发现模式,不支持BR/EDR2. LE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE:一般可发现模式,不支持BR/EDR3. BR/EDR:蓝牙基本数率/增强数据率()4. 有限可发现模式广播的间隔比一般可发现模式小。原创 2021-09-15 09:20:19 · 840 阅读 · 0 评论