打印
[资料分享]

CC2540开发入门(转载)

[复制链接]
3158|52
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coshi|  楼主 | 2019-6-21 12:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
coshi|  楼主 | 2019-6-21 12:56 | 只看该作者
2 开发需求

l 开发板(CC2540主板)(硬件)
l CC Debugger(硬件),CC系列芯片的下载器,可用于同步调试和下载固件
l smartrf_studio(软件),安装在WINDOWS,用于下载固件或调试射频。
l BLE-CC254x_v1.4.0(代码),CC2540/CC2541的代码开发包,里面有各种应用工程。
l IAR Embedded Workbench for 8051 version 8.30.2(EW8051-8302-Autorun.exe)(软件),代码开发工具,可用于编译、调试及下载。注意工具版本,版本不对打不开BLE-CC254x_v1.4.0,比如BLE-CC254x_v1.4.1就要示高一点的版本,但太高也不行,这里尽量使用本文件所提到的版本。


使用特权

评论回复
板凳
coshi|  楼主 | 2019-6-21 12:57 | 只看该作者
3 下载测试

1)安装上面提到的软件后,开始进行主板测试。
2)先将CC Debugger的USB线连接电脑,让它自动安装完驱动,安装成功后,在设备管理器里会有如下图标:

3)打开SmartRF Studio,如果CC Debugger连接正常,在界面下方会有如下提示:

No chip表示没连接CC2540主板。
4)将CC2540主板接上CC Debugger,然后上电,如果CC Debugger的指示灯没有由红变绿,则按一下CC Ddebugger的复位键,如果指示灯还不变绿,则需要检查一下CC2540主板。CC Debugger指示灯变绿,表示与主板正常。
5)CC Debugger连上CC2540主板后,在SmartRF Studio界面下方会有如下提示:

6) 点击SmartRF Studio右上角的工具图标: ,选择Flash Programmer,其中两个选择说明一下:Program CCxxxx Soc or MSP430 是用于烧写CC2540主板的,而Program Evaluation Board是用于升级CC Debugger,所以除非CC Debugger出问题了需要升级固件(固件放在:C:\Program Files (x86)\Texas Instruments\SmartRF Tools\Firmware\CC Debugger\cebal_fw_srf05dbg.hex)外,一般选择Program CCxxxx Soc or MSP430选项来烧写主板。
7)选择Program CCxxxx Soc or MSP430选项,然后点击Flash image右边按钮来选择将要烧写的固件,选择“BLE-CC254x_v1.4.0\Projects\ble\ SimpleBLEPeripheral\CC2540DB\CC2540DK-MINI Keyfob\Exe\ SimpleBLEPeripheral.hex”,其他选项保持默认,然后点 Perform actions 按钮,进行烧写。
8)烧写成功表示硬件功能正常,不成功则需要检查CC2540主板。


使用特权

评论回复
地板
coshi|  楼主 | 2019-6-21 12:57 | 只看该作者

4 CC Debugger连接接口说明

1 GND接CC2540主板的地
2 Target Voltage Sense接CC2540主板的VCC
3 DC接CC2540主板的P2.2
4 DD接CC2540主板的P2.1
7 RESETn接CC2540主板的RESET Pin


使用特权

评论回复
5
coshi|  楼主 | 2019-6-21 12:57 | 只看该作者
5 编译调试代码

1)打开IAR Embedded Workbench,点击菜单“Project”,选择“Add Existing Project..”,打开“BLE-CC254x_v1.4.0\Projects\ble\SimpleBLEPeripheral_ibeacon\CC2540DB/ SimpleBLEPeripheral.ewp”。
2)点击菜单“Project”,选择“Options”,将General Options项里,将Number of virtual改为8,否则在编译时会出现下面的错误:

Error[e16]: Segment ISTACK (size: 0xc0 align: 0) is too long for segment definition. At least 0xd more bytes needed. The problem occurred while processing the segment placement command  
"-Z(IDATA)ISTACK+_IDATA_STACK_SIZE#08-_IDATA_END", where at the moment of placement the available memory ranges were "IDATA:4d-ff"
   Reserved ranges relevant to this placement:

