低功耗

在高速发展的物联网时代,创新与协作成为引领技术前进的关键所在。意法半导体与深圳创新微技术有限公司(简称为“创新微MinewSemi”)深入合作,基于STM32的BlueNRG及STM32系列芯片,结合创新微MinewSemi在物联网连接模块领域的研发技术和生产实力,共创适用于智能家居、智能制造、智慧城市等不同应用场景的多款低功耗模块,为物联网通讯及智能连接赋能。

本次STM32与创新微MinewSemi合作开发了三款低功耗模块,即低功耗蓝牙模块MS23SF1、MS53SF1和低功耗LoRa模块 MS53SF2,可广泛应用于物联网设备、可穿戴技术、智能家居、智慧农业等领域,解决客户在低功耗模块智能连接方面的应用痛点,为行业客户带来全新体验。

1.png

后续STM32与创新微MinewSemi还将持续深耕基于低功耗模块的物联网连接多场景应用,不断为市场带来更多前瞻性解决方案和应用技术,引领中国智能连接的生态发展。

强强联合,共创低功耗模块

低功耗蓝牙模块——MS53SF1

MS53SF1是基于高度灵活、超低功耗的BlueNRG-355MC SoC的BLE 5.2 LNA模块。支持主从同步连接,支持多主多从工作模式,能被(采集器、手持设备)主机连接的同时,还可与多个从机(外置负荷开关、各类外置传感器)建立并发数据连接。

模块特点:

  • 搭载BlueNRG-355MC芯片

  • 小尺寸(20x12x2mm)

  • 低功耗蓝牙5.2 LNA模块

  • 支持主从同步连接

  • 支持多主多从工作模式

  • 125kbps速率下透传距离可达500米

  • 支持ANT、BLE、BLE MESH、ZIGBEE和 THREAD等协议

2.png

STM32官网产品模块:>>点击查看

低功耗蓝牙模块——MS53SF2

MS53SF2基于BlueNRG-332AC的高度灵活、超低功耗、高性价比的无线BLE 5.3模块。支持高速率、长距离、广播扩展、信道选择算法、测向(AoA/AoD)等。在125kbps的数据速率,它在开放空间范围内透传距离最远可达500米。

模块特点:

  • 搭载BlueNRG-332A芯片
  • 小尺寸(20x12x2mm)
  • 低功耗蓝牙5.3模块
  • 可外置增加PA及LNA
  • 超远传输距离透传距离可达500米
  • 支持信道选择算法
  • 支持可选外置天线

3.png

STM32官网产品模块:>>点击查看

低功耗LoRa模块——MS23SF1

MS23SF1是一款LoRaWAN®收发模块。其选用STM32的LoRaWAN无线半双工SoC芯片STM32WLE5CC,支持全球ISM频率,具有低功耗、超远距离、易用小巧等特点,同时还可支持多接口(SPI、UART、I2C、DAC、ADC)。

模块特点:

  • 搭载STM32WLE5CCU6芯片
  • 小尺寸(20.72x19.13x3.2mm)
  • 内置主频48MHZ Arm Cortex-M4
  • 可编程比特率,内部RAM64KB,Flash256KB
  • 通信距离可达5KM
  • 多IO口,支持GPIO24
  • 最高功率可达到+20.5dBm,灵敏度低至-146dBm

4.png

STM32官网产品模块:>>点击查看

合作共赢、技术创新是在快节奏发展中取得成功的关键。STM32和创新微MinewSemi的通力合作,结合双方技术优势、生产实力、体系化产品认证等能力,互利共赢、推陈出新,开发推出更具创新性产品和解决方案,不断推动“万物互联”的生态发展,为中国智能连接生态的高质量赋能。

关于创新微MinewSemi

创新微MinewSemi是云里物里全资子公司,是一站式物联网无线连接模块供应商,专注于物联网连接模块领域的研发创新和生产,包括BLE、GNSS、Wi-Fi、LoRa、UWB、毫米波雷达等全面的物联网模块产品,广泛应用于智能家居、智能制造、智慧城市、医疗健康等十余个领域,以射频、通信、组网、嵌入式等科技赋能全球80多个国家和地区。

