首页 > 产品 > 微控制器 (MCU) 和处理器 > WCS (4.2b) CC13xx CC26xx Schematics (2) >

微控制器 (MCU)

最新课程

热门课程

WCS (4.2b) CC13xx CC26xx Schematics (2)

私有模式就是我们的 就是我们有 TI 的有 因为有很多那个通讯的一些东西嘛 一些无线的一些产品 通讯的一些协议什么什么的 比如说像 BLE 那个802.15.4 什么 ZigBee 上面这些东西 还有就是一些私有的东西 那这个怎么说 在我们的13和26的那个架构里面 我们就是说都是可以支持这些东西 就是说对 M0 来讲 它是完全是 就是说是那个对它来讲 是一些射频的工作对吧 你上面一些跑一些不同的协议它不管 你只要把它配置成在哪个频段工作哪种模式去工作 然后上面就跑相应的协议就可以所以三方里面很多 都是一些私有的一些东西嘛对吧 有可能会跑6LoWPAN 其实就是这么一种架构 那边它是 那我们的底下的那个 M0 它是完全就是说支持这些模式 就很简单 然后这是我们13支持的所有的那个调试方式 有这么多 速度是可以从4.8到500 kbps 然后这是我们的那个带宽范围45K到4240K 4.2兆 4兆最大 然后那个Preamble 就是说你可以就前导码可以长度是可以自己那个设置的 然后那个同步字 0-64 bits 都是有一些特色 这个没有什么特别的其实 那就是可能早上也有人问过就是刚才就是我们 原来比如说我在用那个老的1101 1120 1200 这些东西做那个开发的时候已经有一些产品了 那我这个新的东西导入进去 它们会还会兼容 所以我们这边13的话 它是说是完全向下兼容 就是老我们老的这些产品 所以就被大家如果在11老的平台基础上 开发新的应用 其实来讲的话也不是不需要付出很多的 那个就是说代价嘛主要是向原来兼容的 TI 目前就是已经有的就是我们有 Smart RF06板子 看上去很像那个26的其实确实很像就长得是一样的 然后还有那个1310的那个 EVM 板 它们基本上是一样的 那唯一的特点不同的地方可能是说 天线可能有点不太一样 和2.4G 这上面它画对 就是大概这个样子 拿到的时候你可以看一下 就是应该有不同的天线设计跟 2.4G 是不一样 如果拿到跟2650 就是 BLE 一样的那个板子 那就说明 TI 给你们发错板子了 然后那个价格是跟那个一样的 也是299 因为可能底板比较贵吧 这个都是说 TI 官网上可以申请到 我们有1350 SensorTag 就是将来 1350 这一颗料 它同时支持就是说有 BLE 的功能 然后也有那个 Sub-1G 的东西 然后你可以就是说那 Sub-1G 的东西 你就不能直接用手机去看了 你跟另外的接收 然后可能另外一块 Sub-1G 的板接收之后 你用屏幕再看看它上面一些传感器的信息 然后它里面天线就我前面讲过 它会有两根天线 然后做 Switch 那个还有我们会有1310 1350的Launch Pad 就是那个火箭版的 所谓的发射板 它会有那个也会有 接下来会有那个量产 所以现在有的是这块 大家可以有兴趣去 如果要做的话就可以这个开始 我个人要推荐这种 因为为什么 因为它的 IO 接口比较全 这个就是跟早上类似的就是跟我讲26的时候也讲过 就是26的那个功耗嘛对吧 13也是一样的 因为架构是一样的 M3 M0 然后它也有 Standby Current 一样的就是0.65 uA 然后它 M3 在工作的时候是多少每兆 在48 MHz下面是多少 需要消耗多少电流全速跑的时候对吧 然后射频这边由于它那个发射功率不太一样 所以那个它的发射的时候稍微高一点 其它地方都是一样 就是那个13的那个可以看到 软件架构 TI也会提供相应的就是13xx 的 SDK 那么跟那个26不太一样 CCS IAR 看的都眼熟 然后也是一样 两个 会有两个工程 有 Application 有一个 Stack 这个Stack 你可以跑不同的 Stack 比如说你没关系 你可以私有的那个东西 当然也有 BLE BLE 的东西可以 然后上面可以跑 或者是 6LoWPAN 的Stack 对吧 然后那个 Application 就是你自己定义的一些东西 自己的这些应用什么传感器 怎么传数据什么这些 这都跟26的都是一样的 下面也是Lower Layers RTOS 的 kernel RF的那个一些驱动 还是在那个 M3 的 Driver 里面 M3 的 ROM 里面 然后那个 RF 的实际操作的一些东西呢 是在 M0 里面是这样 这是 TI-RTOS TI-RTOS呢 就是说在那个26 13 包括一会儿我们那个(人名)会讲 32里面 它其实都是有 都是存在的 以后 TI 的出来的无线产品里面都是带着 TI-RTOS 所以如果比如说你原来做过那个做了一个 CC26xx的 像我就是做 CC2640 做过比较熟的 然后我这个时候我再去做那个13 可能对我来讲很多接口都长得一样 特别是那些驱动的什么 UART SPI PWM 这些乱七八糟这些外设的东西 驱动一看 就是说接口跟原来一模一样的 包括整个 因为 RTOS 它运行的整个机制什么都是一样 所以如果你玩过其中一个的话 就玩其它的 就是你可能想玩了 BLE 以后 你又想去搞一下那个什么 Sub-1G 接了又想去玩下WiFi 3200 可能就会觉得很容易很方便 因为 TI 都是以 RTOS 的方式 提供一些开发软件接口 那这边也不多讲 反正就是一般的 RTOS 它都是有优先级抢断 多线程的一些东西 然后有我们有 Scheduler 就是那个 Task 的调度机制 还有那个你可以有那个 kernel 就说我们甚至你可以裁减kernel 就是说 因为 TI-RTOS 它其实 它比一般的可能很多人用过 CE 那个东西要大一些 但是说功能更全一点 就说因为我们 因为我们就说 RTOS 会不停的更新 会有一些变化或怎么样 对吧 你们如果可以根据那个我们的那个更新之后 每次你可以重新安装然后可以看到它里面文档 什么东西加了什么减什么 修理什么bug 所以那 Zero-latency interrupts 就是那个 这其实也没有什么 我觉得这些东西都没有 本质上都没有什么特别 就是 RTOS 它当然会有一些中断处理 但因为大家都知道 有那个 RTOS 它无非就是调度 任务分配 然后那个各种切换 上下文切换 然后加那个 加一些什么 Timer 什么这些东西在里面 那这些都是其实都是 RTOS 的本质属性 所以我也在这里多说了 我想说的就是说是我们的那个这边 好 这两块是比较特殊的 就是因为针对我们TI的cc26 13 或者是那个3200的那个硬件 我们上面有很多外设嘛对吧 一般情况下大家拿到芯片之后 就是就拿到一颗芯片 比如说唉我用了其它的那个 自己原来有的 比如说Free RTOS 或者corse这些东西(9:08) 然后后来移到我们的 比如说移到自己的 MCU 上面 然后发现唉它可能不支持所有的 MCU 的一些驱动 它不可能支持那么多 每家都不一样 所以它就你就得 如果你要去调这些什么 GPIO 的驱动 或者UART SPI这个东西的时候 那你可能得又要去配寄存器什么什么 跟它那个 跟你的那个 MCU 的 Guide 的对吧 那个 Datasheet或者是那个 RTM 来 RTM 来 那 TI 做的是什么东西呢 就是我们在 RTOS 上面 因为这些芯片都是我们自己的 对吧 RTOS 也是我们自己 然后它会把所有的驱动都封装成 API 然后提 就是说提供出来 就比如说UART 等于叫 open 然后Read Write 这样就可以了 不要再定义寄存器 一开始就什么都不需要 可能就感觉有点像 Windows 编程那种 包括那个刚刚前面提过那个射频的一些 私有的一些指令 什么都是以 API 的形式在我们 TI-RTOS 里面 所以这个是比较方便很友好的界面 另外一点就是我们有那个 Power Management在里面 就是那个 TI-RTOS 里面 这个就是说是 因为是低功耗射频设备设备 所以这个东西尤其重要 在那个我们的那个 在我们的整个那个系统里面 所以大家有兴趣 就是这个可以去看一下 就是我们是怎么 因为我们有不同的那个 Power Mode 在不同 Power Mode 下面 我们这个 RTOS 它会自动 因为 RTOS 一直在运行 它会自动去切换 就是说打开关闭哪些外设 就是你可以预先设置 就是说你需要在某个模式下面 哪些外设还是工作的 哪些外设就不需要了对吧 然后你设置好之后 这个 RTOS 它会Power Management 它会自动帮你 那个在你运行过程中 就是到不同模块模式切换的时候 它就会进入不同的这种功耗模式 打开关闭某些设备外设什么这些东西 然后 CCS 里面我们提供了一个叫 System analyzer 其实也是 RTOS 的 要结合 TI- RTOS 可以看到的就说是这个比较重要 就也比较蛮好玩的就是你可以看相当于一个 你比如说你内存用了多少对某一个 Task 用多少 最峰值的时候用多少内存 平均用多少内存 什么类似这种东西可以去看一下 CCS 里面 TI 提供的工具 首先是我们 SmartRF Studio 这是一个 其实是一个通用的工具 它用 Sub-1G 上面可以用 然后用我们的那个 ZigBee BLE 都是可以用得上 然后跟原来的那个 SmartRF Studio 一样 现在是7 以前有6什么的一样 它就是说是它能有产生 那个能产生相关的那个 Code 的 你可以直接导到你工程里面去 然后就可以在那边配一下一些命令 这些以前是寄存器对吧 现在应该都是那个这些这个命令 就是 API 这么很简单很直观的设置频率 什么是 TX 模式 然后那个就是说 那个开始接收发送 这些东西都是在这边 很简单 那就是说这就是你设置好之后 它产生出了那个代码 也可以把它打到你们那个工程里面去 它会有 SmartRFstudio.c 文件 SmartRFstudio.h 很简单 Sensor Controller 跟那个26xx里面是一样的我们有 2K 的 SRAM 就是说它自己跑的 然后那个前面提到过的 8.2 uA/MHz 的那个运行 可以 就是可以32kHz 24MHz里面运行 它说是32kHz的话 效率比较低 因为我们的这个一般低功耗 低功耗射频设备里面都会有两个晶振对吧 一个32kHz的一个24MHz 32K就是RTC 24MHz的话 就是我们这个 Sensor Controller 它最好是在目前来看 是在24MHz下面运行的话是比较最好的 因为它效率高 然后很少时间就执行完了之后 就是那个功耗相对来说比较低 然后它可以进入这个睡眠模式 这样然后把其它事情丢给那个 M3 去处理 那效率会高 所以我们有一些 就是你下载完 Sensor Controller Studio这个工具之后呢 然后你打开 然后我们里面就有一些现成的一些 那个实例代码在那边 就说有 Motion Detector 就是你那个移动的 那个然后有那个 Capacitive touch的 那个我们忘了说 就是我们的那个2613都支持 Capacitive touch 那个代码 还有Proximity Sensor 还有什么加速器 还有那个 ADC 采集的一个数据 还有就是那个 Pulse counting 就是那个脉冲计数的实际代码 就其实都是很多都是跟 Sensor 是有关的 基本上都是跟Sensor有关的 应该 就在打开这个Sensor Controller Studio 你可以把这些实例工程导进去 然后看看其实就很简单 就一个开始设置 然后执行 然后结束了 就分这三段 我在这里不多不仔细讲 反正就你们看一下工程就知道了 然后就是它那个界面可以看到 你可以就是 open existing project 打开之后对吧 然后就可以看一下里面的一些东西 这是一个 Example 我们有的这些 就说 Capacitive touch ADC 采集这些在这边 那就说 TI 的13xx系列呢 就是还导入了一个叫做 Command Chaining的一个概念 这是什么东西呢 就原来我们的 像老的一些1110这些东西里面是没有这个东西的 这是干嘛呢 就是说是原来的话你可能要接收 要发送你的一个就是说去配那些那个命令 等待什么 到时候比方这个我们是一个就是命令链 我们叫做 所以叫做就是说你可以比如说每一个动作 比如说你设置频率 然后 RX 然后再等等什么什么 就你可以把这些命令 我们13xx它就提供了接口 可以 就是软件接口 就可以让你把这些命令串起来 就一个连一个 一个连一个 你可以 所以它可以让它去自动执行嘛 你就是设置完那个 frequence 之后 你就可以直接它会自动的 比如说你设计一个Timer 或者 Counter 然后什么时候进入 RX 它就把那个窗口打开 就等到那个对方数据过来 然后就相当于就是说 这个怎么说呢 在我的理解来看 就是说这样的话 就是说你类似于可以 像蓝牙一样定义自己的一个 Profile 相当于你可以定义一个 整个完整的就是两边的一个交互的数据流程 或者怎么样 对吧设置完之后 然后让 M3 去执行就可以了 就很简单去控制它怎么怎么样执行 所以这个的话 我们有一个就是等会儿 我可以给大家看 就是那个等会就会有一个slice 这边讲到这个 我们这个 command 的一个结构 一个结构里面它有一个比较重要的 就是一个 Next command pointer 就是就是连起整个就命令链的一个关键 就是你的这条命令 我里面有一个 pointer 是指向下一条命令的那个地址的是这样 然后会不会有一些 实际的例子可以给大家看 然后Start triggers 就是怎么样Start 你要 Delay execution呢 就是说 还是说是 就是还是就 Delay 相当于你用内部的一个 Timer 这种过一会去执行呢 还是说是外部的一个 比如说是 IO 触发它 开始执行整条命令 不是 执行一遍 也一样的 还有一个 End trigger 就是说你命令开始到整条命令链结束完 它是有一个 Time out 呢 还是说是有一个也是外部的一个可能 就是说事件触发里面 我不要说了 停止接收或停止发送这样一个东西 所以可以看 就是说接着往下看 就是这是个命令的一个架构 很重要的就是 Specific Data 就是命令的 这个命令的数据 这上面是命令的 Header 就是那个头 我们所有的那个刚才讲到了 什么 pointer 什么乱七八糟 都在这个头里面 就是头的那个情况 Command number ID number Status 就是其他的一些状态 关键就是说这个就是 pNextOp 这点 这个就是说是下一个要执行的指令 把它地址它放到这边 然后那个 Start Timer 就是那个什么时候去执行这个命令 然后 trigger 比如说它有各种trigger的 现在有TRIG_NOW NEVER ABSTIME 就是说跟前面那个设定是有关的 Absolute time 还是 relative time 它相对时间还是这种绝对时间 就是那个CPU系统里面的那些东西都 都可以这样跟着它去设 然后 condition 就说是就是那个状态嘛对吧 就是说你下一个指令 你是说是永远不执行或者说有 还是执行还是怎么样对吧 还是说在某一个状态下 它就停止命令这种 那具体的例子呢 其实这样的话就比较直观 首先就是说我们配置一个在那个 RX的一条指令 这是第一条命令 我们要执行那个命令 就是被 trigger 的命令 然后第二条命令就是 TX 命令 这是我们干嘛用呢 就是我们我们订一个类似于 比如私有的握手的一个协议 就是我发 就是私有握手协议 就是我先收一个数据 然后收一个收一包数据 然后再告诉对方 我就是收到这个数据 就是所以我先 RX 一下 然后再 TX 一下对吧 然后你可以就是然后把两头命令串起来 就是用那个pointer 然后那个我这边收到了 唉我觉得 RX 我觉得数据处理OK了 我就自动的发一个 TX 出去 中间可以判断 这个也是一样的 相对来的 就是说那个 TX 就是另外一端 我先发送 发送完了之后 我在这边启动一个 Timer 等嘛对吧 然后等 然后这都是 M0 里面的处理 M3 发给 M0 的那个事件那个命令 就是 M3比如发给 M0 TX 完了之后 M3 就睡觉了 然后 M0它就直接执行下面的东西 它就等着那个 RX RX收到数据之后它判断如果是正确的 它可能就是有事情要处理 它可以把 M3唤醒 如果不对它可以回到 TX 重发 就是完全你们自己就是可以定义的 那种相当于把这个下条指令之前的 Timer错过去了 可以那个自己定义的一个就是命令链 那这就是 Retry Counter 什么意思呢 就是前面的我们再加一步 就是说你不能总是 我没收到对方的 ack 可我在不停的重发 不停重发这种对吧 那我可以加个 Counter 那就我重发或者等待对方接收几次以后 我这我就停止 认为这个包是丢了或错了或怎么样对吧 所以一样的先 TX TX 完了之后 它指向下一条命令就是等待 RX 如果 Timer Out之后我就开始Count记一次 然后重新来 TX 再等 RX然后又没收到 然后再 count 到了一定次数之后我就停掉了 我就认为这个就不对了对吧 就是这样很简单 那就是这个就是另外一种情况 就是当然刚才我们说的可能 就是说是我没有设置 只设置了一个频段对吧 我们有多种频段 因为这完全是就是可以自己配置 你可以在一个频段上先设置 然后接收完 然后再设置另外一个可以呢再发送 这样都是命令链这样下去 你就先设置好 然后丢给 M0去处理 然后它收到了正确的 ack 之后再唤醒 M3 这样就是说达到我们这种低功耗的目的 不停的可以循环 你也可以这样执行完一次就结束了 其实就相当于我们 你可以想象就是因为我们 BLE 里面 BLE 里面就是跳频了嘛对吧 它每次发时候它接收发送完一个频段之后 它就会切换到下一个 我们有 Channel Map 对吧 我们知道下次应该跳到哪个 Channel上去 其实你也可以认为 其实 BLE 里面本质上做的是类似这种事情 当然其它 我们这边是 Sub-1G 的 就是 1GHz 以下的那个平台上面它这样做

