Changing power modes of a microcontroller system
Granted 15 Dec 2015 · 1 office action
Current assignee: Microsemi Corporation · originally Microchip Technology
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: Patrice Menard, Romain Oddoart, Sebastien Jouin, Mickael Le Dily +1 · Examiner: Thomas Lee · AU 2115 · TC 2100
Life of the application
27 dated eventsAbstract
A microcontroller system can operate in a number of power modes. In response to changing from a previous mode to a present mode, the microcontroller system reads a present calibration value correspond to the present mode from system configuration storage and write the present calibration value to a configuration register for a component. A logic block for the component reads the present calibration value and calibrates the component.
Description
8 parts›CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit and priority of U.S. Provisional Application Ser. No. 61/703,979, filed Sep. 21, 2012, the entire contents of which is hereby incorporated by reference.
›TECHNICAL FIELD
This disclosure relates generally to electronics and more particularly to microcontroller systems.
›BACKGROUND
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.
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. Microcontroller systems may require a number of internal calibration values. For microcontroller systems with one or more sleep modes, the number of internal calibration values rises. These calibration values are typically frozen and defined at the design level.
›SUMMARY
A microcontroller system can operate in a number of power modes. In response to changing from a previous mode to a present mode, the microcontroller system reads a present calibration value correspond to the present mode from system configuration storage and write the present calibration value to a configuration register for a component. A logic block for the component reads the present calibration value and calibrates the component.
Particular implementations of the microcontroller system can provide one or more of the following advantages: 1) when changing between power modes, the microcontroller system can perform a complex calibration process without intervention from a user system; 2) various calibration values for power modes can be stored in a system configuration storage, providing flexibility in adapting current calibration values and adding new calibration values; and 3) a user system (e.g., a user device coupled to the microcontroller system) can still override stored system calibration values.
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.
›BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of an example microcontroller system.
FIG. 2 is a conceptual diagram illustrating calibration values for four different power modes of a microcontroller system, e.g., the microcontroller system of FIG. 1 .
FIG. 3 is block diagram of an example microcontroller system including a user interface.
FIG. 4 is a flow diagram of an example process performed by a microcontroller system.
›DETAILED DESCRIPTION
System Overview
FIG. 1 is a block diagram of an example microcontroller system 100 . The microcontroller system includes three calibration registers 111 , 112 , and 113 , each coupled to a respective logic block 114 , 115 , and 116 .
The voltage regulator block 114 controls a voltage regulator that provides a voltage to, e.g., a flash memory module 117 . In some implementations, the voltage regulator provides a scalable output value. The voltage regulator block reads one or more configuration values and calibrates the voltage regulator. For example, the voltage regulator block can read a target voltage from the calibration register, or a control bit to control whether to operate in a higher or lower current capability mode.
The flash memory bias block 115 controls a bias voltage or bias current that is provided to the flash memory module. The bias voltage or current is used by the flash memory module, e.g., to generate a reference current for comparison with a current used to bias a memory cell. The flash memory bias block reads one or more calibration values and calibrates the bias voltage or current. For example, the flash memory bias block can read a target bias current or voltage from the calibration register.
The voltage reference block 116 controls a reference voltage circuit, e.g., a bandgap reference voltage circuit, that provides a reference voltage, e.g., to the flash memory module. The voltage reference block can read a control bit from the calibration register and enable or disable the reference voltage circuit.
The microcontroller system includes system configuration storage storing a table of calibration values 110 . The table includes calibration values for each of the voltage regulator block, the flash memory bias block, and the voltage reference block for various power scaling modes. The system configuration storage can be, for example, a reserved portion of the flash memory, e.g., a fuse table.
The microcontroller system may be configured to operate in either a primary power mode using a primary supply voltage or a secondary power mode using a secondary supply voltage. In some implementations, the voltage regulator provides the primary supply voltage or the secondary supply voltage or both. In some other implementations, the microcontroller system draws the primary supply voltage or the secondary supply voltage or both from an external source.
In some implementations, for each of the primary and secondary power modes, the microcontroller system may be further configured to operate in a run mode, in which the system operates with most or all of its functionality, or a sleep mode, in which some components or features of the system are disabled, e.g., to save power. In those implementations, in total, there are four different modes of operation: primary/run, primary/sleep, secondary/run, and secondary/sleep.
The table of calibration values includes, for each of the logic blocks and for each of the modes, one or more calibration values. Whenever the microcontroller system changes from a previous mode to a present mode, the microcontroller system reads the calibration values corresponding to the present mode from the table of calibration values and writes the calibration values to the appropriate calibration registers. For example, a power manager of the microcontroller can read and write the values upon changing modes.
›Example Power Configuration Scenario
FIG. 2 is a conceptual diagram 200 illustrating calibration values for four different power modes of a microcontroller system, e.g., the microcontroller system 100 of FIG. 1 . The diagram includes a row 210 a for the primary power mode and a row 210 b for the secondary power mode. The diagram also includes a column 211 a for a first sub-mode, e.g., a run mode, and a column 211 b for a second sub-mode, e.g., a sleep mode.
In the run mode of the primary power mode, the voltage regulator trim value 212 a is “normal,” the flash bias calibration value 213 a is “normal,” and the bandgap enable value is “on.” In the sleep mode of the primary power mode, the voltage regulator trim value 212 c is “normal,” the flash bias calibration value 213 c is “normal,” and the bandgap enable value is “off.”
In the run mode of the secondary power mode, the voltage regulator trim value 212 b is “low power.” The trim value or one or more other values can specify a target voltage lower than the normal voltage. The flash bias calibration value 213 b is “low power.” Because the flash memory module behavior can be affected by the power supply voltage, it may be useful to calibrate one or more of the flash memory module's parameters, e.g., the bias voltage or current, to obtain the best access time for each supply voltage. The bandgap enable value 214 b is “on.” In the sleep mode of the secondary power mode, the voltage regulator trim value 212 d is “low power,” the flash bias calibration value 213 d is “low power,” and the bandgap enable value is “off.”
In some implementations, the microcontroller system enters the run mode before changing between the primary or secondary power modes. For example, if the system is in the primary power mode and the sleep sub-mode, the system changes to the run mode before changing to the run sub-mode or sleep sub-mode of the secondary power mode. Similarly, if the system is in the secondary power mode and the sleep sub-mode, the system changes to the run mode before changing to the run sub-mode or sleep sub-mode of the primary power mode.
›Example System Including User Interface
FIG. 3 is block diagram of an example microcontroller system 300 including a user interface 311 . The system includes the logic blocks 114 - 116 of FIG. 1 and the calibration registers 111 , 112 , and 113 of FIG. 1 . The system also includes the table of calibration values 110 of FIG. 1 , stored in a reserved portion of flash memory 310 , e.g., a fuse table. The fuse table can be programmed at the factory during manufacturing the system.
When the microcontroller system changes between a primary power mode and a secondary power mode, or between a run sub-mode and a sleep sub-mode, the microcontroller system reads calibration values from the table of calibration values and write the calibration values to the configuration registers. The logic blocks, in turn, read the calibration values from the configuration registers and calibrate their respective components accordingly.
For example, a power manager module can read and write the calibration values, without any intervention from the user interface. This is useful, for example, because software does not need to be maintained or updated, and a user system does not need implementation details for the system.
Nonetheless, the user system can use the user interface 311 to override the calibration values that are written to the calibration registers. For example, a user system can populate a table of user values 312 , which can then be written, e.g., directly by the user interface or by processor or a power manager module, to the calibration registers. This is useful, for example, for user systems that require more specific control of the logic blocks and their respective components.
Example Flowchart-Changing Power Configurations
FIG. 4 is a flow diagram of an example process performed by a microcontroller system. The microcontroller system can be the microcontroller system 100 of FIG. 1 and can include, for example, a power manager module or a processor.
The microcontroller system operates in a primary power mode using a primary power supply voltage ( 400 ). The primary power supply can be, for example, a system voltage. The microcontroller can operate in either a first or second sub-mode of the primary power mode, e.g., a run mode or a sleep mode.
The microcontroller system changes operation to a secondary power mode using a secondary power supply voltage ( 402 ). The secondary power supply voltage can be, for example, a low power voltage, lower than the system voltage, for saving power. In response to changing modes, the microcontroller system loads new calibration values into calibration registers, as described further below with reference to steps 408 - 412 .
The microcontroller system operates in a first sub-mode of the secondary power mode, e.g., a run sub-mode ( 404 ). The microcontroller system changes operation from the first sub-mode to a second sub-mode of the secondary power mode, e.g., a sleep sub-mode ( 406 ). In response to changing modes, the microcontroller loads new calibration values into calibration registers by taking the following actions.
The microcontroller system selects, from among calibration values stored in a memory, a first calibration value for a first component ( 408 ). The memory can be system configuration storage, e.g., a reserved portion of flash memory. The system selects the first calibration value using the current mode and sub-mode, which in this example is the secondary power mode and the second sub-mode. If the microcontroller system includes other components that use calibration values that change in response to changing power modes, the microcontroller system can also read values for those other components.
The microcontroller stores the first calibration value into a first calibration register for the first component ( 410 ). If the system reads any other values for any other components, the system writes those values to respective calibration registers for those components. The microcontroller system calibrates the first component using the first calibration value stored in the first calibration register ( 412 ). For example, a logic block for the first component can read the first calibration value and calibrate the first component.
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.
Claims as granted
18 claimsLog in to read the claims of this application.
Log in to unlockClassifications
1 codes- G06F1/32
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock