注册
登录
电子工程世界-论坛
返回首页
EEWORLD首页
频道
EE大学堂
下载中心
Datasheet
专题
单片机
物联网
汽车电子
嵌入式
手机/便携
模拟电子
家用电子
网络通信
电源管理
工业控制
测试测量
半导体设计/制造
安防电子
传感器
医疗电子
arthurjiang0613的个人空间
https://home.eeworld.com.cn/space-uid-598102.html
[收藏]
[复制]
[分享]
[RSS]
空间首页
动态
记录
日志
相册
主题
分享
留言板
个人资料
借用开发板
论坛
淘帖
Collection
查看新帖
最新回复
社区活动
联系管理员
我的空间
帖子
日志
收藏
好友
勋章
积分
安全验证
请完成以下验证码
日志
CC2540 BLE (三)
已有 2094 次阅读
2015-1-18 13:20
|
CC2540
七、换个硬件看看
1、使用购买的
CC2540
模块实验,修改了Debug接口,能够采用TI的CCDebug下载光盘自带的程序测试正常。
光盘例程使用
BLE-Stack
1.1修改,分别下载KebFob和HostAppTest。
2、下载
BLE-Stack
1.21中例程KebFob和HostAppTest测试连接过程也正常。
图1:测试UUID读取关键字成功,KeyFob的电量(百分比)
图2:测试Adv.Commands 读取RSSI值
3、使用
BLE-Stack
1.1例程中的虚拟键盘,测试连接失败(光盘和协议栈原始例程都测试了),用HostAppTest测试搜索到的设备地址与待绑定的地址是匹配的。
待做的事情:
1)搞清楚3连接过程中出现的问题。
2)花时间去熟悉API函数以及相关的结构体。
八、开始做硬件了
1、参考《CC2540EM_discrete_schematic.pdf 》绘制
CC2540
无线模块原理图。
1)引出P0(8pin)、P1(8pin)、P2(3pin)、电源(2pin)、USB(2pin)、RESET(1pin)共计24pin。
2)不知引脚排列是否合理,目前的排列有利于模块布线。
见附件:
CC2540
_BLE_RF.pdf
2、参考《
CC2540
_MiniDK_SCHEMATIC.pdf 》和购买套件的底板原理图绘制
CC2540
底板原理图。
1)添加低功耗加速度传感器CMA3000(用于计步等,可缺省不焊接)。
2)添加CP2102用于USB转串口,通过UART打印字符便于调试等。
3)可选USB供电、CCdebug供电、CR2032纽扣电池供电。
4)设计中多处采用0R电阻,便于二次修改。
见附件:
CC2540
Board.pdf
3、阅读BLE的宣传资料,觉得不适合在底板上添加传统的传感器,不知道是否需要添加传感器?
见附件:TI BLE @ CES.pdf
九、闲置阶段,随便玩玩
1、原理图修改、检查:
1)添加PCB天线和外置天线。
2)添加OLED显示、电源指示灯、添加拨码开关。
2、OLED选择了一款内置升压电路的型号与之前的像素一致:
1)选取内置升压的OLED省去了升压电路的设计。
2)实际经过调研科选择
TPS61040
作为升压芯片,满足需求(考虑到电感、续流二极管等物料不好采购的问题)。
3、确定底板上物料在ERP中的型号,主要的器件目前都已经确定、包括接插件。
4、调试
CC2540
的UART,调试OK能够打印信息:
1)
发现在Advertising过程中会出错(测试了多种发送情况,确认是Advertising时RF引起的)。
2)使用DMA、ISR都是同样的情况。
十、开始玩弄她吧
1、
CC2540
通信建立过程调试:
1)找到UART在advertising过程中发送数据乱码的问题,使能低功耗(PWRMGR_BATTERY)会伴随主时钟的切换,导致波特率不稳定照成的,关闭低功耗数据正常,有待进步一学习,暂时不做深入研究。
2)在调通串口的基础上实现基本的通信建立过程调试,主要是通过peripheral、central的例子,实现了PC通过串口向peripheral设备发送数据通过无线被central设备接收再通过串口传输至另一台PC。
Peripheral(Send):
01 82 fe 07 00 05 11 11 11 11 11
01 82 fe 07 00 05 22 22 22 22 22
Central(Receive):
04 FF 0D 1B 05 00 01 00 07 07 00 11 11 11 11 11
04 FF 0D 1B 05 00 01 00 07 07 00 22 22 22 22 22
以上参考:附件一、附件二。
2、Blood Pressure例程测试:
1)在新版本BLE-Stack1.21中未提供BP的Collector,只有一个BP Sensor,所以还需要花点时间建立Collector的工程。
2)在TI Wiki上找到了关于BLE-Stack1.1关于BP演示的说明,需要一个BleHealthDemo(C#开发)上位机的配合,Collector是工作在Network Process模式下。
测试效果参考:附件三。
3、开会提出的问题小结:
1)为什么要有Proflie?
A:Profile由蓝牙SIG发布,描述了不同设备使用蓝牙协议栈时的差异性和统一性。比如一个血压计,大家都按照这个BP Profile、BP Service来进行规范定义,那么一个BP收集器就能够收集不同厂家生产的BP Sensor测量的血压值等。如果没有Profile关有协议那么大家都只能闭门造车,我生产的手机带蓝牙功能,那么你使用的蓝牙耳机就必须是我生产的,因为那些数据格式、设备描述等只有我知道,所以才有音频Profile(A2DP)之后大家按照这个规范去严格定义自己的设备就可以了。
2)BT流行版本的Profile比较:
我所理解的在BT2.0、BT2.1、BT3.0这些版本能够使用传统Profile,而4.0之后会多出一部分GATT-Basic规范Profile。
这里我们需要理解的是:
BT2.0 = Core Version2.0 +EDR
BT2.1 = Core Version2.1 +EDR
BT3.0 = Core Version3.0 +HS
BT4.0 = Core Version4.0 +BLE = BR/EDR + BLE(这里和以往不同,V4.0有两个核心,
CC2540
只有BLE)
对于血压计:
V4.0 版本使用BP Profile(Blood Pressure Profile)+ BP Service
V4.0 之前版本使用HD Profile(Human Device Profile)
HD Profile(健康规范)包括 BP Profile(血压规范) + HT Profile(温度规范)+ ……
这些规范可以从官方网站查看:
https://www.bluetooth.org/Technical/Specifications/adopted.htm
以上参考:附件四、附件五。
3、附件:
附件一
附件二
附件三
附件四
附件五
十一、血压计分析
1、Blood Pressure示例程序占用资源(256K Flash + 8K RAM):
2、Blood Pressure Profile规定的数据格式:
3、Profile 定义了数据格式、过程、服务的UUID等:
以上这些会在协议属性表中体现,而这个属性表会通过相关API将他作为参数传给协议栈。
static gattAttribute_t bloodPressureAttrTbl[] =
{
// BloodPressure Service
{
{ ATT_BT_UUID_SIZE, primaryServiceUUID }, /* type */
GATT_PERMIT_READ, /* permissions */
0, /* handle */
(uint8 *)&bloodPressureService /* pValue */
},
// 1. Characteristic Declaration
{
{ ATT_BT_UUID_SIZE, characterUUID },
GATT_PERMIT_READ,
0,
&bloodPressureTempProps
},
// 2. Characteristic Value
{
{ ATT_BT_UUID_SIZE, bloodPressureTempUUID },
0, //return READ_NOT_PERMITTED
0,
&bloodPressureTemp
},
// 3.Characteristic Configuration
{
{ ATT_BT_UUID_SIZE, clientCharCfgUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
(uint8 *)&bloodPressureMeasConfig
},
// 4.Presentation Format
{
{ ATT_BT_UUID_SIZE, charFormatUUID },
GATT_PERMIT_READ,
0,
(uint8 *)&bloodPressureTempFormat
},
//////////////////////////////////////////////
// IMMEDIATE MEASUREMENT
//////////////////////////////////////////////
// 5.Characteristic Declaration
{
{ ATT_BT_UUID_SIZE, characterUUID },
GATT_PERMIT_READ,
0,
&bloodPressureImeasProps
},
// 6.Characteristic Value
{
{ ATT_BT_UUID_SIZE, bloodPressureImeasUUID },
0, //return READ_NOT_PERMITTED
0,
&bloodPressureImeas
},
// 7.Characteristic Configuration
{
{ ATT_BT_UUID_SIZE, clientCharCfgUUID },
GATT_PERMIT_READ | GATT_PERMIT_WRITE,
0,
(uint8 *)&bloodPressureIMeasConfig
},
//////////////////////////////////////////////
// FEATURE
//////////////////////////////////////////////
// 8.Characteristic Declaration
{
{ ATT_BT_UUID_SIZE, characterUUID },
GATT_PERMIT_READ,
0,
&bpFeatureProps
},
// 9.Characteristic Value
{
{ ATT_BT_UUID_SIZE, bpFeatureUUID },
GATT_PERMIT_READ,
0,
(uint8 *)&bpFeature
},
};
收藏
邀请
举报
全部
作者的其他最新日志
•
CC2540 BLE(二)
•
CC2540 BLE (一)
评论 (
0
个评论)
涂鸦板
您需要登录后才可以评论
登录
|
注册
评论
arthurjiang0613
加为好友
给我留言
打个招呼
发送消息
热门文章
头条资讯
发明时代,以创新和责任驱动未来
Win-Win!Marvell与Bloombase就LiquidSecurity网络硬件安全模块达成合作
被神话的Linux, 一文带你看清Linux在多核可扩展性设计上的不足
Littelfuse Announces Product Line Acquisition/ Littelfuse最新产品线收购
湖北电影制片厂常凯全家染病去世,同学的文字泪目涟涟
CES2018瑞芯微发布首款Android Things模组Turnkey
新增数据手册
STM32L152R6T6TR
ED37M42R6GTZ
SMCJ6.5C/51-E3
CWR11MH685KPC/PR
CL32C121GJCD
MS9592-065
热搜器件
7443320220
465K
NOSC686M002S0200
WI-M-10-25-4
315000010338
RK73HW3ARTTE4423D
推荐下载
DHxsct
行车记录仪原理图
MK_模拟电子线路 童诗白 773页 11.0M.pdf
基于nanoPAN5375的地下停车场语音导航系统
UPTECH Hybrid TV HD 2 雙頻電視棒
飞秒光纤激光器实现100fs脉宽
推荐关注
【资料分享】常用于PKE无钥匙进入系统里的高度集成的低功耗SOC芯片:Si24R05B
刹车步进电机由什么构成?
晶振在电路中的作用
深度自然匿名化:隐私保护与视觉完整性并存的未来!
谐波减速机概述知识
一体式步进电机是属于什么类型的电机?