私有模式就是我们的 就是我们有 TI 的有

因为有很多那个通讯的一些东西嘛

一些无线的一些产品

通讯的一些协议什么什么的

比如说像 BLE 那个802.15.4

什么 ZigBee 上面这些东西

还有就是一些私有的东西

那这个怎么说 在我们的13和26的那个架构里面

我们就是说都是可以支持这些东西

就是说对 M0 来讲 它是完全是 就是说是那个对它来讲

是一些射频的工作对吧

你上面一些跑一些不同的协议它不管

你只要把它配置成在哪个频段工作哪种模式去工作

然后上面就跑相应的协议就可以所以三方里面很多

都是一些私有的一些东西嘛对吧

有可能会跑6LoWPAN 其实就是这么一种架构

那边它是 那我们的底下的那个 M0

它是完全就是说支持这些模式 就很简单

然后这是我们13支持的所有的那个调试方式

有这么多

速度是可以从4.8到500 kbps

然后这是我们的那个带宽范围45K到4240K

4.2兆 4兆最大 然后那个Preamble

就是说你可以就前导码可以长度是可以自己那个设置的

然后那个同步字 0-64 bits

都是有一些特色 这个没有什么特别的其实

那就是可能早上也有人问过就是刚才就是我们

原来比如说我在用那个老的1101 1120 1200

