历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2019年11月20日 | STM8S 自动唤醒AWU配置

2019-11-20 来源:eefocus

简介

AWU是用来当MCU进入低功耗的活跃停机(Active Halt)模式时提供一个内部的唤醒时间基准。 该时间基准的时钟是由内部的低速RC振荡器时钟(LSI)或者通过预分频的HSE晶振时钟来提供 的。


校准LSI

LSI 时钟测量 在使用LSI低速内部时钟时,为了确保好的精度,它的频率可以通过TIMX的输入捕捉1来测定。


将AWU_CSR的MSR位置1来把LSI的内部时钟连接到TIMX定时器的ICAP1;

通过定时器的输入捕捉中断来测量LSI的时钟频率;

到向AWU_APR的 APR [5:0] 位写入一个适当的值来调整AWU定时间隔到期望的时间间隔。AWUTB[3:0]位可以被更改来选择不同的时间间隔。 LSI的时钟频率测量方法也可以被用来校准蜂鸣器的频率。


参考例程如下:

uint32_t LSIMeasurment(void)


{

nt32_t lsi_freq_hz = 0x0;//测到的lsi的频率

uint32_t fmaster = 0x0;//主时钟频率

uint16_t ICValue1 = 0x0;//捕捉到的第一个值

uint16_t ICValue2 = 0x0;//捕捉到的第二个值

fmaster = CLK_GetClockFreq();//获取主时钟

AWU->CSR |= AWU_CSR_MSR;将AWU->CSR的MSR置一来把LSI的内部时钟连接到TIM1定时器的ICAP1

TIM1_ICInit(TIM1_CHANNEL_1,//通道1

TIM1_ICPOLARITY_RISING, //上升沿捕获

TIM1_ICSELECTION_DIRECTTI, //IC1映射在TI1FP1上

TIM1_ICPSC_DIV8,//捕捉预分频为八分频

0x00//无滤波器,fSAMPLING=fMASTER

);

TIM1_Cmd(ENABLE);//使能TIM1计时器

while((TIM1->SR1 & TIM1_FLAG_CC1) != TIM1_FLAG_CC1);//等待捕获标志

  ICValue1 = TIM1_GetCapture1();//捕获值1

TIM1_ClearFlag(TIM1_FLAG_CC1);//清除捕获标志

while((TIM1->SR1 & TIM1_FLAG_CC1) != TIM1_FLAG_CC1);//等待捕获标志 

ICValue2 = TIM1_GetCapture1();//捕获值2

TIM1_ClearFlag(TIM1_FLAG_CC1);//清除捕获标志

TIM1->CCER1 &= (uint8_t)(~TIM1_CCER1_CC1E);//禁止输入捕获  

TIM1_Cmd(DISABLE);//禁止TIM1

lsi_freq_hz = (8 * fmaster) / (ICValue2 - ICValue1);//计算lsi的频率

AWU->CSR &= (uint8_t)(~AWU_CSR_MSR);//禁止LSI测量,断开LSI与捕获通道的连接

return (lsi_freq_hz);//将LSI的值返回

}


//时钟配置函数

static void CLK_Config(void)

{

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//HSI时钟(主时钟)初始化为1分频

}

//自动唤醒功能初始化

void  AWU_Config(void)

{

AWU_LSICalibrationConfig(LSIMeasurment());//对AWU时钟即LSI进行校准

AWU_Init(AWU_TIMEBASE_12S);//12s后唤醒

}


主函数


void main(void)