来源:STM32

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 32

本章中,我们主要对CKS32F4xx系列的待机模式(STANDBY)做详细介绍。在该模式下,芯片功耗最低,1.2V供电区域、PLL、HSI和HSE振荡器也完全被关闭。除备份域(RTC寄存器、RTC备份寄存器和备份SRAM)和待机电路中的寄存器外,SRAM和寄存器内容丢失。因此,从待机模式唤醒后,只能从头开始执行程序,那我们如何进入STANDBY模式及唤醒方式,可以按照下述表格中的步骤执行即可:

1.jpg

CKS32F4xx系列标准库把进入STANDBY模式这部分的操作封装到PWR_EnterSTANDBYMode函数中了,需要先通过PWR_CR设置PDDS位以及SLEEPDEEP位,使得芯片进入深度睡眠时进入待机模式,接着调用__force_stores函数确保存储操作完毕后再调用WFI指令,从而进入待机模式。需要注意的是,调用本函数前,还需要清空WUF 寄存器位才能进入待机模式。

RTC时钟简介

CKS32F4xx系列的RTC,是一个独立的BCD定时器/计数器,RTC提供一个日历时钟(包含年月日时分秒信息)、两个可编程闹钟(ALARM A和ALARM B)中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。两个32位寄存器包含二进码十进数格式(BCD)的秒、分钟、小时(12或24小时制)、星期几、日期、月份和年份。此外,还可提供二进制格式的亚秒值。系统可以自动将月份的天数补偿为28、29(闰年)、30和31天。并且还可以进行夏令时补偿。其它32位寄存器还包含可编程的闹钟亚秒、秒、分钟、小时、星期几和日期。此外,还可以使用数字校准功能对晶振精度的偏差进行补偿。RTC模块和时钟配置是在后备区域,即在系统复位或从待机模式唤醒后RTC的设置和时间维持不变,只要后备区域供电正常,那么RTC将可以一直运行。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在要设置时间之前,先要取消备份区域(BKP)写保护。RTC的框图,如下图所示:

2.png

采用RTC周期性唤醒STANDBY模式实验

程序设计主要要点如下:

① RTC初始化;

② RTC周期性自动唤醒;

③ 清除WUF标志位,进入待机状态。

1)初始化RTC配置函数

void CKS_RTC_Init(void)
{  
    uint16_t retry = 0x1FFF;   
    RTC_InitTypeDef  RTC_InitStructure;
    
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);   
    PWR_BackupAccessCmd(ENABLE); 
   
   RCC_LSEConfig(RCC_LSE_ON);     
   while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)    
   {    
       retry--;     
       Delay(0xffff);  
   }  
   if(retry == 0)  
   {    
       return 1;   
   }  
   RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);       
   RCC_RTCCLKCmd(ENABLE);   
   
   RTC_InitStructure.RTC_AsynchPrediv  =  0x7F;  
   RTC_InitStructure.RTC_SynchPrediv   =  0xFF;  
   RTC_InitStructure.RTC_HourFormat   =  RTC_HourFormat_24;  
   RTC_Init(&RTC_InitStructure);
}

在CKS_RTC_Init函数中,用来初始化RTC配置以及日期和时钟,但只在首次设置时间,随后重新上电/复位都不再进行时间设置(前提是备份电池有电)。为了时间更为精准,这里选用了LSE,即外部32.768kHz晶振作为RTC_CLK的时钟源,而RTC时钟核心,要求提供1Hz的时钟,所以接着是设置RTC_CLK的预分频系数,包括异步和同步两个,这里设置异步分频因子为ASYNCHPREDIV为(127),同步分频因子为ASYNCHPREDIV(255),则产生的时钟CK_SPRE=32.768/(127+1)*(255+1)=1HZ,即每秒更新一次。

2)RTC周期性唤醒配置函数