这些东西做那个开发的时候已经有一些产品了

那我这个新的东西导入进去

它们会还会兼容 所以我们这边13的话

它是说是完全向下兼容 就是老我们老的这些产品

所以就被大家如果在11老的平台基础上

开发新的应用

其实来讲的话也不是不需要付出很多的

那个就是说代价嘛主要是向原来兼容的

TI 目前就是已经有的就是我们有 Smart RF06板子

看上去很像那个26的其实确实很像就长得是一样的

然后还有那个1310的那个 EVM 板

它们基本上是一样的

那唯一的特点不同的地方可能是说

天线可能有点不太一样 和2.4G

这上面它画对

就是大概这个样子 拿到的时候你可以看一下

就是应该有不同的天线设计跟 2.4G 是不一样

如果拿到跟2650 就是 BLE 一样的那个板子

那就说明 TI 给你们发错板子了

然后那个价格是跟那个一样的 也是299

因为可能底板比较贵吧

这个都是说 TI 官网上可以申请到

我们有1350 SensorTag

就是将来 1350 这一颗料

它同时支持就是说有 BLE 的功能

然后也有那个 Sub-1G 的东西

然后你可以就是说那 Sub-1G 的东西

你就不能直接用手机去看了 你跟另外的接收

然后可能另外一块 Sub-1G 的板接收之后

