[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】+定时器休眠唤醒

[复制链接]
4102|13
 楼主| hjl2832 发表于 2021-6-1 21:53 | 显示全部楼层 |阅读模式
本帖最后由 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 | 显示全部楼层
利用任务计划实现 定时 ?
chenci2013 发表于 2021-7-2 21:32 | 显示全部楼层
单片机都有休眠状态  
biechedan 发表于 2021-7-2 21:32 | 显示全部楼层
空闲和掉电模式的  应用
isseed 发表于 2021-7-2 21:32 | 显示全部楼层
时钟芯片可以定时唤醒休眠状态的单片机吗
xietingfeng 发表于 2021-7-2 21:32 | 显示全部楼层
可以通过定时器来唤醒
suzhanhua 发表于 2021-7-2 21:33 | 显示全部楼层
看门狗定时器?         
mituzu 发表于 2021-7-2 21:33 | 显示全部楼层
单片机功耗很低  
hellosdc 发表于 2021-7-2 21:33 | 显示全部楼层
需要让单片机进入休眠模式,然后被唤醒。   
uiint 发表于 2021-7-2 21:33 | 显示全部楼层
PIC单片机的数据手册在哪里下载的
wangdezhi 发表于 2021-7-2 21:33 | 显示全部楼层
对应电池供电的产品,在不使用的时候,单片机和外设都应该进入休眠状态,用于减少对电池电量消耗
 楼主| hjl2832 发表于 2021-7-5 10:57 | 显示全部楼层
PIC的单片机,需要注意的是在休眠模式下,主时钟是停止的(即内部时钟和外部时钟都一样),这点不同于ST或其它厂家的芯片(它们的时钟,在休眠模式会自动转换成内部RC时钟,即主时钟不会停止),所以在休眠模式,定时器是不工作的,为了解决这个问题,芯片设计了TIMER1的SOSC模式(即定时器1可以使用外部32.768K的晶振,来实现RTC的功能,可以实现唤醒休眠),这里要注意,PIC单片机只有Timer1才有SOSC模式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

1087

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部