
低功耗蓝牙
路人 假
这个作者很懒,什么都没留下…
展开
-
nRFgoStudio安装后不能识别nrf52832
目录背景问题原因:解决方法背景由于使用nrf52832做开发,翻墙下载了最新的sdk16和nrfgo studio,安装完nRFgo Studio后,发现连接开发板没有设备出现,但是iar却可以烧录程序问题原因:由于本电脑装有jlink驱动4.9版本,因此安装过程中直接跳过了jlink驱动的安装(v5.12),因此版本不对,导致不能识别芯片解决方法既然知道jlink驱动问题,那直接重装nRFgo Studio,使用repair模式,发现并不会重装jlink先卸载nRFgo Studi原创 2020-05-29 23:24:05 · 2105 阅读 · 0 评论 -
cc2640看门狗
cc2640的协议栈使用的是ti的rtos,稳定性还是很不错的,而且公司做得产品电池是可拆卸的,所以一直没有在项目中使用过看门狗,但是使用的人多了以后,有几个反应程序会跑飞的用户,当然这是极少数情况,所以很难复现和排除原因。于是想到了添加看门狗。 ti关于看门狗这块的资料还是蛮少的,所以添加过程中有很多疑问,最终经过自己研究实验,总结了一些经验,由于没办法模拟之前跑飞的现象,所原创 2016-03-02 12:02:49 · 4734 阅读 · 4 评论 -
nrf52832 之 gpio配置方法
gpio操作是单片机最基本的操作,也是最常用的、例如配置gpio控制led灯,检测按键输入等功能。当然手册里面有详细的gpio的配置方法,如果想写裸机程序,可以去查看手册,如果是在sdk上添加gpio功能,那么就很简单了,nordic提供了gpio操作的api接口,我们只需要会调用即可。一、api接口所在文件,只需包含此头文件#include "nrf_gpio.h"原创 2016-11-06 00:03:41 · 16010 阅读 · 0 评论 -
cc2640 - snv保存配置信息
TI cc2541 cc2640 从flash里面画出来2个page 4k的空间snv区域,其中部分用于协议栈绑定管理功能,给用户留出来部分可用空间,一下以cc2640为例简单说明一下:1、在bcomdef.h中有如下定义:// Customer NV Items - Range 0x80 - 0x8F - This must match the number of B原创 2016-10-18 15:27:32 · 2672 阅读 · 0 评论 -
nrf52832 - freertos例程
nrf52832的最新sdk(nRF5_SDK_12.1.0)给出了freertos的例程,使用操作系统可以开发出复杂的系统,同时可以降低开发的难度。注意:该版本sdk需要配合s132_nrf52_3.0.0的softdevice使用1、利用该demo做测试,带开了自带的rtt调试信息功能,然后新建了自己的task,发现程序运行不起来,然后看freertos配置文件Free原创 2016-11-06 20:02:46 · 12281 阅读 · 3 评论 -
cc2640到cc2640R2F
前言在蓝牙5协议发布之后,nordic率先推出了支持ble5.0协议的芯片nrf52840,配置之强大对于用了多年ti蓝牙芯片的我来说简直令人发指,256kram和1M flash的搭配完虐cc2640的20k+128k的组合,目前项目使用cc2640开发,由于外设很多,遭遇了flash空间不够的尴尬。TI于近期推出了支持ble5.0的芯片cc2640R2F,虽然还是128k的flash,但是ble原创 2017-01-09 11:43:42 · 10167 阅读 · 9 评论 -
cc2640官方demo更新连接参数service-CCservice
背景cc2640项目需要添加oad功能,为了降低功耗,默认连接参数设置的比较大,这将导致oad时间过长,此时需要在oad之前先更新一组较小的连接参数,提高oad的速度。更新连接参数的api/******************************************************************** * @fn GAPRole_SendUpdatePar原创 2017-02-06 14:28:44 · 1392 阅读 · 0 评论 -
nrf52832 - HID
1、实验环境硬件平台:nordic Nrf2832官方开发板sdk版本:nRF5_SDK_12.1.0_0d23e2a实验例程:ble_app_hids_keyboard2、实现现象直接运行官方demo,手机或者pc可扫描到hid设备并且可以成功连接,通过按键实现hello的发送,但是取消配对后,再次连接发现不能连接成功。重启开发板也不行,重新烧录应用文件也不行,只有全部擦除flash,重新烧录so原创 2017-04-15 23:41:03 · 7791 阅读 · 1 评论 -
da14580-SUOTA 空中升级
一、实验目的:测试da14580的空中升级功能,一般项目都需要具备ota功能二、实验环境:硬件环境:da14580开发板,带flash版本sdk版本:5.0.4编译工具:keil5 请支持正版测试demo:DA1458x_SMARTTAG_5.20.2测试手机:iphone5使用工具:hex2bin.exe mkimage.exe三、实验步骤:1、首先编译生成bootloadersecon原创 2017-05-09 19:36:50 · 3412 阅读 · 4 评论 -
cc254x、cc2640微信airsync协议心得
一、背景:基于TI cc254x、cc2640的airsync协议添加二、说明:本文意在讲解airsync协议添加的方法,不做具体代码的详细展示三、测试工具微信官方提供了airsyncdebugger,仅支持安卓手机,用于测试ble设备对airsync协议的功能支持,通过了airsync的测试,则可说明airsync协议添加完成四、airsync添加思路1、熟悉airsync协议,微信硬件平台官网有原创 2017-05-03 22:25:33 · 1436 阅读 · 0 评论 -
cc2541- I/O 简介
前言: CC2541有21个I/O引脚,这些引脚可以作为通用I/O引脚,同时通过独立编程还可以作为外设I/O引脚用作ADC、串口、定时器等功能简介:至于哪些引脚可以复用为特殊功能,如adc、uart、定时器等,可参考下表:总结:本文不讲解具体使用方法,具体方法需要参考ti官方文档已经官方demo原创 2017-05-04 22:40:50 · 1664 阅读 · 0 评论 -
cc254x cc2640微信接入airsync-广播数据
一、实验目的:修改ble广播数据以符合airsync协议二、实验环境:硬件平台:cc2540、cc2541、cc2640协议栈版本:个版本协议栈广播数据一致编译器:iarairsync校验方式 :mac地址校验测试工具:airsyncdebugger三、广播数据协议格式:1、协议规定广播数据必须以6位mac地址结束,倒数第七八位为厂商信息,可填0;广播service必须包含微信service2、具体原创 2017-05-04 23:23:39 · 831 阅读 · 0 评论 -
ibeacon广播数据简析
一、实验目的:分析基于ble的ibeacon协议广播数据含义二、实验环境:本文涉及的广播数据以TI ble芯片cc2xxx为例分析三、广播数据:static uint8 iBeacon_advertData[] ={ //ble相关内容,与ibeacon无直接关系 // discoverable mode (advertises indefinitely) 0x02, // len原创 2017-05-06 18:09:23 · 6336 阅读 · 0 评论 -
ble4 连接参数
一、背景:ble4的低功耗是依赖于广播间隔和连接间隔的,因此合适的连接间隔可以保证连接稳定的情况下降低功耗二、连接参数限制连接参数是经过主从机双方协定后使能的一组参数,因此作为从机的设备,可以申请一组连接参数,通常情况下,作为主机的手机,收到请求后,会判断该组参数是否合法,然后根据判断情况使能一组合理的参数,其中ios手机对连接参数的要求比较严格,也就是符合ios手机的连接参数,就一定符合安卓的要求原创 2017-05-16 16:40:11 · 1247 阅读 · 0 评论 -
nrf52832 之 timer
nrf52832 有五个定时器,timer0--timer4 。因为SDK已经使用了timer0,所以如果使用了SDK,就不能再使用timer0,只能使用timer1--timer4。开发环境:在ble_app_hrs demo上添加定时器任务 参考timer这个demo。本例使用timer1,并且修改为32bit模式添加步骤:原创 2016-07-07 00:48:38 · 11543 阅读 · 0 评论 -
cc debugger 烧写固件
http://wenku.baidu.com/link?url=GJ9yIeubnEgoUfDDsx105fks2UlDpaE7Q2nGpCB6MG80YBLqBRhXdUlwpP9kqnhtjZyPBY7xFzJTwEn42wrFg59mrfKkhvDHWpqANVZ9df3可参考次教程,固件路径D:\Program Files\Texas Instruments\SmartRF T原创 2016-06-21 14:10:49 · 2533 阅读 · 0 评论 -
nrf52 sdk第一次编译出错的解决方法
第一次用nordic的蓝牙芯片,直接从官网download的sdk解压后编译出现几十个错误,缺少很多定义,nordic的资料实在是少,百度google基本没有用,于是在nordic论坛里面找到了解决方法:替换两个文件即可。文件路径 nRF52_SDK_0.9.2_dbc28c9\components\device下的nrf52_bitfields.h nrf52.h,至于说用什么替换,那就得原创 2016-01-31 00:33:16 · 2503 阅读 · 0 评论 -
nrf52官方串口例程
nrf52开发板拿到手快半年了,之前只跑过一次官方例程,然后就放一边了,现在准备学习一下,首先从串口开始。串口例程有两个,这里直接使用ble_app_uart这个例程,这是基于ble的例程,可以通过ble主机和开发版进行通讯,收发数据通过串口实现。看了初始化函数,知道了默认波特率是38400,(可以通过修改宏改变波特率),然后将例程编译烧录,例程跑起来了,但是串口助手却没有输出任何原创 2016-03-05 21:45:32 · 8871 阅读 · 0 评论 -
cc2640调试经验之 串口添加
由于项目需要,将cc2541平台移植到cc2640上,需要特别提醒的是,cc2640有三种封装,协议栈默认使用的是7*7的封装,因此如果换成其它封装需要对工程配置进行修改。一、串口驱动添加: 串口对于调试来说,作用很大,因此第一步先调通串口,方便后期的调试工作。下面以SimpleBLECentral工程为例添加: 1、在文件 C:\ti\tirtos原创 2015-04-10 10:31:43 · 12170 阅读 · 9 评论 -
吐槽TI的失败设计—cc2640的oad
说到ble芯片,初学者最希望从ti学起,因为ti的资料最多最开放,尤其是cc2541,,算是一款很成功的ble芯片,至于说到第二代的cc2640,出来也已经有一年半了,我是从量产之前就拿到样片了,所以算是接触的比较早的,当然由于资料匮乏,也没有前车之鉴,所以遇到了很多困难,但是经过努力研究,公司产品去年十月就量产了,在这里吐槽一下cc2640的失败设计。 cc2541有12原创 2016-04-19 23:28:23 · 6373 阅读 · 7 评论 -
cc2541 cc2640 接入微信AirSync协议
手头一款cc2640的穿戴设备要接入微信硬件平台,研究了几天,把一些心得记录一下,首先微信官方是有demo参考的,但是只有nordic的nrf51的代码和文档,至于TI的暂时还没有找到,论坛里面有个cc2541的demo,不过核心代码都是封装成库提供的,没有什么利用价值,如果是cc2541的开发,前期可以直接使用调试,cc2640就只能呵呵了。没有demo只能自己动手调试了,动手之前先下载安装微信原创 2015-12-22 13:25:37 · 4801 阅读 · 0 评论 -
cc254x的外部32.768k晶振
一般的项目中cc254x的硬件上面会接两个晶振,一个是系统运行需要的32Mhz的晶振,这个不用多说,关于32.768khz的外部晶振,需要特别说明一下,这个晶振根据自己的需求是可有可无的,阅读文档会发现,这颗32k的晶振是给低功耗使用的,也就是如果系统需要设计低功耗,则必须接上32.768khz的外部晶振,否则使用32kHz内部RC振荡器,这就会导致计时不准确,该醒的时候醒不过来,所以就会出现连接原创 2016-06-01 23:18:45 · 3105 阅读 · 1 评论 -
ble4.0设置中文名
今天在ble群里看到群友讨论如何实现ble设备中文名显示,然后按照群友的方法试验成功,分享一下:根据群友给出方案是将中文转成对应的utf-8格式,然后写到device name数组即可,我测试了站长工具里面的中文转utf-8转化是不对的,而通过url编码则可得对对应的十六进制数据。原创 2016-06-02 20:43:45 · 1695 阅读 · 2 评论 -
IAR调试报错Warning : Possible IDATA stack overflow detected的可能原因
在使用IAR开发cc2540的时候,发现板子里面只要设置几个io为pwm后,用IAR debug的时候就会出错Warning: Possible IDATA stack overflow detected. To see the instruction t…… ,根据字面意思是IDATA溢出,但是修改idata大小,以及调试都发现并没有真正溢出,于是查找其它资料,终于得到几点可能的原因,我的原创 2016-06-23 00:11:18 · 8544 阅读 · 3 评论 -
cc2541之pwm笔记
cc2541有四路timer,其中timer2为rtos使用,所以我们可以使用timer1、timer3、timer4。 其中timer1、timer2是16位的,timer3、timer4是8位的。timer1 有5个通道,其中通道0输出比较功能较少,使用时需要特别注意。 timer3、timer4各拥有两个通道。 timer对应的io map如原创 2016-05-26 13:02:10 · 4780 阅读 · 2 评论 -
cc254x之修改协议栈按键io
协议栈demo中有按键的处理流程,所以项目中可以完全利用协议栈的流程实现自己的按键操作,如果自己硬件的io和协议栈对应开发板的io不一致,则需要修改按键io定义的文件。 下面以协议栈1.4为例,实现按键2 从p0.1到p1.2的修改: 首先找到按键定义的文件Hal_key.c 一定要选对自己芯片对应的文件,详细修改过程如下原创 2016-06-04 21:32:33 · 1591 阅读 · 0 评论 -
nrf52-添加定时任务
nrf52832学习 添加自己的定时任务, 由于nrf52的协议栈是基于事件触发的,所以定时器使用的是外部32,.768k的晶振,因为进入睡眠模式后,32MHz晶振会停止工作,此时只有32.768khz的晶振在工作,所以定时任务使用此晶振分频。先看demo中的main函数入口:int main(void){ uint32_t err_code; b原创 2016-06-26 13:21:24 · 5322 阅读 · 1 评论 -
nrf52 - 快速广播与慢速广播
许多应用都对功耗有严格要求,而且会要求一直处于广播模式,这时就要考虑降低广播频率来降低功耗,此时可以称为慢速广播,但是广播频率越快越利于手机连接,所以为了快速发现和连接,往往需要快速广播,一般的处理方式是快速广播30s然后进入慢速广播。nordic考虑到了这种应用场景,所以用nordic的sdk很容易实现上述方案:首先介绍一下广播参数的结构体:typedef struct{原创 2016-06-26 18:42:30 · 9292 阅读 · 0 评论 -
nrf52832之添加自己的service
nrf52中添加自己的servece,不用自己全部手写添加,可以从demo中复制修改为自己需要的service,以下已心率demo为例,修改为自己的service,其中包含两个character,char1属性为通知(长度通知时可以设置,灵活变换长度),char2为可读。一、添加ble_allen.c(根据ble_hrs.c修改而来)二、添加ble_allen.h(根据ble_hr原创 2016-06-30 12:16:42 · 11155 阅读 · 1 评论 -
nrf52832 之 广播信道设置
ble4.0共有3个广播信道(37/38/39)和37个数据信道,3个广播信道分散在ISM频段的不同区域,如果他们集中在某个频段,则可能因为这个频段的深度衰弱而造成所有广播无法进行。因 此,各个广播信道直接至少相差24mhz。 一般的应用为了稳定性都会使用默认设置,三个默认广播信道全部打开,但是在研发过程中,可能会有抓包分析的场景,此时如果三个信道全部打开,则抓包难度会提升,因原创 2016-07-04 23:59:34 · 8078 阅读 · 2 评论 -
cc2640调试经验之 I2C驱动添加
之前项目中用到过i2c驱动,当时查阅资料之后调通了i2c,后来换了公司,时隔一年又需要使用cc2640的i2c通讯,由于记性太差,之前的工作全忘了,所以只有重头再来,为了以后使用方便,把添加方法分享出来,也方便自己以后查看。以下操作以keyfob为例:一、board.c中添加如下定义(根据自己板子实际情况选择io):/* I2C Board */#define Board_I2原创 2016-01-27 14:20:08 · 7457 阅读 · 5 评论