void RTC_Set_WakeUp(uint32_t wksel, uint16_t cnt)
{   
    NVIC_InitTypeDef   NVIC_InitStructure;  
    EXTI_InitTypeDef   EXTI_InitStructure;
   
   RTC_WakeUpCmd(DISABLE);  
   RTC_WakeUpClockConfig(wksel);   
   RTC_SetWakeUpCounter(cnt-1); 
  
   RTC_ClearITPendingBit(RTC_IT_WUT);   
   EXTI_ClearITPendingBit(EXTI_Line22);    
   
   RTC_ITConfig(RTC_IT_WUT, ENABLE);   
   RTC_WakeUpCmd(ENABLE); 
   
   EXTI_InitStructure.EXTI_Line = EXTI_Line22;  
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;   
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;   
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
   EXTI_Init(&EXTI_InitStructure); 
   
   NVIC_InitStructure.NVIC_IRQChannel = RTC_WKUP_IRQn;   
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;  
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;  
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;   
   NVIC_Init(&NVIC_InitStructure); 
}

在RTC_Set_WakeUp函数中,首先通过RTC_WakeUpCmd函数,关闭WakeUp,接着调用RTC_WakeUpClockConfig函数,配置WakeUp时钟分频系数及来源,然后通过调用RTC_SetWakeUpCounter,设置WakeUp自动装载寄存器,随后使能WakeUp,最后开启配置闹钟中断以及NVIC中断优先级。鉴于此处为RTC唤醒待机实验,仅做demo例程使用,因而不用编写中断服务函数。

3)芯片进入STANDBY模式

查阅CKS32F4xx系列标准库及相关手册,我们了解到使能RTC周期性唤醒,在进入STANDBY模式前,需要进行以下操作,代码如下:

void CKS_Set_Standby_Mode(void)
{      
    RTC_ITConfig(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA, DISABLE);   
    RTC_ClearITPendingBit(RTC_IT_TS|RTC_IT_WUT|RTC_IT_ALRB|RTC_IT_ALRA);   
    PWR_ClearFlag(PWR_FLAG_WU);    
    
    RTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits, 3);   
    
    PWR_EnterSTANDBYMode();         
}

在CKS_Set_Standby_Mode函数中,先禁止RTC中断(ALRAIE、ALRBIE、TSIE、WUTIE和TAMPIE等),接着清零对应中断标志位,以及清除PWR唤醒(WUF)标志,然后调用RTC_Set_WakeUp函数,设置每3s后唤醒STANDBY模式,同时该函数中也重新使能RTC对应中断,最后调用PWR_EnterSTANDBYMode进入STANDBY模式。

4)主函数配置

本例程中主函数主要对上文所述函数调用,程序编译下载至开发板,先进行相关外设初始化后,直接进入STANDBY模式,每隔3s由RTC唤醒,随即又进入STANDBY模式,循环往复,主函数代码如下:

int main(void)
{    
    CKS_RTC_Init();          
    while (1)  
    {            
        CKS_Set_Standby_Mode();      
    }
}

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 13

本课讲为大家讲解CKS32F4xx系列产品的低功耗模式之睡眠(Sleep)模式。MCU为满足某些应用场景:如小型化低容量设备,长期监测设备等,低功耗应运而生,其中根据需求,用户可以选择睡眠模式、停止模式及待机模式,今天本课将带大家一起配置睡眠模式。

电源系统及低功耗

首先,MCU要做到低功耗,必须要知道电源是怎么分配的,CKS32F4xx系列的电源系统框图如下所示:

1.png

电源框图中,第1部分是备份域电路,由VDD或Vbat电池供电,接入3V纽扣电池后,可保证VDD掉电时,能够保留关键数据。

第2部分为电压调压器供电,由于其输出约为1.2V,又称1.2V域。1.2V域给除备份域和待机电路以外的所有数字电路供电,在低功耗的三种模式中,1.2V域也对应三种状态:正常开启、低功耗和关闭。

第3部分为A/D转换器及参考电压供电,故为VDDA供电区,目的是使用独立电源能更好的滤波,从而提高精度,也可以在Vref上外接高精度电源,进一步提高进度。