你用屏幕再看看它上面一些传感器的信息

然后它里面天线就我前面讲过

它会有两根天线 然后做 Switch

那个还有我们会有1310 1350的Launch Pad

就是那个火箭版的 所谓的发射板

它会有那个也会有 接下来会有那个量产

所以现在有的是这块 大家可以有兴趣去

如果要做的话就可以这个开始

我个人要推荐这种

因为为什么 因为它的 IO 接口比较全

这个就是跟早上类似的就是跟我讲26的时候也讲过

就是26的那个功耗嘛对吧 13也是一样的

因为架构是一样的 M3 M0

然后它也有 Standby Current

一样的就是0.65 uA

然后它 M3 在工作的时候是多少每兆

在48 MHz下面是多少

需要消耗多少电流全速跑的时候对吧

然后射频这边由于它那个发射功率不太一样

所以那个它的发射的时候稍微高一点

其它地方都是一样

就是那个13的那个可以看到

软件架构

TI也会提供相应的就是13xx 的 SDK

那么跟那个26不太一样 CCS IAR 看的都眼熟

然后也是一样 两个 会有两个工程

有 Application 有一个 Stack

这个Stack 你可以跑不同的 Stack

比如说你没关系 你可以私有的那个东西

当然也有 BLE BLE 的东西可以 然后上面可以跑

