- 本课程为精品课,您可以登录eeworld继续观看:
- 软件开发从入门到专家
- 登录
- 课程目录
- 相关资源
- 课程笔记
大家好我是德州仪器无线连接技术部门的现场应用工程师Barbara Wu
这里我要给大家介绍德州仪器新一代的低功耗蓝牙芯片
软件开发的相关知识
之前我们介绍过芯片架构工作原理
以及软件开发包
这一讲我们深入来了解一下软件开发
看看如何从快速的开发入门
到软件专家
软件有存放于ROM的代码
和基于flash的代码两部分组成
在cc2640上ROM里面存放TI RTOS内核
和部分的BLE协议栈
在cc2640R2F上更多的BLE协议栈被放进了ROM
这些放在ROM资源是不需要占用flash的空间的
因此cc2640R2F提供了更大的flash空间
供上层应用程序使用
在flash部分上层应用程序
BLE的profile TI RTOS
都是以源码的方式提供
BLE的protocol协议栈
以库的方式提供通过API函数接口访问
可以使用CCS或IAR 作为编译器开发来调试软件
在编译的时候 应用程序和BLE协议栈
是分开编译的 这样的好处是在无限升级软件的时候
可以根据需要选择只升级应用程序的部分
或者同时升级应用程序和协议栈
从而提高了无限升级操作的效率
降低整个应用系统的使用功耗
协议栈和上层应用程序都基于TI RTOS开发
TI RTOS是一个实时操作系统
支持抢占式的多线程
只有确定性的调度机制
使用专门为低功耗而定制的内核
可以零延时配置和响应中断
包括各种定时器 软件层的时钟
精度可以达到微秒级别
同时TI RTOS还集成了非常多的软件功能模块
比如用于不同任务之间调度的信号量
外设接口的驱动程序
以及对电源功耗管理的模块
上层应用程序可以直接调用这些模块
相对应的API函数接口
从而简单快速的完成对应的操作
而不需要另外再重新编程
特别是功耗管理模块
已经在BLE协议栈中集成
上层应用程序只需要完成自己的应用需求开发
系统会自动根据软件应用情况
控制整个设备运行在能够满足应用的最低功耗状态
在软件开发方面
TI提供了非常丰富的例程以及多样的上手方式
从左到右不同的开发方式
涵盖了从简单版到进阶版的所有阶段
首先最简单的CCS Cloud加example的方式
不需要预先安装任何软件开发包
只需要一块launchpad和可以连接到互联网的浏览器
在浏览器中打开云服务器中的内存
可以再现编译例程或者烧录你的launchpad
对于需要的例程 也可以直接从源服务器下载到本地
进阶版的SimpleLink Academy
是一个学习例程的非常好的工具
在这个工具中基于几个典型的例程
分别完成不同的功能任务
工具列出了完成不同的功能需要做的代码的修改
并解释为什么需要做这样的修改
以及不同语句的作用
最后还有互动问答帮助理解
在整个step by step的教学过程中
用户可以学习到TI RTOS
自定义BLE的服务开发
Ble网路处理器 sensor controller等等非常有用的BLE相关知识
如果简单版的CCS Cloud
和进阶版的SimpleLink Academy
都满足不了你 你可以选择最难模式
直接使用BLE协议栈开发包和GitHub
协议栈开发包包含了对SIG定义好的
一些通用的BLE profile的使用实例
同时也包含了很多TI自定义BLE profile的例程
可以很容易的基于这些例程修改
或者搭建自己的BLE设备应用程序
同时github上TI还提供了一些不断添加在开发包上
包含新的功能的例程
比如组成设备的一体化
网络处理器的应用
从窗口打印应用调试信息等功能
都是最先从github上发布的
下面我们就以project zero例程为例
为大家介绍如何使用CCS Cloud
首先打开Chrome浏览器
打开链接
找到cc2640R2 launchpad
在开发版的目录下找到project zero
这个时候我们可以看到project zero的
Introduction已经在界面上显示
在界面上我们可以看到project zero
App Project in Resource Explorer
打开这个 就直接打开了project zero例程
点击import to CCS Cloud
就可以导入工程到CCS Cloud
在这个地方看到project zero
已经被导入了
在这里我们已经连接了cc2640R2
Launchpad开发版到电脑上
所以直接点击Run
就可以再现编译工程和烧录开发版
这个时候看到已经在烧录开发版
这个时候烧录已经完成 board reset已经完成
那么如何使用这个软件呢
我们可以在Resource Explorer里面
找到对这个例程的说明
那么说明有提到在这个烧录完成开发版之后需要一个窗口调试工具
所以我打开一个调试工具
设置串口
然后我reset一下板子
这个时候可以看到
板子是已经进入了一个广播的状态
那么这个其实和我们的这个guide里面
显示的是一样的 进入广播状态
所以这个时候我拿出手机
在guide里面 它有说如何把project zero
连接到手机 所以TI有提供一个
叫Sensor Tag for IOS的app
那么我现在就打开一个这样的app
然后按照操作去连接
在连接上之后
可以看到log再根据实时的更新了
那么具体要做怎么样的操作呢
实际上可以看到它这个project zero里面
只有三个service
那么这个service其实在我们的文档里面也是有介绍的
它有说 对应的有三个service
service下面会有不同的属性值
比如LED0对应的是111这个UID
那么我对它进行读或者写的操作
应该就可以对它控制开和关
那么回到我们的窗口调试工具
看一下
首先我读一下
LED0现在是一个零的状态
然后我要对它进行写
把它写成01
这个时候就可以看到
板子上面的灯亮了
因为这个地方我们只能看到log
所以其实在我这边的时候板子已经亮了灯
但是从log里面其实已经打出来了
这个灯确实是点亮了
那同样的我们也可以做相应的操作映射开发板上的按键操作
以及在手机和开发板之间进行
数据的收发
project zero是一个非常好的基础程序
从log信息我们可以轻松的在代码里找到对应的位置
很容易上手的一个软件开发
下面进入进阶版的simplelink Academy
前面有介绍这是一个非常棒的学习例程的工具
这个工具可以通过在线的方法访问
也可以下载安装本地文件
安装之后我们就可以直接在ccs里面访问到
SimpleLink Academy里的例子和任务
是根据cc2640/cc2640r2软件的发展
不断更新的 今天我们同样可以在academy中
找到基于project zero的教程
比如我打开了SimpleLink Academy
在BLE的最基础的教程之中
我们可以看到project zero如何使用
包括如何建立自己的环境
需要什么样的开发版 需要下载什么样的开发包
然后有介绍我们刚才介绍过的
用CCS Cloud的方法
然后编译 发现不同的service
如何使用notification
到最后如何自定义自己的应用程序
除了基于BLE协议栈的教程
SimpleLink Academy同样也提供了对TI-RTOS教程
通过课程可以了解到
TI- RTOS的几个重要组成部分
例如任务 信号量
中断 处理流程等
在完成了基础教程之后
SimpleLink Academy又提供了进阶版的任务
例如如何用SIG组织发布的
使用图形界面的开发工具
Bluetooth Developer Studio
来定义和开发自己的BLE协议
又例如
如何添加红外信号的驱动
这些进阶的教程可以帮助你一步步的深入学习
更多的平台知识在完成了进阶版的教程之后
相信已经可以满足大多数的应用开发需要
但是SimpleLink Academy还开设了提高班
在提高班里你可以学习到更多的工具的使用
帮助你完成一些定制化的
或者说有差异性的功能的开发
比如如何使用Sensor Controller
进一步优化系统的功耗
如何把cc2640只作为一个BLE的网络传输芯片
外部添加一个MCU来完成更加复杂的应用需求等等
相信大家可以通过SimpleLink Academy
快速从入门到专家
TI还提供了很多PC端的调试工具
来帮助大家调试自己的程序
BTool和BLE Device Monitor
都可以在PC端模拟一个BLE Central设备
BTool可以测试所有可能的BLE操作
更偏向于对BLE协议栈的调试
而BLE Device Monitor
提供更加直观和图形化的界面
主要偏向于对自定义BLE服务
和属性的调试
Packet Sniffer是一个分析空中数据包的程序
Flash Programmer是烧录工具
通过三讲的介绍希望大家对cc2640
Cc2640R2F的开发有一些直观的了解
如果需要更加详细和具有针对性问题的解答
可以通过TI官方网站获取帮助
这里列出几个非常有用的TI官网连接
在TI BLE官网界面
我们可以很容易的下载到芯片的数据手册
操作指导文档 应用文档
软件开发包并购买TI的开发版
TI的支持社区有英文和中文两个版本
分别有全球的TI工程师
和中国本地的工程师为你的特定问题提供技术支持
欢迎大家通过访问这些TI技术网站
获得更多的关于TI BLE型芯片的信息和支持
谢谢大家的时间
课程介绍
共计3课时,32分4秒
猜你喜欢
换一换
推荐帖子
- 有关TI蓝牙官方技术群建立
- 考虑到论坛TI的蓝牙活动正在进行,为了方便大伙技术交流,到时想交流蓝牙技术和参加活动的技术朋友都加入到303514407[backcolor=rgba(255, 255, 255, 0.2)]这个蓝牙技术群。 [ 本帖最后由 wateras1 于 2013-11-21 10:53 编辑 ]...
- wateras1 无线连接
- C6455 UDP sendto发送,数据超过1500bytes无法发送报错EMSGSIZE,请问是什么原因
- DSP使用的是C6455,NDK版本较老为v1.91,CCS 版本为v5.4,UDP的发送与接收缓存都配置成立最大32K 调用sendto发送数据时,数据长度超过1500就无法完成发送,错误为EMSGSIZE 通常UDP socket在发送大数据量的时候,不是也可以分包发送的嘛?为什么会出现上述错误,请指教 ...
- 雨晨mouse TI技术论坛
- 请教5402程序空间问题
- 我的程序空间是大于64k的,但是我发现好像5402只能在第0页里运行,不能自动转换到第一页,但程序在64k至128k时候它的地址线A16好像一直都是低,是不是要像访问高页的程序空间还有其他的东西要设置阿, 急用,在这里先谢谢了 我的配置: SRAM的A0~~A17和DSP的A0~~A17直接相联, SRAM的CS和DSP的PS相联, SRAM的we和DSP的RW相联, SRAM的OE和...
- xzhy 微控制器 MCU
- 1MHz方波二倍频
- 请问,如何使1MHz信号二倍频,有没有直接的芯片可以实现,因为功能不复杂不想用锁相环+分频器实现 ...
- sudongpo2018 模拟与混合信号