3)点击工具栏中的“编译”按钮,对工程进行编译
4)编译成功后,点击工具栏的“Download and Debug”按钮,进行固件下载,下载后在工具栏会出现调试工具,点击“Go”图标,就开始跑代码。由于可以在线调试,基本上不需要增加串口打印了。
5)BLE-CC254x_v1.4.0里的工程,主要是针对TI的参考板的,在代码里可以看到CC2540_MINIDK等DEFINE,如果是自制的板,则需要对代码作相应的改动。CC2540_MINIDK等DEFINE是在这里添加或删除:先选择IAR Embedded Workbench左边工程栏里对应的工程名,再点击菜单栏“Project”,选择“Options”,在C/C++ Compiler里,找到Preprocessor项,在Defined symbols框里对相应的DEFINE进行增删。


使用特权

评论回复
6
coshi|  楼主 | 2019-6-21 14:07 | 只看该作者
6 Android APK开发

Android SDK包里有个例子android-19\connectivity\bluetooth\BluetoothLeGatt可参考进行开发。用这个APK就可以扫描到CC2540主板,并显示出CC2540主板里的服务及特征。

使用特权

评论回复
7
coshi|  楼主 | 2019-6-21 14:08 | 只看该作者

7 GATT简要描述

GATT是Generic ATTribute的缩写,称为通用属性协议。属性的特点就是对某件东西的描述。GATT由服务(Service)、特征(Characteristicc)和特点(Properties)组成,如下图:


使用特权

评论回复
8
coshi|  楼主 | 2019-6-21 14:08 | 只看该作者
服务、特征和特点的关系可用如下图比喻:

使用特权

评论回复
9
coshi|  楼主 | 2019-6-21 14:09 | 只看该作者
实际上,在代码里是用结构数组来体现的,如下结构体:

typedef struct attAttribute_t
{
  gattAttrType_t type; //!< Attribute type (2 or 16 octet UUIDs)
  uint8 permissions;   //!< Attribute permissions
  uint16 handle;       //!< Attribute handle - assigned internally by attribute server
  uint8* const pValue; //!< Attribute value - encoding of the octet array is defined in
                       //!< the applicable profile. The maximum length of an attribute
                       //!< value shall be 512 octets.
} gattAttribute_t;

如上,type表明类型是服务、特征还是特点,permissions是访问权限,handle是用内部定位用的,pValue是字节数组,用于数据交换,如主板发给手机还是手机发给主板的数据都是在这里。
GATT通讯实际交换的就是用上面的结构定义的数组的内容。


使用特权

评论回复
10
dirtwillfly| | 2019-6-25 22:55 | 只看该作者
感谢精彩分享

使用特权

评论回复
11
51xlf| | 2019-6-27 16:31 | 只看该作者
CC2540是一个真正的系统单晶片解决方案  

使用特权

评论回复
12
i1mcu| | 2019-6-27 16:32 | 只看该作者
真正具备成本效益的低功耗无线 MCU  

使用特权

评论回复
13
pmp| | 2019-6-27 16:32 | 只看该作者
这个的效率怎么样   

使用特权

评论回复
14
mmbs| | 2019-6-27 16:33 | 只看该作者
TI 的开发套件吗?        

使用特权

评论回复
15
1988020566| | 2019-6-27 16:33 | 只看该作者
cc2540本身是TI的一款低功耗蓝牙芯片  

使用特权

评论回复
16
lzbf| | 2019-6-27 16:34 | 只看该作者
CC2540是用于蓝牙   

使用特权

评论回复
17
houjiakai| | 2019-6-27 16:34 | 只看该作者
不用蓝牙或zigbee的协议是可以通用的  

使用特权

评论回复
18
houjiakai| | 2019-6-27 16:34 | 只看该作者
CC2540 开发板 有吗   

使用特权

评论回复
19
youtome| | 2019-6-27 16:35 | 只看该作者
CC2540只支持低功耗蓝牙4.0——BLE  

使用特权

评论回复
20
cemaj| | 2019-6-27 16:35 | 只看该作者
超低消耗功率的真正系统单晶片   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

3301

帖子

4

粉丝