nrf51822专题

NRF51822 小黄车智能锁 逆向工程

笔者在夜跑时发现有人将拆下的小黄车智能锁丢弃在花园角落,于是萌生了拆解的想法。 拆开外壳后发现MCU 是NRF51822 ,并且预留了Jlink 调试接口,更萌生了逆向这个电路板的想法 下面是 各个智能锁厂家提供的方案: 摩拜单车:STM32F1+GSM+GPS 使用芯片 STM32F401 + NRF51802(BLE)+TD1030 泰斗定位芯片+BQ25895(充电管理)+C3Hx(

低功耗蓝牙4.0BLE编程-nrf51822开发(2)

首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs\arm。     打开工程前需要下载蓝牙协议栈S110 nRF51822 SoftDevice(s110_nrf51822_6.0.0_softdevice.hex)到板子中,这个手册上有说明。     首

低功耗蓝牙4.0BLE编程-nrf51822开发(1)

为了省钱,也为了提高手动能力,只买了块核心板,仿真器用的是旧的jinkv7,自己搭扩展板,DIY就这样开始了。     买这块之前做了些调查,最终选定了nrf51822,功耗低,性能强,开发难度小,虽然比TI的贵一点,但cortex-m0毕竟不错,带256K flash,16K Ram,可以做很多应用开发。 (1)2.4GHZ多协议无线射频 (2)32位ARM Cortex

PHY6202蓝牙4.0唯一可组网的蓝牙4.0芯片可替代NRf51822/51802

PHY6202是一颗蓝牙4.0的芯片。也是国内唯一一颗蓝牙4.0支持组网的IC,可以用蓝牙4.0的硬件,软件用5.0的,就可以达到组网的功能。PHY6202蓝牙芯片是一款具有强大性能,高灵活性的超低功耗芯片。同时支持低功耗蓝牙、蓝牙5.0、蓝牙MESH、ZigBee、谷歌Thread、Mist等多种通信协议,面向智能终端周边设备、智能语音、智能家居、智能制造、智能交通等应用。 PHY620

低功耗蓝牙4.0BLE编程- nrf51822开发板开发(2)

首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\Nordic\nrf51822\Board\pca10001\s110\ble_app_hrs\arm。     打开工程前需要下载蓝牙协议栈S110 nRF51822 SoftDevice(s110_nrf51822_6.0.0_softdevice.hex)到板子中,这个手册上有说明。     首先看的是

NRF51822实例代码说明

说在前面:此说明用于nrf51822的主从机的实例代码解析,通过讲解主从机的双向通讯来说明如何添加自己的服务及特征。此说明为个人理解,可能与原意不同。 目录 主机模块... 3 从main说起... 3 app_trace_init() 3 ble_stack_init(); 4 client_handling_init() 6 device_m

画NRF51822 PCB错误总结

周末把NRF51822的PCB画完了,今天周一,领导审核后,挑了不少错误,主要归纳为以下几点: 1 主芯片nRF51822 主芯片NRF51822pcb布局布线中,肚子那里什么也没画,没有覆铜,这是不行的,这个芯片肚子那里得共地,覆铜就行,至于为什么,也不太清楚,后续可以查查; 2 地线和电源线 地线和电源线太细,应该加粗;太细了阻抗就高,抗干扰能力就差; 3 加一个蓝牙天线座子,防止微

nrf51822蓝牙笔记之GAP(通用属性配置文件)解读

该说明书定义了通用属性配置文件,该文件描述了一个使用属性协议的 一个服务框架,该服务框架用来在一对设备间发现服务,读写特征值。 1 介绍 1.1 作用域 通用属性配置文件定义了一个使用属性协议的服务框架,该框架定义了一个服务的流程、格式和它的特性.流程的定义包括发现,读写,通知和指示特性. 2 配置文件概观 通用属性配置文件被应用和其他的配置文件调用,所以客户端才能通过服务传递信息.每个

nrf51822开发入门2------jflash擦除与烧录出厂协议栈及利用开发库来点亮led灯

前言,本人本想快速入门nrf51822,因此在网上搜索,发现有个青风教学,于是刻意购买了他卖的开发板来学习, 但是由于视频比较久远,与其对比现在的官方例程,现在的sdk其实是比较方便的,也许不需要他那样一步一步学习,我们直接借用它的官方例程就好了。也许有些人喜欢深入浅出会觉得看比较基础的好,不过我个人认为当年我学stm32cube的时候,我stm32的标准库都没学多少,现在用stm32cub

nRF51822 power on reset fail! amazing!

前言:用jlink调试代码观察现象与拔掉jlink,对系统重新上电观察到的现象理论是一样的才对,然而重新上电后,感觉单片机根本就不在运行(也就是单片机根本就没复位),于是就去验证单片机有没有运行(在mian函数入口处点亮一盏灯来观察有没有复位). 今天遇到了一个奇葩的问题,单片机nRF51822上电复位失败! 首先想到的是是不是工程设置的问题?一看,没错,有设置。但为什么灯就是没被点亮呢?(

nRF51822外设时钟之串口时钟

在使用串口配置的时候吗,发现前辈们并没有像STM32那样配置串口和GPIO(不知道串口的时钟大小),甚是奇怪,找到参考手册关于时钟管理的,发现并没有关于串口时钟的配置要求,然后就翻到数据手册,OMG,终于真身现形了,原来串口外设要使用HFCLK,即高频时钟,即外接的高频晶振时钟,而51822的外接高频晶振时钟只能是16M或者32M,这里本人使用16M,那么显然UART使用的16M的时钟源!不信,请

NRF51822蓝牙服务(8)——动态密码配对

前言 上篇我们学习了使用静态密码的方式在连接时进行密钥的验证,那么我要使用动态密码,进一步提高安全性呢?这里我们就在上篇代码的基础上尝试使用动态密码的方式完成蓝牙配对。 实验分析 由于,静态密码的时候已经把基本步骤详细讲述,这里就不再过多讲述。 由于开发板没有显示屏,所以这里采用串口打印的方式获取动态密码。 static void gap_params_init(void){uint3

NRF51822蓝牙服务(7)——静态密码配对

前言 有时候我们希望能够在连接的时候进行密钥的验证,以保障连接的安全。为了保证低功耗蓝牙的绝大多数安全特征,必须完成两个事情。首先是设备必须互相配对;其次,设备必须分配用于加密、保障隐私并对消息进行验证的密钥。这里我们尝试使用静态密码的方式完成蓝牙配对。 实验分析 这里,我们仍然使用前面的串口实验例程。 配对连接过程: 手机连接上之后立刻调用安全请求API(sd_ble_gap_auth