首页 > 产品 > 无线连接 > CC2650开发套件详解 >

蓝牙产品

最新课程

热门课程

CC2650DK见识(三)

大家好 我们继续来看看 TI 的 CC2650 这颗无线 SOC 芯片 一些概况呢在前面的视频中已经有所讲述 所以说我们今天这里呢 只了解一下这个芯片的事件 和传感协控制器的一些简单情况 我们分四个部分来了解 第一个部分是事件路由 它是协控制器与MCU 外设与外设之间事件通知的一种机制 第二部分是传感协控制器的一些大概情况 第三部分是关于 sensor controller studio 的一些简介 最后呢我们用一个例子来结束今天的视频 收到消息会自然就涉及到三个实体 第一个是消息的发送者 第二个消息的接收者 最后就是消息的通路 这个地方呢我们对 消息和事件本身是不做区别的 可以认为事件是一种特殊形式的消息 我们来看看 2650 的路由架构 这个是一个很典型的生产者 消费者 还有中间通路的这样一种路由形式 中间的消息总线 他是把生产者产生的消息 发送给消费者的通路 路由形式是最基本的直接通路 也就是说这个中间 不对通道内的消息做任何的处理 路由可以是 消息可以是硬件的中断 可以是软件的可编程中断 也可以是 DMA 触发等等东西 但是并不是说所有的消息 都可以通过动态路由的形式传输 只有很小一部分消息 能够有这种路由的能力 而大部分消息呢 都是通过静态的连接形式存在 路由之间是一种多对多的这样一种关系 也就是说一个生产者的消息 可以被多个消费者接受 同时呢一个消费者 也可以接收多个生产者产生的消息 如果是同时产生的话 通过或逻辑也就是 or 给出最后的逻辑 消息本身它是被认为是 电平触发的高电平作为它的一种识别条件 通过这个图我们还可以看到 消息全部都是送到消息总线上面 在接收端 我们还需要进行消息的一些选择 来设定哪些消息进行响应 2650 呢是一个十分复杂的 SOC 这个里面可以看到它有两条消息路由总线 这两条总线它至少是在逻辑上面是分开的 一条总线呢在 AON 域 也就是 Always ON 这个域里面 一条总线呢是在 MCU 域里面 这两条总线呢以 Always ON AON 这个外设作为桥接 也就是这个框红色的框 通过这个桥接手段呢 AON 域 和 MCU 域 也可以进行消息的路由 把 AON 域里面的消息路由出来 给 MCU 域里面的消费者 这里面这个图里面黄色的这一框 就是所谓的一些消费者或者说是订阅者 他就是能从这些消息总线上面 接收消息来源的这样一些外设 然后进行响应 我们在使用过程中 也发现一个手册中的描述问题 在手册中对中断号二十二和二十九 它的描述跟我们在 我驱动内部里面发现的是不一样的 驱动内部里面它是把它赋给了 software event 0 和 event1 但是在手册里面似乎好像有点不是很对应 这个手册呢参考的是刚刚发布的第三版 也就是 C 后缀是 C 这个版本 寄存器呢我们一般用寄存器操作的话 只需要对相应的寄存器进行设定 我们要的值 这里我们可以看一看 它的一些相关寄存器 包括 MCU wakeup 唤醒 MCU 的一些事件源 在这里面包括我们的 pad 包括我们的 RTC JTAG 包括 AUX 就是协处理器自身的一些事件 Comparator ADC等等 我们从构架上面看 CC2650 内部有三个处理器 一个是大家比较熟悉的 Cortex-M3 一个是传感控制处理器这里面 一个是 Cortex-M0 的设备内核 确实是一个比较复杂的 SOC Cortex-M3 呢大家可能都比较熟悉 我们看协处理器里面 包含了有 GPIO 啊这个地方没有显示出来 GPIO ADC 采样的 比较器有两个 SPI 和 I2C 这个是通过 beagbone 怎么说呢 就是用 GPIO 来模拟的这样一个 就是用 GPIO 来模拟的这样一个 SPI 和 I2C 时序 计时器 time to DG converter 还有内部的 SRAM 它主要用来接入一些传感器的应用 这个也是 CC2650 这颗芯片的主要的一些应用场景 比如说呢 ADC 可以用在连续的信号监测 温湿度传感器等等的一些地方 比较器呢 comparator 呢 可以用于监控目标电压的阈值 SPI 和 I2C 呢可以操作一些常见的传感器 比如说加速度 陀螺仪等等 这里有个电流源 和定时器 time to digital converter 他们和比较器一起呢可以做电容触摸的一些应用 这些应用的一个典型应用场景是主 MCU 休眠 然后当有事件触发的时候 再唤醒这个主 MCU 所以说 2650 呢搞了一个事件路由 搞了一个多电源管理的这样一个域 搞了一个协处理 可能也是希望在最大程度的 降低运行期的功耗 其他一些面向低功耗的处理器 也会有一些相关的设施 虽然说实验上面各有千秋 但是本质上呢也可以看作是 同一种的一种设计模型 包括协处理器 SRAM 在内的所有设施 他们都可以在主 MCU 休眠的时候继续工作 也就是说保持他的时钟 AUX 也就是我们的协控制器 它是挂在 MCU 的访问空间里面的 也就是说我们可以通过 MCU 的操作 来对 AUX 协控制器进行访问 但是呢反过来是就不可以 它只能通过消息的形式 也就是说 AUX 协处理器 只能通过消息的形式 把请求传递给 MCU 从这个框图里面呢 我们也可以看出 这个协处理器里面有外设总线 有消息总线 有各种外设 乱七八糟的 有仲裁 有 SRAM 还有处理器等等这样一种设施 系统总线呢是协处理器与 MCU 通讯的总线 这里面仲裁器认为 协处理器的优先级高于主 MCU 又也就是说这里面的一些外设 被 MCU 和协处理器同时使用的话 那么使用权是被总裁给协处理器的 我们可以看到这里面有这个 Controller 它有自己的一套指令 它是一颗简化的 MCU 但相关的指令我们可以在手册里面找到 这里我就 sensor controller 这个地方 我们可以看到它的 instruction sheet 这个还是比较复杂的 有点类似我们的 cortex 但是它又有很多不一样的地方 有一些特殊的指令 他手册上面也没有说 这颗 U 一个什么芯 反正我们大概看一看就行 那 GPIO IO control 它可以设置输入输出 设置 开漏 open source 等等这样一种设置 但是这些设置呢一般是通过 sensor controller studio 进行设置 Timer to digital converter 它的最高 这块它最高可以 以 96 兆赫兹的时钟速度测量 它主要是用来测量起始事件 和结束事件之间的一些时间 一般呢在一般我们会使用 高速 RC 震荡器或者是二十四兆 外部振荡器作为它的时钟 如果是要测量内部振荡器的频率 就是芯片内部的振荡器的频率的话 那么就需要使用它的低速时钟 作为它的时钟源 因为具体的一些时钟源 在我们的手册里面都可以看到 这个地方都可以看到 内部信号量 semaphore 它是一个邻域信号量 也就是说它不是我们一般认为的那种 技术信号量 它主要是用来同步 AUX 和 MCU 之间的一些访问 还有一些数字控制用于配置 器件的内部震荡体 ADC 呢它是一个转换器 最高每秒是200K 它有八个通路 基本概念上和我们的一般常用的 ADC 是非常类似的 对于这个 AUX 呢 TI 基本上也只给出了使用 sensor controller studio 进行操作的一些手段 在我们的手册里面 对 AUX 的描述 对它的指令集有一些描述 然后对他的一些状态 对他的一些内部的一些使用 有一些简单描述 但是整体上来说的话 光凭着我们的手册 和一些简单的事例 可能在这个使用上面 还会存在一些很大的一些问题 这个也希望 TI 后面的话 能够加强一些资料的建设 最后呢我们看一看这个 sensor controller studio 这个呢是一个编译环境 同时它又有一些调试的功能 在 SCS 就是这个 sensor controller studio 的帮助里面 我们可以看到一些基本的 函数的一些使用情况 这个可以认为是 TI 不面向用户的一个 TI 的专用库 也就是说这些函数呢 我们也只能看到他的名字 比如说 SPIbegin 这里面的调试器它也有 这个东西就是一个最基本的一个调试器 连断点都没办法打 这个可用性还是非常的差 我们现在来看看 sensor controller studio 它的一些基本的一些应用 这个 studio 里面包含了一些示例 就是用作协传感器跟 MCU 之间 怎么互相工作的一些事例 我们先打开这个 studio 可以看到这个基本欢迎界面 有我们的项目 有我们的示例 还有一些帮助 先看帮助 帮助的话呢这里面有他 IDE 的帮助 这个确实描述的是非常简单的 还有一些我们资源的一些介绍 包括我们的 GPIO 一些介绍 怎么配置啊 怎么使用啊 怎么调用它的一些资源 包括一些外设 比如说 ADC TDC 的一些常量 它的一些描述 还有我们怎么去用它这样一种外设 这里面比较重要的呢 是这个类 C 语言的 similar to C 类 C 语言的这样一种简单的介绍 确实讲得很简单 这个也就几页的地方 主要就是有比如说我们的注释 变量的一些声明 基本语法等等这些东西 一些访问呐反正跟 C 很像 所以说我们看一看也基本上可以了解到 有一些不一样的地方呢 他反正这个也比较简单 这里面比较重要呢 就是 data structure 这个数据结构 这个数据结构包括包括了四个 Task configuration task 配置 任务的输入输出和他的一些状态结构 这个等会我们在示例当中都可以看到一些体现 还有他的汇编语言的描述 汇编语言呢也是比较麻烦的 这还有那么多 我们现在打开我们的工程 analog light sensor 这个工程 它主要是用 smartRF06 这个基板上面的 light sensor 做的这样一个应用 也主要就是用 ADC 来采样它的输出值的大小 来作为一个光强度的这样一种判断 我们这里呢有系统选择 芯片选择 看起来是蛮多 有封装还有我们最基本的一个我们的项目 这就是我们项目 项目里面的话呢 我们可以在 task resource 里面 选择我们需要用到的一些资源 这个 task resource 呢 可以在这里面寻找到一些帮助 包括 UART analog 这些东西 我们的一些帮助 这个例子当中 他用了ADC的一个采样 用了一个模拟信号量的输入 用了一个数字信号量的输出 用来比如说关闭 或者打开这个 light sensor 用了一些延迟和一个基于 RTC 的 这样一个任务的简单调度 这些前面的外设 我们都可以在不同的项目当中去选择它 比如说我们选择一个 UART 你先看看这里的效果 这里面呢我们可以看到 它写的是告诉我们可以用的一些资源 前面都是跟 ADC 相关的 这里面应该是 firmware 固件相关的 这个是 GPIO 的 那么我们觉得跟我选一个 UART 的进来 我们可以看到 这两个缓冲区呢都是有个64个字节 在这里面噢 我们可以看到 UART emulator 这个东西我们是可以在程序里面使用的 同时呢在 constant 这个应该是一个常量的里面 我们看到有缓冲区的设置 然后我们把它先搞掉 毕竟没有用它 这个整个程序分成了三个段 第一个段呢就是初始化段 第二段呢是执行代码段 第三个段呢是它的一些 最后终结的时候需要运行的一些段 在这个 IDE 里面 也是做了一个比较好的一个结构化的划分 在初始化段里面呢 主要就是用在我们这个程序 第一次运行的时候 只运行一次的这样一种情况 那么这个地方呢 它就是简单的把 analog 这个应该是一个 analog 的一个东西 把它设置然后我们就触发 我们的第一次的任务调度 我们可以看到 然后一旦触发任务调度之后 我们就进入到可执行段 这个执行段 他在每一次任务调度的时候 我们可以看到 最后它都有一个任务的调度 来不断地重复执行这里面的所有的东西 这里面是不断的重复执行 我可以看到对 output 打开 light sensor 这样一种操作 停一会儿然后我们对 DK 的操作打开它 然后读取它的值 然后读取它的值 然后最后把它关掉 然后把 light sensor 关掉 然后我们把读取它的值呢 跟我们存储在 我们数据结构当中的数据进行一些对比 那么我们可以看到刚才所有的 比较重要的几个结构 它里面有 config output state 这样几种结构呢 主要就是用在跟 MCU 之间的一些通讯 也不叫通讯吧 就是跟他们之间的 数据交互当中 使用的这样一种数据结构 在 MCU 的代码里面 我们可以直接对他们进行引用 等会我们在产生出来的代码里面 可以看到他们的存在 根据我们 ADC 的值 读取不同的一些 检测我们现在不同的状态 因为上一次这个代码执行的时候 我们是需要判断这个 bin 这个呢就是一个index的意思 就是说我们在这个数组里面 0 到 5 一共六个数的数组里面 我们现在是处于哪种光照强度 根据这个光照强度呢 我们再来调整我们自己的一些 这个阶段里面的一些输出 我们可以看到一些 最大最小值的一个简单的一个 去抖动的一个东西吧输出 然后证明比较重要的呢是在这个地方 bin 我们升级的 output.bin output.bin 的话 就是说我们下一次 再回到这个地方来执行的时候 它还是可以通过这个地方把它读出来 对一定要记住 这个是不断执行的这样一个过程 我们这块呢有一个 firmware generate 这样一个 alert interrupt 这个东西呢 主要是用在跟 MCU 通讯 唤醒 MCU 这样一种工作上面 我们待会可以在这里面看到 最后呢我们再一次调度我们的这个任务 这个任务 next education 呢 这个地方呢我们可以看到 它进行下一次的调度 下一次调度呢就是一个 RTC 的这样一个时间段 这个 RTC 呢这个时间段 我们是在 MCU 端进行一些设置 等会我们也可以看到 这个没有一些最后清理的工作 我们这里面用了两个 GPIO 一个是那个数字 GPIO 有一个模拟 GPIO 数字的 GPIO 呢 主要是用打开和关断 light sensor 的 power 模拟 GPIO 呢 主要就是用在我们的 ADC 的一个输入端 这里面呢我们很方便地用鼠标就可以 对它们进行一些配置 但是在手册里面好像说的不是很详细 我们也没有找到哪里地方有这样一种资料说明 所以说我们就还是用它吧要简单一些 而根据之前的我们一些代码呢 我们最后来生成 AUX 协处理器的这样一个代码 我们生成了 生成之后呢 我们可以对它进行调试 调试的话 我们可以用一个他的 testing driver code 就是他自己的一个调试框架的代码 产生之后呢我们也可以用它进行编译 编译之后 然后一些调试 我们可以打开看看 这个地方 task testing 这个这里面有一些我们可以打开

