打印
[产品应用]

芯源MCU低功耗工作的疑问

[复制链接]
楼主: jf101
手机看帖
扫描二维码
随时随地手机跟帖
21
louliana| | 2024-10-4 20:06 | 只看该作者 回帖奖励 |倒序浏览
当发生中断或事件时,比如外部中断、定时器中断或其他特定的事件,MCU会被唤醒,CPU重新开始运行,并跳转到相应的中断服务程序(ISR)去处理这个事件。处理完毕后,程序可能会返回到之前的状态,或者根据需要继续执行其他任务。

使用特权

评论回复
22
beacherblack| | 2024-10-4 21:39 | 只看该作者
虽然外设可以独立工作,但它们产生的数据或事件可能需要CPU进行处理。因此,在需要CPU介入时,必须通过中断或事件机制来唤醒CPU。一旦CPU被唤醒,它就可以处理这些数据和事件,然后再次进入Sleep模式以降低功耗。

使用特权

评论回复
23
mmbs| | 2024-10-5 09:46 | 只看该作者
外设的工作通常由它们自己的时钟信号控制,这些时钟信号可以是主时钟的分频版本,或者是专门为低功耗模式设计的辅助时钟。

使用特权

评论回复
24
eefas| | 2024-10-5 11:21 | 只看该作者
在MCU的Sleep模式下,CPU停止运行通常意味着CPU的时钟被关闭,导致CPU无法执行指令。

使用特权

评论回复
25
robincotton| | 2024-10-5 13:00 | 只看该作者
通过关闭其时钟来停止运行,而外设则利用自己的时钟和控制逻辑继续工作,这样可以在保持系统响应能力的同时降低功耗。

使用特权

评论回复
26
mmbs| | 2024-10-5 14:40 | 只看该作者
对于支持DMA的外设,它们可以在没有CPU干预的情况下传输数据。
DMA控制器有自己的地址和数据寄存器,可以直接与内存和外设交换数据。

使用特权

评论回复
27
eefas| | 2024-10-5 16:18 | 只看该作者
在Sleep模式下,虽然CPU停止运行,但MCU的外设(如RTC/DMA/ADC/GPIO等)仍然可以保持工作。这是因为这些外设通常具有自己的时钟源和控制逻辑,可以在不依赖CPU的情况下独立运行。

使用特权

评论回复
28
wengh2016| | 2024-10-5 17:53 | 只看该作者
许多现代MCU设计允许外设在没有CPU干预的情况下独立运行。例如,定时器、实时时钟(RTC)、直接存储器访问(DMA)、模数转换器(ADC)和通用输入输出(GPIO)等外设可以在Sleep模式下继续工作。

使用特权

评论回复
29
alvpeg| | 2024-10-5 19:29 | 只看该作者
当进入Sleep模式时,CPU时钟会关闭,但外设时钟仍然正常运作。这意味着,即使CPU不再执行任何指令,外设如GPIO、UART、ADC等仍能正常工作并响应外部事件。这种设计使得MCU在保持低功耗的同时,还能对外部事件做出反应,从而实现更加高效的电源管理。

使用特权

评论回复
30
mattlincoln| | 2024-10-5 21:07 | 只看该作者
Sleep模式是一种低功耗模式,其中CPU内核完全停止运行。这不同于CPU的空闲状态或低功耗空闲状态,在后两者中,CPU可能仍然会进行一些基本的时钟周期活动或低功耗操作。

使用特权

评论回复
31
ccook11| | 2024-10-5 22:39 | 只看该作者
Sleep模式是一种低功耗状态,它允许MCU在不牺牲外设功能的情况下减少能耗。CPU的“停止运行”是通过暂停其时钟信号来实现的,而外设的“保持工作”则是基于它们自己的独立时钟和控制逻辑。

使用特权

评论回复
32
mikewalpole| | 2024-10-7 13:00 | 只看该作者
为了确保CPU能够在需要时及时响应外设产生的事件,MCU通常具有中断唤醒机制。当外设产生中断信号时,它会触发中断控制器,从而唤醒CPU并使其开始处理中断服务程序。

使用特权

评论回复
33
primojones| | 2024-10-7 14:46 | 只看该作者
在Sleep模式下,芯源MCU(如CW32系列)的CPU停止运行意味着中央处理单元(CPU)不再执行指令,即不再进行程序的顺序执行。这是通过暂停时钟信号到CPU来实现的,从而降低了功耗。然而,尽管CPU停止了运行,但MCU的其他部分,如外设(peripherals),仍然可以继续工作。

使用特权

评论回复
34
alvpeg| | 2024-10-7 16:22 | 只看该作者
这并不意味着整个MCU都停止了工作。实际上,许多外设仍然可以保持活动状态,因为它们可能有自己的独立时钟源或者能够在没有CPU干预的情况下继续运行。

使用特权

评论回复
35
eefas| | 2024-10-7 18:00 | 只看该作者
外设经常是事件驱动的,意味着它们可以在特定条件满足时自动采取行动,而不需要CPU的持续监督。

使用特权

评论回复
36
i1mcu| | 2024-10-7 19:33 | 只看该作者
在Sleep模式下,CPU的主时钟会被关闭或大幅降低频率。
这意味着CPU内部的指令执行会暂停,因为它不再接收时钟信号来同步操作。

使用特权

评论回复
37
fengm| | 2024-10-7 21:14 | 只看该作者
在Sleep模式下,CPU的主时钟可能会被关闭或者降低频率,导致CPU停止执行指令。CPU的内部状态(如寄存器内容)通常会被保持,以便在唤醒时能够恢复执行。

使用特权

评论回复
38
hmcu666| | 2024-10-7 21:16 | 只看该作者
当进入睡眠模式时,CPU当前执行的程序暂停,直到中断或事件唤醒CPU。

使用特权

评论回复
39
ulystronglll| | 2024-10-8 09:27 | 只看该作者
外设保持工作的原因在于它们通常有自己的专用时钟和控制逻辑,这些可以在没有CPU干预的情况下独立运行。例如,一个UART(通用异步收发传输器)可以在没有CPU直接参与的情况下接收或发送数据。这是因为UART有自己的状态机和缓冲区,可以在接收到数据时将其存储起来,直到CPU被唤醒后处理。同样,定时器可以在Sleep模式下继续计时,并在预定的时间到达时产生中断,唤醒CPU。

使用特权

评论回复
40
mmbs| | 2024-10-8 11:13 | 只看该作者
由于时钟停止,CPU的功耗会显著降低,这是使用Sleep模式的主要目的之一,以延长电池寿命。

使用特权

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

本版积分规则