或者是 6LoWPAN 的Stack 对吧

然后那个 Application 就是你自己定义的一些东西

自己的这些应用什么传感器 怎么传数据什么这些

这都跟26的都是一样的 下面也是Lower Layers

RTOS 的 kernel RF的那个一些驱动

还是在那个 M3 的 Driver 里面 M3 的 ROM 里面

然后那个 RF 的实际操作的一些东西呢

是在 M0 里面是这样

这是 TI-RTOS

TI-RTOS呢 就是说在那个26 13

包括一会儿我们那个(人名)会讲

32里面 它其实都是有 都是存在的

以后 TI 的出来的无线产品里面都是带着 TI-RTOS

所以如果比如说你原来做过那个做了一个 CC26xx的

像我就是做 CC2640 做过比较熟的

然后我这个时候我再去做那个13

可能对我来讲很多接口都长得一样

特别是那些驱动的什么 UART SPI PWM

这些乱七八糟这些外设的东西

驱动一看 就是说接口跟原来一模一样的

包括整个

因为 RTOS 它运行的整个机制什么都是一样

所以如果你玩过其中一个的话 就玩其它的

就是你可能想玩了 BLE 以后

你又想去搞一下那个什么 Sub-1G

接了又想去玩下WiFi 3200

可能就会觉得很容易很方便