大家好

我们继续来看看 TI 的 CC2650

这颗无线 SOC 芯片

一些概况呢在前面的视频中已经有所讲述

所以说我们今天这里呢

只了解一下这个芯片的事件

和传感协控制器的一些简单情况

我们分四个部分来了解

第一个部分是事件路由

它是协控制器与MCU

外设与外设之间事件通知的一种机制

第二部分是传感协控制器的一些大概情况

第三部分是关于

sensor controller studio 的一些简介

最后呢我们用一个例子来结束今天的视频

收到消息会自然就涉及到三个实体

第一个是消息的发送者

第二个消息的接收者

最后就是消息的通路

这个地方呢我们对

消息和事件本身是不做区别的

可以认为事件是一种特殊形式的消息

我们来看看 2650 的路由架构

这个是一个很典型的生产者 消费者

还有中间通路的这样一种路由形式

中间的消息总线

他是把生产者产生的消息

发送给消费者的通路

路由形式是最基本的直接通路

也就是说这个中间

不对通道内的消息做任何的处理

路由可以是

消息可以是硬件的中断

可以是软件的可编程中断

也可以是 DMA 触发等等东西

但是并不是说所有的消息

都可以通过动态路由的形式传输

只有很小一部分消息

能够有这种路由的能力

而大部分消息呢