所谓低功耗,即是关闭相应功耗路线,1)睡眠模式仅关闭第二部分中的内核时钟;2)停止模式关闭所有时钟,且调压器可选择正常开启或低功耗运行;3)待机模式关闭所有时钟以及调压器,仅保留备份域及待机电路;

外部中断唤醒睡眠模式验证

接下来举一个低功耗睡眠模式且由外部中断唤醒的例子,睡眠模式比较简单,直接调用编译器内置函数__WFE()或__WFI(),取决于使用事件唤醒还是中断唤醒;另外默认SCR(系统控制寄存器)的SLEEPDEEP位和SLEEPONEXIT位置0,效果是立即触发睡眠,如果将SLEEPONEXIT置1可以设置成中断退出后触发睡眠,也就是说内核将会只在中断内工作。

验证流程如下图,电源串联万用表电流档,直观比较睡眠模式开启前后的电流大小。

2.png

程序配置及中断服务函数

1)开启时钟及GPIO初始化如下,按键直连PE10,按下为低电平。

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE ,ENABLE);     
//开启按键GPIO口的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); 
//由于使用外部中断需要使能 SYSCFG 时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;           //选择按键PE10的引脚   
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;     //设置引脚为输入模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;  //不上拉也不下拉
GPIO_Init( GPIOE, &GPIO_InitStructure);            //使用上面的结构体初始化按键

2)总中断NVIC初始化如下,GPIO外部中断源一共对应7个通道,PX0~PX4分别对应EXTI0~EXTI4的5个通道,PX5~PX9对应通道EXTI_9_5,PX10~PX15 对应通道EXTI_15_10,故PE10对应中断服务函数EXTI15_10_IRQHandler()。

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);          //配置NVIC为优先级组1
NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;   //按键PE10使用中断源EXTI15_10
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; //配置抢占优先级:1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;       //配置子优先级:1
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;      //使能中断通道
NVIC_Init(&NVIC_InitStructure);                   //使用上面的结构体初始化总中断

3)外部中断配置如下,主要在初始化中对中断屏蔽寄存器EXTI_IMR及下降沿触发选择寄存器EXTI_FTSR配置,将EXTI_IMR的MR10位置1,可开放相应通道中断请求。

SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOE,EXTI_PinSource10); //连接外部中断源到PE10
EXTI_InitStructure.EXTI_Line = EXTI_Line10; //选择EXTI中断源
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //选择为中断模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //使能中断/事件线
EXTI_Init(&EXTI_InitStructure); //使用上面的结构体初始化外部中断:EXTI_IMR的MR10位置1等

4)中断服务函数如下,触发后验证标志位,确保发生的是外部线中断;其次外部中断线发生事件后,中断挂起寄存器EXTI_PR会置1,通过 EXTI_ClearITPendingBit再次在PR写入1,从而清除它,进入下一次外部中断等待。

void EXTI15_10_IRQHandler(void)
{  
    if(EXTI_GetITStatus(EXTI_Line10) != RESET)        //验证是否产生了外部线中断  
    {    
        Delay(0x1FFFFFF);                         //简单延时验证电流    
        EXTI_ClearITPendingBit(EXTI_Line10);         //清除标志位  
    }  
}

主函数及现象

Main函数首先初始化GPIO、NVIC中断、外部中断,进入主循环后先延迟观测电流,测得19.3mA,延迟后,__WFI()自动触发睡眠模式,电流测得13.3mA,如果不进行按键操作,MCU将一直睡眠,不再执行任何代码,此时按下轻触开关,触发外部中断,电流回升至19.3mA,睡眠模式唤醒时间无延迟,执行完中断服务程序后,会回到代码睡眠时的句段,继续执行。PS:如果需要设置成中断退出后触发睡眠模式,则将SLEEPONEXIT置1。

int main(void)
{ 
    EXTI_Config();      //配置及初始化GPIO、NVIC中断、外部中断  
    while(1)  
    {    
        Delay(0x1FFFFFF);        
        //SCB->SCR |= SCB_SCR_SLEEPONEXIT_Msk;  //如需设置成中断退出后触发睡眠模式    
        __WFI();            //进入睡眠模式,电流从19.3mA降至13.3mA  
    }
}

来源:中科芯MCU

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 7

啥是低功耗MCU?就是那种,嗯,就像一个纽扣电池可以用好几年…… 究竟是怎么做到的?

为啥别的MCU用纽扣电池只能运行几分钟?低功耗MCU咋就那么厉害?

很多人对这个事情可能只知其一不知其二哈。所谓的低功耗MCU也都是由参数指标来呈现的,只要记住几个关键概念就大致了解啦。

1、 MCU处于深度休眠模式的时候,所消耗的工作电流,一般是多少个微安?

2、 MCU从深度休眠模式唤醒后,进入高速运行状态所需要的时间是多少微秒?

3、 高速运行的时候所消耗的电流有多少微安每兆赫兹(uA/MHz)

4、 到底能不能很方便的把MCU内部那些不用的功能关掉,让它不消耗额外的能量。

具备以上几个特征的MCU,基本上都可以叫做低功耗MCU了,因为这个称谓,这个头衔,或者说这个概念,其实并没有绝对的标准去说 是就是,不是就不是,没有硬性的界限。

一个电池用好几年也没有多玄乎,这样的电器一般平时都是处于休眠模式,只保持了一个可被唤醒的状态,每次唤醒之后又快速解决问题,解决完了之后又马上进入了休眠状态。给人的感觉就像是:哎?这个东西是活的诶,每次要用的时候它就有功能,能用,但是它又不怎么耗电,一个电池用好几年。神奇吧

一个CR2032的电池,标准的容量有时候就200毫安时,若在200mAh的电流情况下,可持续使用1个小时,那么在1uA的电流情况下,可以使用多长时间呢?现在我们可以来算一下。

从理论上讲,比如我们有一个圆柱体容器,底面积代表电流大小,体积代表容量,则长度代表可持续使用时间。理想情况下,容量不变,电流越小,可持续使用的时间越长。经过单位换算与计算,可以算出理论上电流为1uA的情况下可持续使用时间约为22.8年。那么用电的电流只有不到1微安的话,理论上就是可以待机更多年的。

当然,这个电流也不是绝对的越低越好,最近这方面的竞争还是很卷。你做到了1微安的,那么人家能做到800纳安,然后又有一家做到了450纳安,最后还有做到150纳安的,这个其实是噱头大于实际了。

为什么这么说呢?

因为过于低的待机工作电流已经都没有实际意义了,所有人都知道这个电流不可能是无止尽的小,为了维持工作稳定,总是要消耗一点点电流的。做得过小反而不利于工作稳定。

实际上有很多客户自己都不知道自己的需求,一味地追求功耗参数而不考虑工作稳定或者其他因素,这其实是一种偷懒的作风,专业技术人员的格调可不应该这么低哟。

那CW32L是个什么情况呢?

CW32L系列的MCU,最低休眠电流450纳安。和别家产品单比这个数字的话,这不是最低的,但是这是芯源半导体团队经过精确实践验证过的,在这个工艺制程下,全温度范围要保证稳定可靠,那这个休眠电流就是最低的。

相关阅读:快乐解说MCU:CW32的工作电压特性

来源:CW32生态社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 171

导读

本期将为大家介绍一份应用指南,包括RX单片机进入低功耗模式的方法、注意事项和技巧等内容。以及对RX MCU硬件手册中的常见问题提供相应的说明,帮助您更好地了解硬件手册。

RX单片机低功耗模式区分与技巧

由于欧洲ErP指令和最近的能源状况等原因,人们开始关注和着手解决节能问题(如减少待机功耗),并将其作为决定产品价值的一大要素。

当然,人们对于嵌入到产品且耗电较大的单片机也提出了较高的要求,现在应该有很多客户正在通过低功耗模式来解决这一问题。

但您是否也曾为消耗电流的降低未达预期,苦苦思考也不得其解而困扰?

相信在大家正在使用的单片机中,有很多都是通过硬件支持低功耗功能的。RX单片机支持各类低功耗模式,如表1所示,具体取决于用途和规格。

表1 各类低功耗模式和工作状态

1.png

注1:在软件待机期间,SNOOZE模式会暂时恢复外围功能的运行。这样,在保持低功耗状态的同时,外围功能可以间歇运行。

例如,在软件待机模式下,除子时钟以外的振荡器和许多外围模块都会停止工作,从而显著降低功耗。另一方面,由于可运行的外围模块有限,因此用于恢复的中断因素受限,恢复速度也比休眠模式要慢。因此,您需要根据系统需求使用不同的低功耗模式。

此外,要实现低功耗,不仅要充分利用硬件功能,还要考虑软件。在进入低功耗模式之前,需要进行设置,例如关闭不需要的外围功能和降低时钟频率,并需要考虑将各端子设置为何种状态才能降低功耗,比如将上拉端子设置为H输出。

应用指南假设了是这些原因导致的消耗电流无法下降,并阐述了需要注意的要点和技巧。

此外,对于表2中的运行确认设备,还提供了一个示例程序,您可以立即确认每个低功耗模式下的电流消耗。将示例程序下载到您Renesas Starter Kit中搭载的单片机上,运行后就能进入低功耗模式,检查电流消耗情况。对于非Renesas Starter Kit基板和非运行确认设备的单片机,也可以参考本应用指南实现低功耗需求。

表2 各设备支持的模式

2.png

此外,如表3所示,为解除低功耗模式,除了可使用外部端子中断来实现之外,还可以使用实时时钟报警中断的方法,因此本例更加实用。

表3 使用的外围功能和用途

3.png

注1 仅限在基于RTC的软件待机模式下使用

注2 仅限在基于RTC的深度软件待机模式下使用

为了在您的RX单片机上轻松实现低功耗模式,应用于客户系统构建工作,您可点击下方链接查看RX产品家族应用指南。

https://www.renesas.cn/cn/zh/document/apn/rx-family-examples-transitioning-low-power-consumption-modes-rev120

更多资料

瑞萨RX产品家族网页:

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus

瑞萨电子开发板及套件网页:

https://www.renesas.cn/cn/zh/design-support/boards-kits

硬件手册使用指南

微控制器(即单芯片微型计算机,以下简称“单片机”)硬件手册对于配备有单片机的产品开发来说非常重要,是必须阅读的资料。但事实是,随着单片机功能的复杂化,手册的页数也会大幅增加,内容也会变得复杂。

内容越复杂,关于手册内容的疑问也就越多。另外,对于首次开发单片机的人来说,所有的文字看起来都犹如天书。

我们会继续提高手册自身的可读性,但为了尽可能完善现有手册的可读性,我们根据客户对硬件手册的常见问题,在硬件手册使用指南中补充了相应的阅读方法。

另外,即使是同样的表述,不同公司也会有不同的含义,所以我们希望大家能够通过本硬件手册使用指南理解RX是如何定义的。

本指南重点介绍了硬件手册中最重要的电气特性,特别是最大绝对额定值、建议运行条件和DC特性项目。本资料将进一步对AC规格、各类外围功能以及内容进行完善。

记载内容如下:

4.png

上图是最大绝对额定值的例子。

此处所述的输入电压标记方法等内容,相对来说存在较多的疑问。

例如,“-0.3~VCC + 0.3(最大4.0)”,如果只有这一句话,很难明白其含义是什么。本资料的目的正是针对那些需要具体说明的部分加以补充,以便您能更好地理解。

更快、更准确地了解硬件手册的内容将有助于提高产品开发的时间效率,防止基板开发后才能发现的各种缺陷。

下载不同产品的硬件手册时,即可在下方相关文件处找到本资料。(位于所要下载硬件手册的下方,仿佛助手一样对硬件手册进行补充说明)

5.png

强烈推荐您一并下载阅读,以随时查看,进而确保RX开发周期一切顺利。RX系列产品网页您可识别下方二维码或复制链接在浏览器中打开查看。

