打印
[PIC®/AVR®/dsPIC®产品]

【CuriosityNano测评报告】+定时器休眠唤醒

[复制链接]
3754|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 hjl2832 于 2021-6-1 22:26 编辑

很高兴收到CuriosityNano开发板,这一次,按照既定目标来进行测试 ,第一个目标,测试PIC18在休眠模式下的定时唤醒功能,我们通过浏览PIC单片机的数据手册能了解,PIC单片机要进行休眠模式后,主时钟是停止工作的,这点有别于ST的系列单片机(ST的芯片,在休眠模式时,主时钟会自动设为内部晶振工作)。这里可分别看数据手册的描述:
而为了满足休眠模式下的计时功能,定时器1设为SOSC模式可作为日历时钟作秒计时器用,实现定时计数及唤醒MCU的功能,官方的应用笔记里有关于怎么用TIMER1作为RTC时钟的示例。


首先,安装PIC单片机的开发环境,X IDE和MCC(IDE 的代码配置插件),这里大家都会,我就不列举了,只讲关于定时器配置及休眠唤醒相关的内容。
我们在进入IDE后,点击菜单栏的MCC图标,打开代码配置插件。
第一步:设置芯片的工作时钟,这里我设置为内部时钟4MHz,如下图所示:

第二步:分别点击左侧的芯片驱动列表,增加定时器1,串口1到工作区域,然后配置定时器1,在这里,为了保证定时器在休眠模式能正常工作,唤醒休眠模式,我们需要装定时器设定为SOSC模式,关于休眠模式下定时器的工作模式设定,我们可参考数据手册上的描述。为了启用定时器1的SOSC功能,我们需要先将板子上的32.768K晶振及负载电容焊上,同时还要短路晶振旁边的2个跳线点,将晶振连接到RA4和RA5引脚上。

按如下步骤配置定时器1:
1.设置工作模式为为SOSC模式;
2.设定定时时间为1S;
3.打开定时器中断;
4.设定中断回调为1S执行一次

第三步,配置LED接口的IO口功能为输出模式,通过查找原理图,我们知道开发板上的LED是连接到RC1端口上的,所以,这里我们配置RC1为推挽输出模式,为了方便后续进行测试,我们同时配置了RC0为外部中断输入模式,方便以后进行休眠电流测试。


第四步:配置UART1,在这里我设定波特率为19200,8N1模式

第五步:点击代码向导生成初始化函数

第六步,修改生成的向导代码,增加自己的功能,在这里我们的目标是测试PIC单片机在休眠模式下的定时器唤醒功能,所以需要进行以下操作:
1.在主程序中使能中断。
2.增加休眠函数,让单片机进入休眠模式。
3.在定时器1的中断回调函数中对LED控制端口进行取反操作,以便控制LED闪烁



第七步,编绎程序并下载到开发板,这时我们可以看到LED灯会按照1秒一次进行闪烁。










使用特权

评论回复
沙发
hjl2832|  楼主 | 2021-6-2 08:38 | 只看该作者
从视频上可以看到,在单片机进入休眠模式时的电流是16uA,这是因为我在程序里使能了ADC模块。激活后的工作电流(点亮LED时)为1.2mA,如果在程序中配置停止ADC模块,休眠电流会减小很多,我的第二步测试项目,就是会进行休眠电流研究。

使用特权

评论回复
板凳
pzsh| | 2021-6-28 16:03 | 只看该作者
功耗很低呀!

使用特权

评论回复
地板
gygp| | 2021-7-2 21:31 | 只看该作者
利用任务计划实现 定时 ?

使用特权

评论回复
5
chenci2013| | 2021-7-2 21:32 | 只看该作者
单片机都有休眠状态  

使用特权

评论回复
6
biechedan| | 2021-7-2 21:32 | 只看该作者
空闲和掉电模式的  应用

使用特权

评论回复
7
isseed| | 2021-7-2 21:32 | 只看该作者
时钟芯片可以定时唤醒休眠状态的单片机吗

使用特权

评论回复
8
xietingfeng| | 2021-7-2 21:32 | 只看该作者
可以通过定时器来唤醒

使用特权

评论回复
9
suzhanhua| | 2021-7-2 21:33 | 只看该作者
看门狗定时器?         

使用特权

评论回复
10
mituzu| | 2021-7-2 21:33 | 只看该作者
单片机功耗很低  

使用特权

评论回复
11
hellosdc| | 2021-7-2 21:33 | 只看该作者
需要让单片机进入休眠模式,然后被唤醒。   

使用特权

评论回复
12
uiint| | 2021-7-2 21:33 | 只看该作者
PIC单片机的数据手册在哪里下载的

使用特权

评论回复
13
wangdezhi| | 2021-7-2 21:33 | 只看该作者
对应电池供电的产品,在不使用的时候,单片机和外设都应该进入休眠状态,用于减少对电池电量消耗

使用特权

评论回复
14
hjl2832|  楼主 | 2021-7-5 10:57 | 只看该作者
PIC的单片机,需要注意的是在休眠模式下,主时钟是停止的(即内部时钟和外部时钟都一样),这点不同于ST或其它厂家的芯片(它们的时钟,在休眠模式会自动转换成内部RC时钟,即主时钟不会停止),所以在休眠模式,定时器是不工作的,为了解决这个问题,芯片设计了TIMER1的SOSC模式(即定时器1可以使用外部32.768K的晶振,来实现RTC的功能,可以实现唤醒休眠),这里要注意,PIC单片机只有Timer1才有SOSC模式。

使用特权

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

本版积分规则

26

主题

1018

帖子

4

粉丝