都是通过静态的连接形式存在

路由之间是一种多对多的这样一种关系

也就是说一个生产者的消息

可以被多个消费者接受

同时呢一个消费者

也可以接收多个生产者产生的消息

如果是同时产生的话

通过或逻辑也就是 or 给出最后的逻辑

消息本身它是被认为是

电平触发的高电平作为它的一种识别条件

通过这个图我们还可以看到

消息全部都是送到消息总线上面

在接收端

我们还需要进行消息的一些选择

来设定哪些消息进行响应

2650 呢是一个十分复杂的 SOC

这个里面可以看到它有两条消息路由总线

这两条总线它至少是在逻辑上面是分开的

一条总线呢在 AON 域

也就是 Always ON 这个域里面

一条总线呢是在 MCU 域里面

这两条总线呢以 Always ON

AON 这个外设作为桥接

也就是这个框红色的框

通过这个桥接手段呢

AON 域 和 MCU 域

也可以进行消息的路由

把 AON 域里面的消息路由出来

给 MCU 域里面的消费者

这里面这个图里面黄色的这一框

就是所谓的一些消费者或者说是订阅者

他就是能从这些消息总线上面

接收消息来源的这样一些外设

然后进行响应

我们在使用过程中

也发现一个手册中的描述问题

在手册中对中断号二十二和二十九

它的描述跟我们在

我驱动内部里面发现的是不一样的

驱动内部里面它是把它赋给了

software event 0 和 event1

但是在手册里面似乎好像有点不是很对应

这个手册呢参考的是刚刚发布的第三版

也就是 C 后缀是 C 这个版本

寄存器呢我们一般用寄存器操作的话

只需要对相应的寄存器进行设定

我们要的值

这里我们可以看一看

它的一些相关寄存器

包括 MCU wakeup

唤醒 MCU 的一些事件源

在这里面包括我们的 pad

包括我们的 RTC JTAG

包括 AUX 就是协处理器自身的一些事件

Comparator ADC等等

我们从构架上面看

CC2650 内部有三个处理器

一个是大家比较熟悉的 Cortex-M3

一个是传感控制处理器这里面

一个是 Cortex-M0 的设备内核

确实是一个比较复杂的 SOC

Cortex-M3 呢大家可能都比较熟悉

我们看协处理器里面

包含了有 GPIO 啊这个地方没有显示出来

GPIO ADC 采样的

比较器有两个 SPI 和 I2C

这个是通过 beagbone

怎么说呢

就是用 GPIO 来模拟的这样一个

就是用 GPIO 来模拟的这样一个

SPI 和 I2C 时序

计时器 time to DG converter