因为 TI 都是以 RTOS 的方式

提供一些开发软件接口 那这边也不多讲

反正就是一般的 RTOS 它都是有优先级抢断

多线程的一些东西 然后有我们有 Scheduler

就是那个 Task 的调度机制

还有那个你可以有那个 kernel

就说我们甚至你可以裁减kernel

就是说 因为 TI-RTOS 它其实

它比一般的可能很多人用过 CE

那个东西要大一些

但是说功能更全一点 就说因为我们

因为我们就说 RTOS 会不停的更新

会有一些变化或怎么样 对吧

你们如果可以根据那个我们的那个更新之后

每次你可以重新安装然后可以看到它里面文档

什么东西加了什么减什么 修理什么bug

所以那 Zero-latency interrupts

就是那个 这其实也没有什么

我觉得这些东西都没有 本质上都没有什么特别

就是 RTOS 它当然会有一些中断处理

但因为大家都知道 有那个 RTOS 它无非就是调度 任务分配

然后那个各种切换 上下文切换 然后加那个

加一些什么 Timer 什么这些东西在里面

那这些都是其实都是 RTOS 的本质属性

所以我也在这里多说了

我想说的就是说是我们的那个这边 好

这两块是比较特殊的 就是因为针对我们TI的cc26 13

或者是那个3200的那个硬件

我们上面有很多外设嘛对吧

一般情况下大家拿到芯片之后 就是就拿到一颗芯片

比如说唉我用了其它的那个

自己原来有的 比如说Free RTOS

或者corse这些东西(9:08)

然后后来移到我们的

比如说移到自己的 MCU 上面

然后发现唉它可能不支持所有的 MCU 的一些驱动

它不可能支持那么多 每家都不一样

所以它就你就得

如果你要去调这些什么 GPIO 的驱动

或者UART SPI这个东西的时候

那你可能得又要去配寄存器什么什么

跟它那个 跟你的那个 MCU 的 Guide 的对吧

那个 Datasheet或者是那个 RTM 来

RTM 来 那 TI 做的是什么东西呢

就是我们在 RTOS 上面

因为这些芯片都是我们自己的 对吧

RTOS 也是我们自己

然后它会把所有的驱动都封装成 API

然后提 就是说提供出来 就比如说UART

等于叫 open 然后Read Write 这样就可以了

不要再定义寄存器 一开始就什么都不需要

可能就感觉有点像 Windows 编程那种

包括那个刚刚前面提过那个射频的一些

私有的一些指令

什么都是以 API 的形式在我们 TI-RTOS 里面

所以这个是比较方便很友好的界面

另外一点就是我们有那个 Power Management在里面

就是那个 TI-RTOS 里面

这个就是说是 因为是低功耗射频设备设备

所以这个东西尤其重要 在那个我们的那个

在我们的整个那个系统里面

所以大家有兴趣 就是这个可以去看一下

就是我们是怎么

因为我们有不同的那个 Power Mode

在不同 Power Mode 下面

我们这个 RTOS 它会自动

因为 RTOS 一直在运行 它会自动去切换

就是说打开关闭哪些外设 就是你可以预先设置

就是说你需要在某个模式下面

哪些外设还是工作的 哪些外设就不需要了对吧

然后你设置好之后

这个 RTOS 它会Power Management

它会自动帮你 那个在你运行过程中

就是到不同模块模式切换的时候

它就会进入不同的这种功耗模式

打开关闭某些设备外设什么这些东西

然后 CCS 里面我们提供了一个叫 System analyzer

其实也是 RTOS 的

要结合 TI- RTOS 可以看到的就说是这个比较重要

就也比较蛮好玩的就是你可以看相当于一个

你比如说你内存用了多少对某一个 Task 用多少

最峰值的时候用多少内存 平均用多少内存

什么类似这种东西可以去看一下 CCS 里面

TI 提供的工具 首先是我们 SmartRF Studio

这是一个 其实是一个通用的工具

它用 Sub-1G 上面可以用

然后用我们的那个 ZigBee BLE 都是可以用得上

然后跟原来的那个 SmartRF Studio 一样

现在是7 以前有6什么的一样

它就是说是它能有产生

那个能产生相关的那个 Code 的

你可以直接导到你工程里面去

然后就可以在那边配一下一些命令

这些以前是寄存器对吧

现在应该都是那个这些这个命令

就是 API 这么很简单很直观的设置频率

什么是 TX 模式 然后那个就是说

