The invention relates to digital power controllers for controlling power converters such as switch mode power converters (SMPCs).
Switch-mode power converters (SMPCs) are used to power microelectronic devices (e.g. processors) in electronic circuits and systems. SMPCs are becoming increasingly popular because of their inherently high power conversion efficiency. Particularly for portable electronic devices (such as laptops or digital cameras) SMPCs extend the lifetime of the batteries and the availability of the device. Commonly, SMPCs determine the ergonomics (volume and weight) and the usefulness (availability, battery lifetime) of electronic devices.
To date, the control circuitry for power converters has been predominantly analogue. It typically consists of a PWM controller and a number of discrete components including resistors and capacitors setting the desired parameters, such as switching frequency, compensator frequency behaviour, start-up behaviour, and protection features. The discrete components “program” the operational behaviour of the PWM controller. Increasingly, due to complexity, a number of housekeeping and supervision functions (such as startup) are implemented using microcontrollers, augmenting the functionality of the PWM controller. Commonly, a set of 20-100 components is required to implement the complete control circuitry of analogue SMPCs.
A number of technical challenges need to be addressed in order to make digital power converter control a practical and cost-effective reality. The main challenges are:
In the architecture shown in
As an alterative to hardwired controllers, central processing units (CPUs) have been used to implement programmable signal processors, as shown in
The restriction in terms of CPU processing speed has been addressed in the DPC architecture shown in
As recent research into advanced control laws (such as adaptive and self-tuning control laws) intensified and demonstrated their benefits, a new architecture evolved as shown in
The invention is directed towards providing an improved digital power controller to satisfy at least some of the above challenges.
According to the invention, there is provided a digital power controller for controlling a power converter, the controller comprising a CPU, a bus, and peripheral devices communicating with the CPU via the bus, said peripheral devices including a co-processor executing control algorithms, an ADC receiving power converter sense signals, and a modulator providing output drive signals to the power converter.
In one embodiment, the CPU has a RISC architecture.
In one embodiment, the digital power controller has a system-on-chip architecture.
In one embodiment, the peripheral devices operate as autonomous slaves.
In another embodiment, the modulator is a digital pulse width modulator (DPWM).
In one embodiment, the CPU performs housekeeping and communication operations, and the peripheral devices primarily perform real time power converter control.
In one embodiment, the CPU comprises blocks for self-test, peripheral device initialisation, parameter retrieval, and runtime routines.
In one embodiment, the CPU comprises means for detecting abnormal conditions and for generating real time responses.
In a further embodiment, the CPU comprises means for shutting down the power converter.
In one embodiment, the CPU comprises means for causing temporary shut-down of the power converter followed by automatic re-start attempts.
In one embodiment, said abnormal conditions include over-temperature, input under-voltage lockout, output over-voltage, and output over-current.
In one embodiment, the CPU comprises means for performing configuration of the peripheral devices.
In one embodiment, the CPU comprises means for performing initialisation of setpoint values.
In a further embodiment, the co-processor is a DSP.
In one embodiment, the CPU comprises means for transferring a co-processor algorithm from non-volatile instruction memory to the co-processor.
In one embodiment, the CPU comprises means for, at start-up, transferring co-processor control law and coefficients determining frequency behaviour of the control law.
In one embodiment, the co-processor comprises means for modifying control laws, for adaptive control laws.
In one embodiment, the co-processor comprises means for modifying control laws coefficients, for adaptive control laws.
In one embodiment, the CPU and the co-processor comprise means for managing control system set-points, setting target values for power converter variables in closed-loop real-time control.
In one embodiment, the CPU comprises means for, during start-up, transferring an initial set-point to the co-processor, and the co-processor comprises means for changing the set-point from time to time in response to CPU instructions, and the co-processor comprises means for using the new set-point as new target values in closed-loop control.
In another embodiment, the CPU comprises means for requesting the DSP to resume closed loop control, in response to a request from a host that power conversion should stop or start or as a result of detection of fault detection, or recovery from fault detection.
In one embodiment, the co-processor comprises means for transmitting status flags to the CPU, allowing detection of DSP faults, and adequate response to these faults.
In another aspect, the invention provides a power converter system comprising a power converter and any digital power controller as defined above.
In one embodiment, the power converter is a switch mode power converter
The invention will be more clearly understood from the following description of some embodiments thereof, given by way of example only with reference to the accompanying drawings in which:
Referring to
Referring to
The DPC 1 is implemented using CMOS ASIC technology, which can be manufactured cost-effectively. It is capable of controlling a wide range of SMPC topologies, including non-isolated multi-phase converters, as well as a range of isolated converter topologies (such as half-bridge and active reset converters). The DPC architecture is based on an SoC interconnect bus of the industry-standard AMBA type. Because of its CPU-based architecture, the DPC 1 is capable of supporting a wide range of communication interfaces and protocols (such as PMBUS).
Processor and peripheral blocks are interconnected through the SoC bus 10. The processor 6 is the single master of this SoC bus 10, while the peripheral blocks act as autonomous slaves. The processor can fully control and monitor the slaves through the SoC bus 10. Slaves include the DSP 5, the digital pulse width modulator (DPWM) 8, as well as the analogue-to-digital converter (ADC) 7. Once set-up and initialised, the slaves operate independently of the processor. The CPU 6 is primarily used for housekeeping control and communication, however it also performs some real time operations such as real time fault management.
The DPC 1 implements by way of the CPU 6, initial configuration after reset, housekeeping in normal operation, fault management and communication (with optional hosts).
Each of the two DSP 5 and the CPU 6 is fully and independently programmable through software. Independent tasks can be clearly assigned to each of the processing units.
The CPU 6 handles the following tasks:
The DSP 5 handles the following tasks:
It is important to note that, once initialised, the DSP 5 autonomously carries out the task of real-time control of the SMPC. Neither the CPU 6, nor the optional host, need to assign resources to real-time control. Real-time control, in this context, is defined as the task of regulating the desired SMPC variable (most commonly the output voltage) to a desired value, with stringent timing constraints, by means of processing the sampled and quantised SMPC variables (such as output voltage, input voltage, output current) and determining corrective action by providing suitable actuator (or drive) signals.
The structure of the CPU is shown in
The CPU 6 has a set of working registers holding temporary data (including the accumulator A), an arithmetic logic unit (ALU) for performing standard sets of arithmetic and logic operations, and a set of status registers (carry flag C, zero flag Z). A program counter PC points to the next instruction to be fetched from instruction memory. An optional page pointer PP holds the value of the current instruction page in memory (if the instruction memory is arranged in pages). An instruction register IR holds the current instruction value. For temporary storage of return addresses (and possibly data) a stack system is used, capable of storing a defined number n of return addresses or data words (n-level stack). The CPU 6 is also capable of handing and managing interrupt requests. All activity of the CPU 6 is organised by a sequential state machine, sometimes referred to as the CPU control state machine.
The DSP 5 is optimised for the purpose of real-time control of SMPCs and is shown in
The CPU 6 and the DSP 8 are the two independent processing units in the DPC 1. Although the tasks for the CPU and the DSP are clearly separated, both interact during start-up of the power system, as well as during normal operation.
In summary, the DPC 1 provides a flexible platform for the control of a wide range of power converters. This flexibility is based on the programmable CPU 6 and a programmable DSP (carrying out real-time mathematical operations, i.e. control law/control filter implementations with programmable coefficients).
Also, it provides a low-cost platform for control as the building blocks are predominantly digital and can thus be realised using standard CMOS processes. Either none or only a few external components are required, leading to low DPC pin-count and reduced PCB area. The architecture is readily scaled with improvements in CMOS process technology; and may be part of a larger complete system on a chip.
By providing a virtually unlimited number of connection points to the on-chip SoC bus 10, and full CPU 6 programmability, the architecture can be easily extended by additional peripheral blocks, and can thus satisfy future power converter requirements.
The programmable DSP 5 can support the implementation of advanced control laws. Implementations of advanced control laws using state-of-the-art continuous discrete circuitry are either very difficult (or costly), or impractical.
The DSP 5 is capable of implementing the control algorithms (allowing the power converter to operate under voltage or current mode control), and has a much reduced feature set in terms of hardware and software compared with off-the-shelf DSPs. As a programmable device it is capable of handling control schemes for a wide number of power converter applications, unlike hard-wired controllers. The control algorithms require ADC samples of the power converter output voltage and possibly the input voltage and output current. The result of the algorithm is a duty cycle command for the DPWM module. As a programmable device, the processor ADC 7 input ports and DPWM 8 output port support various ADC/DPWM resolution word lengths as these will vary depending on the application.
Experimentation with the required control algorithms revealed that only a few specific ADC samples of the power converter output voltage/current and corresponding filtering/scaling coefficients were required to be stored on-chip (in data memories). In addition, the length of the program to execute the algorithm is also quite short in terms of the on-chip program memory required. Hence both the on-chip data/program memory sizes have been optimised in size (resulting in silicon area saving) to meet the specific requirements of digitally controlled power converter algorithms.
The combination of separate program/data memories/buses, a datapath and a RISC-based instruction set form the DSP 5 allowing various control algorithms to be programmed depending on the application. A sub-set (30) of the many instructions (possibly >200) available in leading edge DSPs are supported by this DSP 5 to meet the requirements of the control algorithms which simplifies the programming of the device for the user. The programs (stored initially in the RISC processor program memory) are written to the local program memory in the DSP 5 at power-up, after which the DSP 5 works independently from the rest of the system.
The DSP 5 instructions allow the instruction type (e.g. ADD, LOAD) and data memory locations (containing the data to be manipulated) to be specified in a single instruction. The word length of each DSP instruction is 16 b (this can be either increased/decreased in future revisions). As the execution time for the entire control algorithm is vitally important in high switching power converters all of the DSP instructions support single clock cycle execution.
Digital control algorithms are typically executed once every switching cycle of the power converter switching frequency (e.g. once every 1 μs). The DSP 5 contains a sleep mode instruction allowing the processor to enter a low power mode after the algorithm is executed. The interrupt to allow the processor leave sleep mode and re-execute the control algorithm is optimised (from a timing perspective) to an operating point of the power converter which ensures the algorithm executes with average values of the power converter output voltage/current sampled by the ADC channels.
The central processor supports a single-word instruction which allows for highly efficient data transfers of data words from the processor to any peripheral block, using a minimum amount of clock cycles, and a minimum amount of instruction memory.
The word-length of an instruction (i.e. number of bits per instruction word) is limited, and can-be expressed as nIW. A limited number of instructions can therefore be coded. As every instruction fetch from instruction memory takes time, and consumes instruction memory, it is preferable that all instructions (together with their operands) are coded using a single instruction word. This means that the word-length of the operands, expressed as noperand needs to be smaller than nIW, therefore nIW>noperand.
Operands may be: constants (sometimes also called literals); source/destination register addresses; and addresses or offsets in instruction memory or data memory.
Firmware for this application involves frequent movement of (constant) data from the RISC processor to the peripheral blocks of the DPC 1 (mainly the DSP 5, but also the ADC 7, and the DPWM 8).
Because of word-length limitations nIW, instructions for RISC processors involve either none or a maximum of one variable (i.e. not fixed) operand. If an instruction would involve two variable operands, one would not be able to code all of the required information in one instruction word and the instruction would need to be broken down into two individual instructions, each involving one operand. Movement of constant data to a destination register residing in a peripheral block is an example for this. In the RISC processor 6, such a data movement involves two steps:
Also, each individual peripheral block only has a small set of registers (between 1-4 registers). If each peripheral block is assigned a base address, expressed as adrbase, the peripheral block register addresses can be expressed using offset addresses relative to the base address. A small number of bits, expressed as noffs, most typically 0-2, is sufficient to code this offset address.
As long as nIW>(noperand+noffs), a single instruction can be created, which effectively supports two operands (e.g. a constant operand, plus a register offset address), while at the same time keeping the required instruction word-length nIW at a minimum.
The following applies:
nIW=14b
noperand=8b
noffs=2b
adrbase=128
which supports an instruction opcode word-length of nIW−noperand−noffs=4b.
The instruction mnemonic is
mov REG[r], #k
and the instruction is coded as
1110rrkkkkkkkk
where variable r expresses an offset in a range of 0 to 3, and k expresses a constant in a range of 0 to 255.
Coded as a single 14 b instruction word, taking a minimum amount of clock cycles to execute, and consuming a minimum amount of instruction memory, the instruction supports the movement constant data (k) to a hardware register residing in a peripheral block. The hardware register may be either a control register, or a data register, and is typically located in a peripheral block (such as the DSP).
The base address adrbase of the hardware register is fixed (and equal to 128), but may be made variable for enhanced flexibility. The effective address EA of the hardware register is therefore EA=adrbase+r, and in our specific case EA=128+r. Constant data k is written into hardware register with the address EA.
An extension of this concept is the movement of data from a hardware register into any other register, either CPU-internal, or located in any other peripheral block.
The invention may be effectively utilised to support embedded DSP code in firmware. DSP code will be translated by a programming language compiler (such as C or assembler) into corresponding data move instructions. This translation from DSP source code to data move instructions happens in a transparent fashion, allowing the programmer to code the algorithm using standard DSP source code. Effectively, every DSP instruction found in the language source code (e.g. the assembler code) will be broken into m data move instructions (with typically m=2 as noperand=8 and DSP instruction word length nDSP=16) of the previously discussed structure “mov REG[r],#k”. The destination of the data is the DSP, which receives the data, and writes it sequentially into its own local instruction memory, and thus prepares it for execution after the algorithm transfer is completed.
It will be appreciated that the invention extends significantly beyond the performance limits of the prior controllers, by including a fully programmable DSP co-processor. In contrast to the prior art, the invention supports the implementation of advanced control schemes (such as current mode control, predictive current mode control, dead beat control, non-linear control) by providing this fully programmable DSP co-processor.
The invention is not limited to the embodiments described but may be varied in construction and detail. For example, the co-processor may alternatively be of a different type, such as a numeric co-processor. Also, the power converter which is controlled may be of a type other than a switch mode power converter (SMPC), such as a linear regulator type of power converter.
Number | Date | Country | Kind |
---|---|---|---|
2006/0831 | Nov 2006 | IE | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IE07/00112 | 11/15/2007 | WO | 00 | 5/15/2009 |