还有内部的 SRAM

它主要用来接入一些传感器的应用

这个也是 CC2650

这颗芯片的主要的一些应用场景

比如说呢 ADC

可以用在连续的信号监测

温湿度传感器等等的一些地方

比较器呢 comparator 呢

可以用于监控目标电压的阈值

SPI 和 I2C 呢可以操作一些常见的传感器

比如说加速度

陀螺仪等等

这里有个电流源

和定时器 time to digital converter

他们和比较器一起呢可以做电容触摸的一些应用

这些应用的一个典型应用场景是主 MCU 休眠

然后当有事件触发的时候

再唤醒这个主 MCU

所以说 2650 呢搞了一个事件路由

搞了一个多电源管理的这样一个域

搞了一个协处理

可能也是希望在最大程度的

降低运行期的功耗

其他一些面向低功耗的处理器

也会有一些相关的设施

虽然说实验上面各有千秋

但是本质上呢也可以看作是

同一种的一种设计模型

包括协处理器 SRAM 在内的所有设施

他们都可以在主 MCU

休眠的时候继续工作

也就是说保持他的时钟

AUX 也就是我们的协控制器

它是挂在 MCU 的访问空间里面的

也就是说我们可以通过 MCU 的操作

来对 AUX 协控制器进行访问

但是呢反过来是就不可以

它只能通过消息的形式

也就是说 AUX 协处理器

只能通过消息的形式

把请求传递给 MCU

从这个框图里面呢

我们也可以看出

这个协处理器里面有外设总线

有消息总线

有各种外设

乱七八糟的 有仲裁 有 SRAM

还有处理器等等这样一种设施

系统总线呢是协处理器与 MCU 通讯的总线

这里面仲裁器认为

协处理器的优先级高于主 MCU

又也就是说这里面的一些外设

被 MCU 和协处理器同时使用的话

那么使用权是被总裁给协处理器的

我们可以看到这里面有这个 Controller

它有自己的一套指令

它是一颗简化的 MCU

但相关的指令我们可以在手册里面找到

这里我就

sensor controller 这个地方

我们可以看到它的 instruction sheet

这个还是比较复杂的

有点类似我们的 cortex

但是它又有很多不一样的地方

有一些特殊的指令

他手册上面也没有说

这颗 U 一个什么芯

反正我们大概看一看就行

那 GPIO IO control

它可以设置输入输出

设置 开漏 open source 等等这样一种设置

但是这些设置呢一般是通过

sensor controller studio 进行设置

Timer to digital converter 它的最高

这块它最高可以

以 96 兆赫兹的时钟速度测量

它主要是用来测量起始事件

和结束事件之间的一些时间

一般呢在一般我们会使用