那个开始接收发送 这些东西都是在这边 很简单

那就是说这就是你设置好之后

它产生出了那个代码

也可以把它打到你们那个工程里面去

它会有 SmartRFstudio.c 文件

SmartRFstudio.h 很简单 Sensor Controller

跟那个26xx里面是一样的我们有 2K 的 SRAM

就是说它自己跑的 然后那个前面提到过的

8.2 uA/MHz 的那个运行 可以

就是可以32kHz 24MHz里面运行

它说是32kHz的话 效率比较低

因为我们的这个一般低功耗

低功耗射频设备里面都会有两个晶振对吧

一个32kHz的一个24MHz

32K就是RTC 24MHz的话

就是我们这个 Sensor Controller

它最好是在目前来看

是在24MHz下面运行的话是比较最好的

因为它效率高

然后很少时间就执行完了之后

就是那个功耗相对来说比较低

然后它可以进入这个睡眠模式

这样然后把其它事情丢给那个 M3 去处理

那效率会高 所以我们有一些

就是你下载完 Sensor Controller Studio这个工具之后呢

然后你打开 然后我们里面就有一些现成的一些

那个实例代码在那边

就说有 Motion Detector

就是你那个移动的

那个然后有那个 Capacitive touch的

那个我们忘了说

就是我们的那个2613都支持 Capacitive touch

那个代码 还有Proximity Sensor 还有什么加速器

还有那个 ADC 采集的一个数据

还有就是那个 Pulse counting

就是那个脉冲计数的实际代码

就其实都是很多都是跟 Sensor 是有关的

基本上都是跟Sensor有关的 应该

就在打开这个Sensor Controller Studio

你可以把这些实例工程导进去

然后看看其实就很简单

就一个开始设置 然后执行 然后结束了

就分这三段 我在这里不多不仔细讲

反正就你们看一下工程就知道了

然后就是它那个界面可以看到

你可以就是 open existing project

打开之后对吧 然后就可以看一下里面的一些东西

这是一个 Example 我们有的这些

就说 Capacitive touch ADC 采集这些在这边

那就说 TI 的13xx系列呢

就是还导入了一个叫做 Command Chaining的一个概念

这是什么东西呢 就原来我们的

像老的一些1110这些东西里面是没有这个东西的

这是干嘛呢 就是说是原来的话你可能要接收

要发送你的一个就是说去配那些那个命令

等待什么 到时候比方这个我们是一个就是命令链

我们叫做 所以叫做就是说你可以比如说每一个动作

比如说你设置频率 然后 RX 然后再等等什么什么

就你可以把这些命令

我们13xx它就提供了接口 可以 就是软件接口

就可以让你把这些命令串起来 就一个连一个

一个连一个 你可以 所以它可以让它去自动执行嘛

你就是设置完那个 frequence 之后

你就可以直接它会自动的

比如说你设计一个Timer 或者 Counter

然后什么时候进入 RX 它就把那个窗口打开

就等到那个对方数据过来 然后就相当于就是说

这个怎么说呢 在我的理解来看

就是说这样的话 就是说你类似于可以

像蓝牙一样定义自己的一个 Profile

相当于你可以定义一个

整个完整的就是两边的一个交互的数据流程

或者怎么样 对吧设置完之后

然后让 M3 去执行就可以了

就很简单去控制它怎么怎么样执行

所以这个的话 我们有一个就是等会儿

我可以给大家看 就是那个等会就会有一个slice

这边讲到这个 我们这个 command 的一个结构

一个结构里面它有一个比较重要的

就是一个 Next command pointer

就是就是连起整个就命令链的一个关键

就是你的这条命令 我里面有一个 pointer

是指向下一条命令的那个地址的是这样

然后会不会有一些 实际的例子可以给大家看

然后Start triggers 就是怎么样Start

你要 Delay execution呢

就是说 还是说是 就是还是就 Delay

相当于你用内部的一个 Timer

这种过一会去执行呢 还是说是外部的一个

比如说是 IO 触发它 开始执行整条命令

不是 执行一遍 也一样的 还有一个 End trigger

就是说你命令开始到整条命令链结束完

它是有一个 Time out 呢

还是说是有一个也是外部的一个可能

就是说事件触发里面 我不要说了

停止接收或停止发送这样一个东西

所以可以看 就是说接着往下看

就是这是个命令的一个架构

很重要的就是 Specific Data 就是命令的

这个命令的数据 这上面是命令的 Header

就是那个头 我们所有的那个刚才讲到了

什么 pointer 什么乱七八糟

都在这个头里面 就是头的那个情况

Command number ID number Status 就是其他的一些状态

关键就是说这个就是 pNextOp

这点 这个就是说是下一个要执行的指令

把它地址它放到这边 然后那个 Start Timer

就是那个什么时候去执行这个命令

然后 trigger 比如说它有各种trigger的

现在有TRIG_NOW NEVER ABSTIME

就是说跟前面那个设定是有关的

Absolute time 还是 relative time

它相对时间还是这种绝对时间

就是那个CPU系统里面的那些东西都

都可以这样跟着它去设

然后 condition 就说是就是那个状态嘛对吧

就是说你下一个指令

你是说是永远不执行或者说有

还是执行还是怎么样对吧

还是说在某一个状态下

它就停止命令这种 那具体的例子呢

其实这样的话就比较直观

首先就是说我们配置一个在那个 RX的一条指令

这是第一条命令 我们要执行那个命令

就是被 trigger 的命令

然后第二条命令就是 TX 命令

这是我们干嘛用呢

就是我们我们订一个类似于

比如私有的握手的一个协议

就是我发 就是私有握手协议

就是我先收一个数据 然后收一个收一包数据

然后再告诉对方 我就是收到这个数据

就是所以我先 RX 一下 然后再 TX 一下对吧

然后你可以就是然后把两头命令串起来

就是用那个pointer 然后那个我这边收到了

唉我觉得 RX 我觉得数据处理OK了

我就自动的发一个 TX 出去 中间可以判断

这个也是一样的 相对来的 就是说那个 TX

就是另外一端 我先发送 发送完了之后

我在这边启动一个 Timer 等嘛对吧

然后等 然后这都是 M0 里面的处理

M3 发给 M0 的那个事件那个命令

就是 M3比如发给 M0 TX 完了之后

M3 就睡觉了 然后 M0它就直接执行下面的东西

它就等着那个 RX

RX收到数据之后它判断如果是正确的

它可能就是有事情要处理 它可以把 M3唤醒

如果不对它可以回到 TX 重发

就是完全你们自己就是可以定义的

那种相当于把这个下条指令之前的 Timer错过去了

可以那个自己定义的一个就是命令链

那这就是 Retry Counter 什么意思呢

就是前面的我们再加一步 就是说你不能总是

我没收到对方的 ack 可我在不停的重发

不停重发这种对吧 那我可以加个 Counter

那就我重发或者等待对方接收几次以后

我这我就停止

认为这个包是丢了或错了或怎么样对吧

所以一样的先 TX TX 完了之后

它指向下一条命令就是等待 RX

如果 Timer Out之后我就开始Count记一次

然后重新来 TX 再等 RX然后又没收到

然后再 count

到了一定次数之后我就停掉了

我就认为这个就不对了对吧

就是这样很简单 那就是这个就是另外一种情况

就是当然刚才我们说的可能 就是说是我没有设置

只设置了一个频段对吧 我们有多种频段

因为这完全是就是可以自己配置

你可以在一个频段上先设置

然后接收完 然后再设置另外一个可以呢再发送

这样都是命令链这样下去

你就先设置好 然后丢给 M0去处理

然后它收到了正确的 ack 之后再唤醒 M3

这样就是说达到我们这种低功耗的目的

不停的可以循环

你也可以这样执行完一次就结束了

其实就相当于我们

你可以想象就是因为我们 BLE 里面

BLE 里面就是跳频了嘛对吧

它每次发时候它接收发送完一个频段之后

它就会切换到下一个 我们有 Channel Map 对吧

我们知道下次应该跳到哪个 Channel上去

其实你也可以认为

其实 BLE 里面本质上做的是类似这种事情

当然其它 我们这边是 Sub-1G 的

就是 1GHz 以下的那个平台上面它这样做

视频报错
手机看
扫码用手机观看
收藏本课程
  • WCS (4.2b) CC13xx CC26xx Schematics (2) 未学习 WCS (4.2b) CC13xx CC26xx Schematics (2)

视频简介

WCS (4.2b) CC13xx CC26xx Schematics (2)

所属课程:WCS (4.2b) CC13xx CC26xx Schematics (2) 发布时间:2016.04.01 视频集数:1 本节视频时长:00:36:14
TI 微控制器 (MCU) 在世界各地帮助塑造系统,推动迅速、环保、智能和富于乐趣的设计进步。让 TI MCU 帮助您实现这一目标。从低功耗 MSP MCU 和高性能 C2000™ 实时控制器到用于功能安全的 32 位 Hercules™ARM® MCU 以及Cortex®-M4 MCU,TI 提供了种类繁多的嵌入式控制器产品以满足您的设计需要。TI 的 MCU 产品系列具有各种通用的可靠选件,能够满足客户在不断变化的技术世界中的需求。
TI培训小程序