- 本课程为精品课,您可以登录eeworld继续观看:
- "小身材,大味道" - Timer
- 登录
- 课程目录
- 相关资源
- 课程笔记
那么我想给你大家讲讲的是我们的定时器
那么首先来看看我们定时器里面的第一个demo
我想大家都不会陌生啦
然后很多人会说我用我自己的主芯片里面随时都可以做一个RTC
或者说我要不要去买一颗外部的RTC芯片
比自己开发代码要方便很多
我为什么要用这样一颗MSP还要自己开发代码呢
我们来看看我们能做到一些什么样的功能和买一颗ASIC的RTC是不一样的
那么在我们的430里面来说的话呢
他所有的MSP430系列的产品全部都是基于TI铁电系列memory来做的
所以说我们的铁电跟大家所知道的铁电一样
他最大的特点就是方便写
第二他的特点就是功耗低
然后对于一般的芯片来说的话呢他一般写入的功耗都要达到毫安级别
但对于我们F-RAM来说 我们是微安级别的一个电流在完成这样一个操作
所以它非常适合于做一些相应的数据记录
在我们的这个demo里面主要的功能是
我们会通过URAT口 比如说你电脑上的URAT口
发送一个控制命令给到我这个芯片
说 我现在是几几几秒 你把时间记下来
然后我的芯片的话呢就把当前的这个时刻给记载在自己的芯片上
就像右边图上所显示的12 就是第12秒
当我记下来以后的话 我就自己在里面做本地的一个计时
这个之后有可能主系统可以去修理啊等这样的操作都可以
当主系统他要读系统时间的时候 他就可以发送相应的命令
在这里我们就用上位机演示为接受
这个时候呢我希望MSP430把当前这个时间再发回给我
然后我又把时间读出来了
我们可以看到读出来的这个时间第19秒
也可以看到整个我从发送让他把时间记下来
然后再到我读出来 看他做的对不对
整个过程都是非常简单
那我们这个25分钱芯片这个demo里面也就是帮大家实现这样一个功能
接下来我们看一个比这个略微复杂一点的
在整个一个大系统里面我们通常都会用到一些比如MSP430芯片呀
或者说RTC芯片啊
或者说我们会有一些小型的低功耗的芯片
做一些系统管理
来负责在需要的时间做整个系统的唤醒操作
那么在这里的话呢我们这个功能可以看一看右图
在这里我们假设有一个host的
MUC 假设他要进入低功耗模式之前 他会下一个RTC的start命令
抵达我的这颗芯片
芯片接到这个命令以后的话呢
我就会知道我现在要开始计时了
然后等双方约定好每次我收到RTC命令计时以后呢
我记5秒钟就把它唤醒 或记10秒钟把它唤醒
到计时时间以后 我就会发送一个唤醒命令给主系统
让主系统可以整个开始恢复工作
其实这个是非常典型的在大系统中通过一个小的芯片来做整个功耗和时序管理的方式
在这里我们的MSP430可以做点什么呢
那么如果你刚刚加入我们这个直播的话呢
可能前面的部分你没有听到
那么从现在开始我还是会把这部分步骤再给大家讲一下
第一部如果你觉得这个功能非常实用
那你可以到我们的网站上去下载这个源代码
这个完了以后在右边文件夹里面可以看到
会有相应的CCS
或者说IR环境下的项目工程
在你熟悉的开发环境里面打开这样一个工程
我这部分是需要你们这边做掉的
第二来说的话呢看看CI在整个代码里面为你做了什么
那么整个代码里面我们首先是在L口的外部中段里面做了一个相应的等待中断的操作
当我收到主系统一个L口中断的一个请求的时候
我就会使能自己本地的RTC开始计时
那么同时我们也会配置RTC中断
当RTC中断计时达到了主系统要求的时间的话
这个时候我就会在相应的唤醒引脚上面输出一个相应的电频
唤醒主系统
包括前面所有的初始化的部分
在我们的代码里面也全部给大家写好了
所以说大家可以不需要花其他的时间去研究TI的驱动怎么样用
去研究TI 的RTC怎样使能
研究我的中断系统是怎样一个结构
所有的这部分的工作在你要run这个demo的时间你都不需要去做相应的研究
第三部需要做什么呢
第三部你需要有一块我们这个现在非常便宜原件是9.9美金
现在是4.3美金的一款评估板
然后得到评估板以后跑一下我们的这个demo
在这个代码里面我们留了一个预定义字给客户自己设定
就是在我们的incremental的预定义字上面
会有你可以设定几秒钟或者10秒钟来把整个系统唤醒
这个需要你们来做的
然后如果在实际应用开发中还想更进一步去了解
我们里面的配置到底为什么这样做
那你可以打开我们的technical document来看一下原理是什么
在我的文档中非常详细的描述了为什么我们的incremental可以这样配
又如何来配合为我们的时钟系统和时钟架构
来完成这样一个秒定时的操作
整个来说的话呢 刚才我说的所有的功能的话呢
大家看看一共有多少字节呢
200个字节
这个在现在25芯片横行的时代里面
大家通常都已经习惯去用driver library或者用原厂提供的库来编写代码
可能有一个JPIO电镐的操作要很多的字节才能完成
但在我们TI的时代 我们为了让我们的客户所出的每一分钱都能值
我们仅仅用了200个字节就完成了上面所有所说的功能
但同整个来说 从系统级别来说的话
他的功耗非常低
用我们这样一颗MSP430来做这样一个唤醒
整个大家可以看到 现在这个页面上1秒 10秒 1分钟唤醒
1小时唤醒 整体的功耗都是在一个微秒左右
甚至比一个微秒更小的水平
所以430任然是一颗功耗非常优秀出色的芯片
并且所有的功能 我们不拼memory 我们只拼功能
除了这个之外 我们工程师不会让一个demo就结束了嘛
那通常我们还会有其他的什么需求呢
假设我们工程师说 我不想说我给你个信号以后
5秒钟你才把我唤醒
我想让你通过用绝对时间的方式来把我快速唤醒可以
或者说每次我唤醒的时候我能不能把这些值都保留到我们芯片的本地
记录在F-RAM里面 我看看他到底被唤醒哦了几次
在哪个时刻被唤醒的
或者说由主机给我们的芯片做时间校准
这些功能可以不可以做呢
其实有一些在我刚才讲的demo都已经包含了
通常我会说
idear和idear的碰撞可以产生yes idear
那我觉得对于TI来说我们这25种功能可能不同时跑在一个芯片上面
但是demo和demo之间的碰撞往往能够产生能够符合你实际设计应用需求的一个代码
所以说大家可以多多去熟悉下我们这种25种功能的代码
每个功能具体到底是怎么样的
来看一看是不是两三个功能一搭就能完成你的设置
除了刚才我们讲的RTC以及两种RTC的功能外
在整个系统级的设计里面的话呢 我们通常也会有这样一个唤醒控制器的一个需求
那么比如说 跟刚才demo不一样的是
现在我主机端他不是通过一个IO口来简单的触发计时
而是说我用通讯端口来做
那么不论你是用URAT口 SPI口 还是I2C都能达到同样的目的
那么当我用通讯口来做的话
往往我就能包含更多的信息量
包括我刚才所说的
比如说我要用绝对时间
来做这样一个唤醒
用主机端可以发送绝对的唤醒时间给到我的(听不清)
或者主芯片觉得430芯片用RTC32.768计时还不够精确的话呢
隔多长时间的话给我做一次校准
告诉你时间现在到底是怎样
这些所有的控制命令都可以在我们的芯片里面加上相应的功能而实现的
这个功能我个人也认为是非常实用的一个辅助类型的系统控制芯片的要求
并且他的功耗非常低
即时加上F-RAM的写操作他的功耗任然是业界最低的一款芯片
除了这个之外的话呢 还有一些watchdog的应用
当然市场上会有很多现成的外部的watchdog可以买啦
我觉得对于watchdog这样一个功能 我们的芯片做它真的是绰绰有余
那么为什么要用他呢
无非就是你已经看到我刚才介绍的demo其中一种功能辅助增加这样watchdog timer的功能
其实也没什么不好
帮你整个系统就省掉了很多成本
把一些小的功能全部放到我们这样一颗MSP430芯片里面
来完成他所有的零零碎碎的辅助功能
把你的其他的一些电压监控呀 看门狗呀 RTC啊 都可以合到430来做
而且比以前只用ASIC芯片达到更高级的功能
还有一些比如说工业客户也会有一些秒表倒计时之类的应用
当然啦 现在很多高端的新一类的显示已经做得很好看了
但很多工业应用里面的话 为了有这样一个很好的亮度
和显示效果的话
包括用这种代码式LDE显示效果
在这里呢 我们的MSP芯片也可以完成这样一个功能
整个来说的话呢 如果说是你想自己做 肯定也可以
但如果用TI 提供的功能的demo的话呢
其实5分钟 10分钟 外围电路一搭 整个demo就可以跑起来了
我把这个代码都是以源代码开放的的形式给大家的
刚才也有说到看门狗
外部的RTC 现在加上外部的电压监控
如果说是你最好用了我们MSP来实现其中一个功能的话
现在的话呢你也可以用我们这个芯片增加一个电压监控的功能
来节省你整体一部分的开销
那么整个来说的话呢我们做电压监控的功耗也非常低
大家如果有需要的话也可以自己下载我们PPT以后
通过点击我们的连接来拿到更多的一个信息
课程介绍
共计5课时,1小时4分9秒
直播回放:TI MSP430 铁电超值微控制器方案
EEWorld 论坛在本次精彩直播的基础上编辑整理,力求把 TI 专家的专业知识都传递给大家。全新的模拟外设; 25 美分实现 25 种功能; 开发板和相关 TI 设计方案。
《 限时福利 5 折 包邮 》:20多元人民币入 MSP430F ,
活动帖链接 https://bbs.eeworld.com.cn/thread-606852-1-1.html
猜你喜欢
换一换
推荐帖子
- 6733低功耗模式下SYSNMI_VECTOR中断能进去吗?
- 用的是6733芯片,想在SVMHIFG触发SYSNMI_VECTOR中断的时候进低功耗,在SVMHVLRIFG的时候出低功耗,但进低功耗再上电压后,SVMHVLRIFG置位了,SVMHVLRIE也设好了,但不进SYSNMI_VECTOR中断,仍然在低功耗中(用的是LPM3)。是不是如果要出低功耗,只有外部IO中断、通讯中断或者时钟中断才行?如果这样的话,那就在时钟中断里判断SVMHVLRIFG是否...
- dongliang45 微控制器 MCU
- 基于TI C6000的TCP/IP协议栈的研究与实现
- 本文来自:东北大学信息学院 李松 吴建华 《TI C6000DSP上TCP/IP协议栈的实现》 有适当删减。 摘要:针对TIC6000系列DSP网络开发工具NDK进行研究,结合TMS320DM642芯片详细描述了NDK的结构,讲述了利用NDK开发DSP网络应用程序的一般过程和实际应用中要注意的问题,并给出了NDK网络性能的测试分析,对于开发基于DSP的网络程序具有一定的指导作用。...
- fish001 DSP 与 ARM 处理器
- 多核处理器的核间通信机制
- 多核处理器由中断触发通信后,配置相应的寄存器,以完成通信。TMS320C6678主要的核间通信寄存器有16个, 其中8个IPC中断生成寄存器(IPCGR0~IPCGR7) 和8个IPC中断确认寄存器(IPCAR0~IPCAR7)。将IPC 中断生成寄存器IPCGRx(0≤x≤7) 的最后一位IPCG 位置1,就能产生对core_x 的中断;1~3位是保留位,4~31位(SRCS0~SR...
- Aguilera DSP 与 ARM 处理器
- 谁有msp430f5529驱动0.96寸的oled显示屏例程
- 我用的显示屏是0.96寸的oled(管脚GND VCC SCL SDA RST D/C),我用之前论坛里的程序怎么都不显示,用移植G2553的显示屏程序都是bug,谁能提供一份显示屏的库啊。 ...
- one55 微控制器 MCU