高速 RC 震荡器或者是二十四兆

外部振荡器作为它的时钟

如果是要测量内部振荡器的频率

就是芯片内部的振荡器的频率的话

那么就需要使用它的低速时钟

作为它的时钟源

因为具体的一些时钟源

在我们的手册里面都可以看到

这个地方都可以看到

内部信号量

semaphore 它是一个邻域信号量

也就是说它不是我们一般认为的那种

技术信号量

它主要是用来同步 AUX

和 MCU 之间的一些访问

还有一些数字控制用于配置

器件的内部震荡体

ADC 呢它是一个转换器

最高每秒是200K

它有八个通路

基本概念上和我们的一般常用的 ADC

是非常类似的

对于这个 AUX 呢

TI 基本上也只给出了使用

sensor controller studio

进行操作的一些手段

在我们的手册里面

对 AUX 的描述

对它的指令集有一些描述

然后对他的一些状态

对他的一些内部的一些使用

有一些简单描述

但是整体上来说的话

光凭着我们的手册

和一些简单的事例

可能在这个使用上面

还会存在一些很大的一些问题

这个也希望 TI 后面的话

能够加强一些资料的建设

最后呢我们看一看这个

sensor controller studio

这个呢是一个编译环境

同时它又有一些调试的功能

在 SCS 就是这个

sensor controller studio 的帮助里面

我们可以看到一些基本的

函数的一些使用情况

这个可以认为是

TI 不面向用户的一个 TI 的专用库

也就是说这些函数呢

我们也只能看到他的名字

比如说 SPIbegin

这里面的调试器它也有

这个东西就是一个最基本的一个调试器

连断点都没办法打

这个可用性还是非常的差

我们现在来看看

sensor controller studio

它的一些基本的一些应用

这个 studio 里面包含了一些示例

就是用作协传感器跟 MCU 之间

怎么互相工作的一些事例

我们先打开这个 studio

可以看到这个基本欢迎界面

有我们的项目

有我们的示例

还有一些帮助

先看帮助

帮助的话呢这里面有他 IDE 的帮助

这个确实描述的是非常简单的

还有一些我们资源的一些介绍

包括我们的 GPIO 一些介绍

怎么配置啊

怎么使用啊

怎么调用它的一些资源

包括一些外设

比如说 ADC TDC 的一些常量

它的一些描述

还有我们怎么去用它这样一种外设

这里面比较重要的呢

是这个类 C 语言的 similar to C

类 C 语言的这样一种简单的介绍

确实讲得很简单

这个也就几页的地方

主要就是有比如说我们的注释

变量的一些声明

基本语法等等这些东西

一些访问呐反正跟 C 很像

所以说我们看一看也基本上可以了解到

有一些不一样的地方呢

他反正这个也比较简单

这里面比较重要呢

就是 data structure 这个数据结构

这个数据结构包括包括了四个

Task configuration task 配置

任务的输入输出和他的一些状态结构

这个等会我们在示例当中都可以看到一些体现

还有他的汇编语言的描述

汇编语言呢也是比较麻烦的

这还有那么多

我们现在打开我们的工程

analog light sensor 这个工程

它主要是用 smartRF06

这个基板上面的 light sensor

做的这样一个应用

也主要就是用 ADC

来采样它的输出值的大小

来作为一个光强度的这样一种判断

我们这里呢有系统选择 芯片选择

看起来是蛮多

有封装还有我们最基本的一个我们的项目

这就是我们项目

项目里面的话呢

我们可以在 task resource 里面

选择我们需要用到的一些资源

这个 task resource 呢

可以在这里面寻找到一些帮助

包括 UART analog 这些东西

我们的一些帮助

这个例子当中

他用了ADC的一个采样

用了一个模拟信号量的输入

用了一个数字信号量的输出

用来比如说关闭

或者打开这个 light sensor

用了一些延迟和一个基于 RTC 的

这样一个任务的简单调度

这些前面的外设

我们都可以在不同的项目当中去选择它

比如说我们选择一个 UART

你先看看这里的效果

这里面呢我们可以看到

它写的是告诉我们可以用的一些资源

前面都是跟 ADC 相关的

这里面应该是 firmware 固件相关的

这个是 GPIO 的

那么我们觉得跟我选一个 UART 的进来

我们可以看到

这两个缓冲区呢都是有个64个字节

在这里面噢

