This disclosure relates generally to electronics and more particularly to microcontroller systems.
Low power consumption is an increasingly important parameter for microcontroller systems. The active power consumption in a microcontroller system is normally dominated by switching activity in the circuit and is proportional to the clock frequency applied to digital logic. Analog modules also contribute a substantially fixed current consumption, which can dominate at low frequencies or in low-power modes. Clocked peripheral modules in the microcontroller system are typically unavailable in ultra-low power, unclocked sleep modes, forcing applications to rely on higher-power clocked modes.
Conventional power reduction solutions for saving power in a microcontroller require that the clock to the Central Processing Unit (CPU) or peripheral modules be switched off, typically by implementing one or more sleep modes in the microcontroller. This solution can be extended until all clocks and analog modules have been switched off, and only leakage current remains, which is typically several orders of magnitude less than active current. The disadvantage of this conventional approach is that the functionality of the device is reduced, since some peripherals are designed to operate with a clock running
A microcontroller system is organized into power domains. A power manager of the microcontroller system can change the power configuration of a power domain in response to event from an event generating module without activating a processor of the microcontroller system.
Particular implementations of the microcontroller system can provide one or more of the following advantages: 1) a microcontroller system can dynamically and flexibly change the power configuration of the microcontroller system power domains to a relevant power configuration, matching application requirements; 2) the microcontroller system can change a power configuration without intervention from a central processing unit, reducing power consumption and latency; and 3) the power manager can be configured by a user system to allow dynamic sequencing of changing the power configurations of different power domains.
The details of one or more disclosed implementations are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages will become apparent from the description, the drawings and the claims.
A power domain can be, for example, one or more modules drawing power from a same power supply, e.g., at a same voltage. The microcontroller maintains a power configuration for each power domain. A power configuration includes one or more parameters for a power domain specifying, e.g., a higher or lower voltage for the power domain, whether or not a clock is frozen for the power domain, whether certain modules are enabled or disabled or operating in a reduced state for a reduced voltage, and so on. Changing the power configuration of a power domain can adjust the power consumption of a power domain.
In operation, the power manager can change the power configuration of a power domain in response to an event from an event generating module, e.g., the ADC or the RTC. For example, the power manager can cause a power domain to exit a power saving mode so that one or more modules of the power main can execute operations. Then the module can generate a new event to the power manager, e.g., to revert the power domain to its previous power configuration or to change the power configuration of another domain.
The power manager can change the power configuration of a power domain without intervention from the processor. Hence, instead of changing the power configuration of the processor's power domain to support the processor for changing power configurations, the power manager can change power configurations based on events from event generating modules. This can reduce power consumption of the processor's power domain, and it can reduce latency in changing the power configuration of a requested power domain.
For purposes of illustration, consider the following example scenario. A user system of the microcontroller system configures the power manager, through a user interface 122, so that upon receiving an event from the RTC (e.g., every 1 ms), the power manager causes the third power domain 114 to exit a power saving mode so that the ADC can perform a conversion. Upon receiving an event from the ADC indicating that the conversion is complete, the power manager causes the fourth power domain 120 to exit a power saving mode. The user system also configures the RTC to generate an event, e.g., every 1 ms, and the user system configures the ADC, e.g., via a user interface 126, to generate an event at the end of the conversion.
Then, the user system causes, e.g., via the power manager, the third and fourth power domains to enter a power saving mode. Since the fourth power domain is in a power saving mode, the processor is frozen.
After 1 ms passes, the RTC generates an event to the power manager. The power manager causes the third power domain 114 to exit the power saving mode because the user system configured the power manager to do so in response to the event. The ADC then performs a conversion. At the end of the conversion, the ADC sends an event to the power manager. Then power manager then causes the fourth power domain to exit the power saving mode. The processor is then running
The user system can analyze the cause of the reset, e.g., whether the reset was a cold reset, a hot reset, or an ADC reset. The user system can analyze the cause of the reset via a reset controller user interface 124. In this example, since the ADC caused the reset, the user system will determine that the ADC caused the reset, so the user system can access the ADC to process the converted ADC value. For example, the user system can access the ADC via an ADC user interface 126.
For purposes of illustration, consider an example scenario where the ADC is configured to generate a second event (an “end of N conversions” event) after a number, N, of conversions. The N converted values are stored inside a local memory in the ADC. The power manager can be configured to that it causes the third power domain 114 to enter a power saving mode when receiving an “end of conversion” event, unless the power manager also receives an “end of N conversions” event.
The power manager can be configured so that, upon receiving an “end of N conversions” event, the power manager causes the fourth power domain 120 to exit the power saving mode, thus activating the processor. After the ADC reset, the processor can then clear the N converted values stores in the local memory of the ADC. In this case, the power manager can reduce by about N the overall power consumption compared to activating the processor after each ADC conversion.
Prior to time t1, PD[0] is configured to PC0, PD[1] is configured to PC1, and PD[2] and PD[3] are configured to PC2. At time t1, an event generating module sends an event to a power manager. The power manager is configured to change the power configuration of PD[1] to PC0 in response to the event, so after time t1, PD[1] is configured to PC0. For example, PD[1] may then be drawing a full system voltage and an active clock to perform some operations.
At time t2, the power manager receives another event. The power manager is configured to revert PD[1] to the PC1 power configuration, which can be a power saving mode. After time t2, PD[1] is configured to PC1. All of the changes of the power configurations can be accomplished without relying on a central processing unit and its associated power consumption.
Prior to time t1, PD[0] is configured to PC0, PD[1] is configured to PC1, and PD[2] and PD[3] are configured to PC2. At time t1, an event generating module sends an event to a power manager. The power manager is configured to change the power configuration of PD[1] to PC0 in response to the event, so after time t1, PD[1] is configured to PC0. For example, PD[1] may then be drawing a full system voltage and an active clock to perform some operations. At time t2, the power manager receives another event. The power manager is configured to change the power configurations of both PD[2] and PD[3] to PC0. At this point, all of the power domains PD[0]-PD[3] may be executing operations.
At time t3, the power manager receives another event, e.g., from a module in PD[0] or one of the other power domains. The power manage configures PD[1], PD[2], and PD[3] to PC2. PC2 can be, for example, a deep power saving mode. All of the changes of the power configurations can be accomplished without relying on a central processing unit and its associated power consumption.
The power manager powers off a first power domain of the microcontroller system (402). The first power domain includes a processor, e.g., a central processing unit (CPU). As a consequence of powering off the first power domain, the processor is inactive.
The power manager receives an event from an event generating module (404). The event generating module can be, for example, an ADC or an RTC. In response to receiving the event and prior to activating the processor, the power manager changes a second power domain from a prior power configuration to a new power configuration (406). For example, the power manager can cause the second power domain to exit a power saving mode, without activating the processor.
The power manager receives a different event from a different module of the second power domain (408). For example, the event can be an event from an RTC, and the different event can be from an ADC indicating that a converted value is available. In response to the different event, the power manager can optionally power on the first power domain so that the processor is active (410) and is running from its default reset state. A user system can then investigate the different event via the processor by looking at the reset cause.
The power manager returns the second power domain to the prior power configuration, or changes a power configuration of a third power domain, or both (412). The power manager can be configured by a user system to revert the second power domain to the prior power configuration or to change the power configuration of a third power domain. These different cases are discussed above with reference to
While this document contains many specific implementation details, these should not be construed as limitations on the scope what may be claimed, but rather as descriptions of features that may be specific to particular embodiments. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can, in some cases, be excised from the combination, and the claimed combination may be directed to a sub combination or variation of a sub combination.
This application claims the benefit and priority of U.S. Provisional Application Ser. No. 61/704,051, filed Sep. 21, 2012, the entire contents of which is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
4475134 | Bowden et al. | Oct 1984 | A |
4677566 | Whittaker et al. | Jun 1987 | A |
4703486 | Bemis | Oct 1987 | A |
5579498 | Ooi | Nov 1996 | A |
5623234 | Shaik et al. | Apr 1997 | A |
6163851 | Yamazoe et al. | Dec 2000 | A |
6175891 | Norman et al. | Jan 2001 | B1 |
6255878 | Gauvin et al. | Jul 2001 | B1 |
6320717 | Feng | Nov 2001 | B1 |
6393080 | Kamoshida et al. | May 2002 | B1 |
6462830 | Negishi | Oct 2002 | B1 |
RE38108 | Chee | May 2003 | E |
6754836 | Shimizu et al. | Jun 2004 | B2 |
6848055 | Yarch | Jan 2005 | B1 |
7203855 | Chou | Apr 2007 | B2 |
7391250 | Chuang | Jun 2008 | B1 |
7444530 | Deppe | Oct 2008 | B2 |
7514958 | Zhou | Apr 2009 | B1 |
7574683 | Wilson | Aug 2009 | B2 |
7770142 | Shmayovitsh | Aug 2010 | B1 |
7895458 | Kim | Feb 2011 | B2 |
7954078 | Wang | May 2011 | B1 |
7984317 | Conroy | Jul 2011 | B2 |
8001433 | Bhatia | Aug 2011 | B1 |
8190931 | Laurenti et al. | May 2012 | B2 |
8255722 | Pedersen et al. | Aug 2012 | B2 |
8352235 | Lin | Jan 2013 | B1 |
8683419 | Hines | Mar 2014 | B1 |
8791743 | Tang | Jul 2014 | B1 |
20030006807 | Masuda et al. | Jan 2003 | A1 |
20030177404 | Jorgenson et al. | Sep 2003 | A1 |
20030183024 | Lohberg et al. | Oct 2003 | A1 |
20030198108 | Hausmann et al. | Oct 2003 | A1 |
20040148548 | Moyer | Jul 2004 | A1 |
20040158773 | Kang | Aug 2004 | A1 |
20050083081 | Jacobson et al. | Apr 2005 | A1 |
20070260794 | Ashish et al. | Nov 2007 | A1 |
20080072094 | Hayano et al. | Mar 2008 | A1 |
20080189455 | Dreps et al. | Aug 2008 | A1 |
20080211559 | Tanaka | Sep 2008 | A1 |
20090089607 | Rodriguez | Apr 2009 | A1 |
20090089725 | Khan | Apr 2009 | A1 |
20090135751 | Hodges | May 2009 | A1 |
20090140876 | Shi | Jun 2009 | A1 |
20090144571 | Tatsumi | Jun 2009 | A1 |
20090153210 | Wang et al. | Jun 2009 | A1 |
20090204835 | Smith et al. | Aug 2009 | A1 |
20090256607 | Smith et al. | Oct 2009 | A1 |
20090259863 | Williams et al. | Oct 2009 | A1 |
20090259982 | Verbeure | Oct 2009 | A1 |
20100064160 | Wilson | Mar 2010 | A1 |
20100156458 | Speers | Jun 2010 | A1 |
20100192115 | Yang | Jul 2010 | A1 |
20100306570 | Uchida et al. | Dec 2010 | A1 |
20110022826 | More | Jan 2011 | A1 |
20110060931 | Radhakrishnan | Mar 2011 | A1 |
20110131427 | Jorgenson et al. | Jun 2011 | A1 |
20110138200 | Tomizawa | Jun 2011 | A1 |
20110208888 | Park | Aug 2011 | A1 |
20110221483 | Liu et al. | Sep 2011 | A1 |
20110252251 | de Cesare | Oct 2011 | A1 |
20110264902 | Hollingworth | Oct 2011 | A1 |
20110276812 | Lee | Nov 2011 | A1 |
20120017099 | David | Jan 2012 | A1 |
20120047402 | Chen et al. | Feb 2012 | A1 |
20120120958 | Mahadevan et al. | May 2012 | A1 |
20120161942 | Muellner | Jun 2012 | A1 |
20120268995 | Sugimoto et al. | Oct 2012 | A1 |
20130063114 | Agrawal et al. | Mar 2013 | A1 |
20130067250 | Wu et al. | Mar 2013 | A1 |
20130073878 | Jayasimha et al. | Mar 2013 | A1 |
20130097445 | Palaniappan et al. | Apr 2013 | A1 |
20130124895 | Saha et al. | May 2013 | A1 |
20130159776 | Gilday | Jun 2013 | A1 |
20130170413 | Chow | Jul 2013 | A1 |
20130339589 | Qawami et al. | Dec 2013 | A1 |
20140089706 | Menard et al. | Mar 2014 | A1 |
20140089707 | Jouin et al. | Mar 2014 | A1 |
20140089708 | Menard et al. | Mar 2014 | A1 |
20140122833 | Davis | May 2014 | A1 |
20140281648 | Russell et al. | Sep 2014 | A1 |
20140301152 | Cox et al. | Oct 2014 | A1 |
20140359044 | Davis | Dec 2014 | A1 |
20150082092 | Sarangi | Mar 2015 | A1 |
20150082093 | Sarangi | Mar 2015 | A1 |
20150095681 | Jouin et al. | Apr 2015 | A1 |
20150220678 | Srivastava | Aug 2015 | A1 |
20150378423 | Hanssen | Dec 2015 | A1 |
Entry |
---|
US Non-Final Office Action in U.S. Appl. No. 13/785,999, dated Mar. 25, 2015, 12 pages. |
US Non-Final Office Action in U.S. Appl. No. 13/789,902, dated May 15, 2015, 15 pages. |
US Non-Final Office Action in U.S. Appl. No. 12/400,690, dated Sep. 12, 2011, 7 pages. |
US Final Office Action in U.S. Appl. No. 12/400,690, dated Jan. 11, 2012, 7 pages. |
US Notice of Allowance in U.S. Appl. No. 12/400,690, dated May 9, 2012, 6 pages. |
Non-Final Office Action dated Apr. 9, 2015; U.S. Appl. No. 13/788,366, filed Mar. 7, 2013, 15 pages. |
US Notice of Allowance in U.S. Appl. No. 13/788,366, dated Oct. 13, 2015, 20 pages. |
US Notice of Allowance in U.S. Appl. No. 13/785,999, dated Sep. 10, 2015, 16 pages. |
US Non-Final Office Action in U.S. Appl. No. 14/043,445, dated Aug. 25, 2015, 12 pages. |
US Final Office Action in U.S. Appl. No. 13/789,902, dated Sep. 2, 2015, 18 pages. |
Number | Date | Country | |
---|---|---|---|
20140089714 A1 | Mar 2014 | US |
Number | Date | Country | |
---|---|---|---|
61704051 | Sep 2012 | US |