https://www.renesas.cn/cn/zh/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/software-tools/useful-information-rx-mcus

来源:瑞萨MCU小百科

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 18

本应用笔记介绍STM32MP1 系列器件的各种低功耗模式,以及如何配置和退出这些模式。本文档还提供了在系统级别使用低功耗模式以及使用外部STPMIC1x 功率调节器组件时需要考虑的一些指导。

详阅请点击下载《STM32MP1系列使用低功耗模式》

来源:ST
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 21

不断降低集成电路的功耗是集成电路发展过程中永不改变的主题。

降低功耗,有利于节约能源,延长待机时间,降低产品热量… … 毋庸多言,低功耗已经成为衡量产品优略的重要指标之一。

恩智浦官方通常推荐刚刚接触LPC芯片的客户,参考MCUXpresso SDK 自带的 power_mode_switch_lpc例程作为参考代码。使用这一经典例程,客户可以用串口终端控制MCU进入四种低功耗模式:睡眠模式(Sleepmode),深度睡眠模式( Deep Sleep mode),掉电模式(Power Down mode)和深度掉电模式(deep power down mode)。同时,用户还可以通过串口设置选择多种唤醒方式实现MCU的唤醒。

然而,我们经常有客户询问,官方提供的power_mode_switch_lpc例程测到的低功耗数值和数据手册标称的有不少出入。

例如用LPCXpresso845MAX 测试,在掉电模式(Power Down mode)下,如果没有断掉调试器,自测板子电流值可达到100uA左右, 而数据手册标称掉电模式下的典型电流值1.5uA,最大电流值10uA(见下图)。这是哪里出了问题?

“为什么我测到的低功耗电流和手册不一样?"

power_mode_switch_lpc例程的目的,是为了给客户演示LPC的几种低功耗模式及多种唤醒方式。

下面我们来一步步演示并修改该例程以得到数据手册的标称值。

实验环境:

DemoBoard: LPCXpresso845MAX

SDK:SDK_2.8.0_LPCXpresso845MAX

DemoCode: power_mode_switch_lpc

IDE:MCUXpresso IDE v11.2.0

步骤:

1、将power_mode_switch_lpc下载到LPC845开发板,启动运行。串口选择low power mode,wake (SW2按键) 唤醒。程序运行进入掉电模式,在调试器未断开情况下,此时实测Idd=99.5uA

“为什么我测到的低功耗电流和手册不一样?"

进入low power mode,程序使用了如下代码

POWER_EnterPowerDown(DEMO_ACTIVE_IN_DEEPSLEEP);

为了唤醒,参数DEMO_ACTIVE_IN_DEEPSLEEP配置了PDSLEEPCFG,将BOD和看门狗振荡器电源域打开了,导致了一部分电流的损耗,造成电源电流偏大。

2、这一步,我们将对应用于唤醒的初始化语句去掉,

// DEMO_InitWkt();

把下面一行进入掉电模式的代码

// POWER_EnterPowerDown(DEMO_ACTIVE_IN_DEEPSLEEP);

替换成

POWER_EnterPowerDown(0); //power down BOD and watchdog osc

修改后在掉电模式下关闭了BOD电源域和看门狗时钟,再次编译下载代码并再次进入掉电模式,此时实测Idd=57.3uA

“为什么我测到的低功耗电流和手册不一样?"

这样Idd明显降低了。然而57.3uA仍然和数据手册标称的典型值1.5uA相差很多。这是由于IDE的后台将MCU用于调试的电源域打开了导致了额外电流消耗。

3、我们将开发板脱机独立运行(断掉电源重新上电),进入掉电模式,此时实测Idd=1.4uA。

小结:

数据手册的低功耗电流参数的测量,是在MCU GPIO输出为低且禁止上拉,且所有振荡器及模拟域都被关闭的情况下测得的。

在对低功耗要求高的场合,用户需要仔细优化代码设计以得到最佳的低功耗设计。

来源:恩智浦MCU加油站
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 217

页面

订阅 RSS - 低功耗