我们可以看到 UART emulator

这个东西我们是可以在程序里面使用的

同时呢在 constant

这个应该是一个常量的里面

我们看到有缓冲区的设置

然后我们把它先搞掉

毕竟没有用它

这个整个程序分成了三个段

第一个段呢就是初始化段

第二段呢是执行代码段

第三个段呢是它的一些

最后终结的时候需要运行的一些段

在这个 IDE 里面

也是做了一个比较好的一个结构化的划分

在初始化段里面呢

主要就是用在我们这个程序

第一次运行的时候

只运行一次的这样一种情况

那么这个地方呢

它就是简单的把 analog

这个应该是一个 analog 的一个东西

把它设置然后我们就触发

我们的第一次的任务调度

我们可以看到

然后一旦触发任务调度之后

我们就进入到可执行段

这个执行段

他在每一次任务调度的时候

我们可以看到

最后它都有一个任务的调度

来不断地重复执行这里面的所有的东西

这里面是不断的重复执行

我可以看到对 output

打开 light sensor 这样一种操作

停一会儿然后我们对 DK 的操作打开它

然后读取它的值

然后读取它的值

然后最后把它关掉

然后把 light sensor 关掉

然后我们把读取它的值呢

跟我们存储在

我们数据结构当中的数据进行一些对比

那么我们可以看到刚才所有的

比较重要的几个结构

它里面有 config

output state

这样几种结构呢

主要就是用在跟 MCU 之间的一些通讯

也不叫通讯吧

就是跟他们之间的

数据交互当中

使用的这样一种数据结构

在 MCU 的代码里面

我们可以直接对他们进行引用

等会我们在产生出来的代码里面

可以看到他们的存在

根据我们 ADC 的值

读取不同的一些

检测我们现在不同的状态

因为上一次这个代码执行的时候

我们是需要判断这个 bin

这个呢就是一个index的意思

就是说我们在这个数组里面

0 到 5 一共六个数的数组里面

我们现在是处于哪种光照强度

根据这个光照强度呢

我们再来调整我们自己的一些

这个阶段里面的一些输出

我们可以看到一些

最大最小值的一个简单的一个

去抖动的一个东西吧输出

然后证明比较重要的呢是在这个地方

bin 我们升级的 output.bin

output.bin 的话

就是说我们下一次

再回到这个地方来执行的时候

它还是可以通过这个地方把它读出来

对一定要记住

这个是不断执行的这样一个过程

我们这块呢有一个 firmware generate

这样一个 alert interrupt

这个东西呢

主要是用在跟 MCU 通讯

唤醒 MCU 这样一种工作上面

我们待会可以在这里面看到

最后呢我们再一次调度我们的这个任务

这个任务 next education 呢

这个地方呢我们可以看到

它进行下一次的调度

下一次调度呢就是一个

RTC 的这样一个时间段

这个 RTC 呢这个时间段

我们是在 MCU 端进行一些设置

等会我们也可以看到

这个没有一些最后清理的工作

我们这里面用了两个 GPIO

一个是那个数字 GPIO

有一个模拟 GPIO

数字的 GPIO 呢

主要是用打开和关断 light sensor 的 power

模拟 GPIO 呢

主要就是用在我们的 ADC 的一个输入端

这里面呢我们很方便地用鼠标就可以

对它们进行一些配置

但是在手册里面好像说的不是很详细

我们也没有找到哪里地方有这样一种资料说明

所以说我们就还是用它吧要简单一些

而根据之前的我们一些代码呢

我们最后来生成

AUX 协处理器的这样一个代码

我们生成了

生成之后呢

我们可以对它进行调试

调试的话

我们可以用一个他的 testing driver code

就是他自己的一个调试框架的代码

产生之后呢我们也可以用它进行编译

编译之后

然后一些调试

我们可以打开看看

这个地方 task testing

这个这里面有一些我们可以打开

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

CC2650DK见识(三)

所属课程:CC2650开发套件详解 发布时间:2015.10.08 视频集数:11 本节视频时长:00:24:00

该视频结合802.15无线器件,组网,应用等使用经验,讲述CC26xx芯片分析介绍、CC2650DK出厂演示程序使用和用途分析,射频相关基础闲聊等。旨在帮助新进工程师快速开启最新最潮的cc26xx系列无线设计。

TI培训小程序