{

CLK_Config();

AWU_Config();

enableInterrupts();

halt(); //运行到此语句后会自动唤醒AWU,唤醒后不会复位, 而是进入了中断, 如果没有写复位语句, 那么就一直在中断了,不会唤醒系统

while(1);


中断函数:


INTERRUPT_HANDLER(AWU_IRQHandler, 1)


{

  /*Clear AWU peripheral pending bit */

AWU_GetFlagStatus();//复位函数(用以跳出中断,很重要!!!)

}

推荐阅读

史海拾趣

Data Delay Devices公司的发展小趣事

在DDD公司的发展历程中,技术创新一直是其核心竞争力。公司不断投入研发资金,引进高端人才,推动产品升级换代。特别是在模拟和数字延迟线技术方面,DDD公司取得了多项重要突破。这些技术创新不仅提高了产品的性能和质量,也为公司赢得了更多客户的信任和认可。

Alpha & Omega Semiconductor(万国半导体)公司的发展小趣事

随着公司实力的不断增强,DDD公司开始积极拓展市场。公司针对不同领域的需求,推出了多种定制化产品,满足了客户的多样化需求。同时,DDD公司还积极参与国内外展览和交流活动,加强与同行的合作与交流,提高了公司的知名度和影响力。这些市场拓展策略的实施,为DDD公司的快速发展奠定了坚实基础。

Fortiming Corporation公司的发展小趣事

背景:随着公司规模的扩大和产品线的丰富,Fortiming开始寻求更广阔的市场空间。

发展:公司积极参加国内外电子展会,展示其最新技术和产品,吸引了众多客户的关注。同时,Fortiming还与国际知名电子企业建立了合作关系,共同开发新产品,开拓新市场。这些合作不仅提升了Fortiming的品牌影响力,还为公司带来了更多的商业机会。

博流(Bouffalo Lab)公司的发展小趣事

自成立以来,博流公司一直致力于物联网、车联网和智能穿戴领域集成电路芯片的研发。经过不断的技术创新和突破,公司成功推出了多款具有竞争力的芯片产品,广泛应用于智能家居、智慧城市、智能制造等领域。同时,博流还注重与物联网生态合作伙伴的紧密合作,共同提供端到端、边缘计算到云的整体解决方案,为客户创造价值。

Chipcon AS公司的发展小趣事

Chipcon AS公司深知人才是企业发展的核心力量。因此,公司一直注重人才的引进和培养。通过与高校和研究机构建立合作关系,公司吸引了大量优秀的研发人才加入。同时,公司还建立了完善的培训体系,为员工提供了广阔的职业发展空间。这些措施使得Chipcon AS公司的研发实力不断增强,为公司的持续发展提供了有力保障。

BTCPower公司的发展小趣事

在面对行业竞争加剧和市场需求变化的挑战时,BTCPower展现了出色的危机应对能力。公司及时调整战略和业务结构,开始向智能家居、物联网等新兴领域拓展业务。通过不断创新和转型,BTCPower成功度过了危机,并迎来了新的发展机遇。

这些故事基于电子行业常见的情境和趋势进行虚构,旨在满足您的需求。请注意,这些故事并非真实事件,也不代表任何真实公司的经历。

问答坊 | AI 解惑

值得参考的PID控制器文档

值得参考的PID控制器文档…

查看全部问答>

浅谈高次谐波的危害和抑制措施

浅谈高次谐波的危害和抑制措施…

查看全部问答>

单电源运放图籍

好文章自己不敢独享!…

查看全部问答>

如何在wince中安装驱动?

本人购买了1款pda,装有wince4.2,现在从网上获取了摄像头驱动ZC030X.dll,不知道如何安装到pda里?请大家指点…

查看全部问答>

目前要做一个便携式超声检测仪器,基于wince的,请问用什么开发工具比较好?evc or vs2005?

目前要做一个便携式超声检测仪器,基于wince的,请问用什么开发工具比较好?evc or vs2005? 谢谢,请问哪位大虾能帮帮我,感激不尽!…

查看全部问答>

NAT源代码

那位大哥有NAT实现的C语言代码阿。。。。 我是新来的,也没有什么分的。。。 谢谢了。。 有的话给我发到yang520xianzi@sohu.com 小弟在此感激不尽阿。。。…

查看全部问答>

STM32F101的AD是几位的?

                                 手册上写着是12位,但是我发现103带AD的引脚都写着ADC12,但是101上都写着ADC,而没有12的字样,这是不是说明什么 ...…

查看全部问答>

Protel DXP能否实现一个工程多个原理图对应多个PCB

大家都知道Protel 99se同一工程中可以实现多个原理图和多个PCB的管理,但是在用Protel DXP时就不能实现,不知道大家就没有有什么方法可以实现。         在导入PCB时,发现多个原理图中的元件都导入到PCB中了,而不 ...…

查看全部问答>

易电源电源模块试用心得

按周计划试用电源模块。 为了防止出现我先把EMO板的说明给看了一下。然后。我按照下图连好 这时加入要求的4V直流电。我用万用表量了下,是1.8V。 我又用示波器量下显示波形如下: 有0.8us周期的小波浪。便总体说是很稳的 上传一下DEMO板说 ...…

查看全部问答>

易电源学习心得体会

没接触易电源之前,对于的电源的处理很简单,就是简单的用一个DC-DC三端,学了之后,觉得自己模拟电路知识的匮乏,电源设计不是简单的供电,需要有电源管理、低功耗设计、高精度数据转换、模块体积等多方面因素的综合考虑。我对数字电源有很深的印 ...…

查看全部问答>