Skip to content

硬件部分

1 外部中断 ICU

ICU是中断控制单元Interrupt Controller Unit。

中断控制器单元(ICU)控制着一些事件发出的信号,从而链接到嵌套矢量中断控制器(NVIC)、DMA控制器(DMAC)和数据传输控制器(DTC)模块。ICU还控制着不可屏蔽的中断。 所以可以说围绕着 ICU 的有四个部分:NVIC、DMAC、DTC和NMI。

当中断来临的时候会最先经过IRQ寄存器,IRQ寄存器检测到中断的时候,会向中央处理嵌套向量中断控制器NVIC发送中断信号, 当NVIC检测到中断请求的时候,会将相应的中断服务函数进行挂起。之后将运行的八个寄存器进行压栈,压栈完成之后将中断服务程序进行激活。 之后将原先压栈的寄存器取出,继续运行之前的程序。

2 电源管理——低功耗模式

在很多应用场合中都对电子设备的功耗要求非常苛刻,如某些传感器信息采集设备,仅靠小型的电池提供电源,要求工作长达数年之久, 且期间不需要任何维护;由于智慧穿戴设备的小型化要求,电池体积不能太大导致容量也比较小,所以也很有必要从控制功耗入手, 提高设备的续行时间。 因此,RA芯片有专门管理设备的运行模式,确保系统正常运行,并尽量降低器件的功耗。

RA2L1支持3种低功耗模式:睡眠模式(Sleep Mode)、软件待机模式(Software Standby Mode)、贪睡模式(Snooze Mode)

2.1 睡眠模式

上电时,默认的低功耗模式即睡眠模式。睡眠模式是最方便的低功耗模式,它不需要任何额外的配置,只需要配置好用于唤醒的中断源。 在睡眠模式下,SRAM、处理寄存器和外设状态都会被保留,片上外设可以继续工作,进入睡眠模式以及从睡眠模式唤醒所消耗的时间都是极少的。 任何中断或者复位都会将MCU从睡眠模式下唤醒,并开始处理中断,这也包括Systick系统计时器,因此读者如果用到了RTOS, 进入睡眠模式前需要暂停Systick。

2.2 软件待机模式

在软件待机模式下,CPU以及大部分片上外设功能和所有内部晶振都停止工作。但是会保留CPU内部寄存器和SRAM数据的内容, 片上外设以及IO口的状态。软件待机模式可以显著降低功耗,因为大多数振荡器在这种模式下停止。 与睡眠模式一样,待机模式需要配置一个中断,并使用它来唤醒MCU。退出软件待机模式时,所有内部晶振都会被启动, 待所有晶振稳定后,MCU返回正常模式。

2.3 贪睡模式

贪睡模式与软件待机模式相似,但是在贪睡模式下,可以运行很多核心外设和所有时钟,可以执行一些比较简单的任务,与软件待机模式相比, 贪睡模式可以实现更加灵活的低功耗配置。