One question which is commonly asked is “how do I represent fractional numbers on my fixed-point MCU, DSP or FPGA?” One of the best solutions to this is use of the Q number system.
The Q number system is a fixed point system where the available bits are divided amongst the integer bits (those to the left of the decimal point), fractional bits (those to the right of the decimal point) and a sign bit. You may ask “I know how integers are represented in binary but not fractions?” The answer is that just like integers, fractional bits are just multiplied by powers of two, except the powers are negative. For example:
0.011B = 0*2-1+1*2-2+1*2-3 = 0.375
Q numbers can take on multiple forms with different numbers of fractional and integer bits. They are commonly written mQn or Qm.n where m is the number of integer bits and n is the number of fractional bits. Note m+n+1 = total number of bits available.
Q numbers of the same form can be added together with no issue. The only thing to consider here is overflow.
If you have different forms they need to be converted before the arithmetic. This can be done by shifting. For example:
2Q13 << 1 is now 1Q14 (lose an integer bit and gain a fractional bit) and
3Q12 >> 1 is now 4Q11 (lose an fractional bit and gain an integer bit)
The rule when multiplying two Q numbers together is:
m1Qn1 * m2Qn2 = (m1+m2)Q(n1+n2)
Once the multiplication is complete, then a shift is needed to get it into the Q format the system needs.
The big issue with multiplication is overflow and precision loss. When there exists m > 0, then scaling back to your original system is difficult. For example:
2Q13 * 2Q13 = 4Q26
In order to scale this back to the original 16 bits you either have to sacrifice integer bits (you have to be very careful that the top integer bits don’t contain information – limit the overflow) or lose precision by discarding fractional bits. The solution to this is to try and use systems where m=0.
Choosing the Q number system for digital control is important. The general rule of thumb is you want as much precision as possible and you want to avoid overflows in multiplication. Therefore the best solution is to make all your bits fractional (i.e. m=0). This gives as much precision as your system allows and makes sure there are no overflows (<1 x <1 = <1). In a 16-bit system this is 0Q15 (referred to as Q15).
Once you have your system then you need to make sure that all inputs and outputs fit this system and falls within the range -1 <= x < 1. This is as simple as setting your inputs and outputs to be +1 = full scale positive and -1 = full scale negative.
The key for this to work in a digital control system is to remember the gains on the inputs and outputs. This means remembering what +1 and -1 stand for. For example a voltage input may be -230V to +230V and an output maybe -400V to 400V. The input gain is therefore 1/230 and the output gain 400. Once you have these gains you need to include them in your design of the control system, whether it be through calculation or simulation. Failing to include them leads to incorrect margins and possibly instability.
One potential pitfall of the m=0 approach is how to deal with numbers greater than one. In digital control these can come up quite often generally in biquad filters. The trick is to this is to scale the coefficients by ½, perform the multiplies and then scale back by 2 (shift left 1). This does lose one bit of precision in this particular calculation however it is better than losing one fractional bit in all calculations.
Q number systems allow the designer to use a reliable fixed point system to represent fractional numbers. This allows the use of less expensive fixed point processors instead of the more complex and generally more expensive floating point alternatives.
The choice of control processor for your digital power converter is the most critical. Which one should you choose from the multitude of available options?
A good lunch is all it takes
An engineer at our recent digital control course told me that the answer at his company was all about whether the FAE had taken you out for a good lunch.
He then went on to say that they had recently changed their digital power electronics control processor late in a development because this lunch approach to selection had not worked out so well.
What is important in a processor?
In a recent survey and discussion in the exclusive members only ELMG LinkedIn Digital Control Group the most popular features and benefits of the digital power electronics control processor suggested were these. (not in any particular order of priority).
Number of bits
ADC sample and hold time
ADC aperture time
Tool chain flexibility and support
Interrupts? PWM capability?
There was no mention of interrupt capability and no mention of PWM precision or PWM peripheral capability. This may be because it is no longer the issue it was fifteen years ago.
Boundary scan and what we have always done
Surprisingly no one mentioned boundary scan for testing which we at ELMG find very useful.
Also surprising that the “we have used this processor forever and so will not change” was not mentioned in the Linkedin group discussion.
Will the purchasing department choose?
Before we get into technical details of processors it is useful to step back and remember that the supply chain for the chip needs to be secure. Typically to a purchasing person this means that
The supplier is not going to go out of business.
The supplier has committed to not discontinuing the part.
The supplier’s balance sheet is not a large risk.
The supplier does not present a geographic or political risk. If you are going to buy processors in large volumes natural disasters and revolutions can effect availability.
The supplier has good pricing.
If you are find yourself in the situation where there is no engineering choice of supplier best steps are to assess the proposed digital power electronics control processor against the “what is important” list above.
Some digital power electronics control processor options
There are a large number of processors that will do a good job.
A few stand out as having proved themselves useful over the years.
Microchip PIC and DSPic series
Luminary Stellaris Cortex M3
Ti C2000 Series
Microchip make great power control processors. The processors and the peripherals around them are a really good choice of control processors for power electronics. Typically purchasing departments love Microchip as a supplier.
Key strengths of the PIC and DSPic parts are the great support from Microchip and the microchip community. There are a large number of development kits that are available where the code, circuit and PCB layouts are all made available. Examples of these include a 200W microinverter design and digital power starter kit.
Luminary microprocessors are ARM Cortex M3 parts. The parts are excellent as they leverage the ARM eco-system of tools. Initially we were reluctant to use these as the Luminary balance sheet was not as strong as it could be. Then Texas Instruments (Ti) bought Luminary and integrated the products into the Ti range. It is possible that Ti are not as committed as they were to the Luminary M3 parts. Before you consider these parts make sure to ensure that the risk, or otherwise, of the processor being discontinued is clear.
Texas Instruments – C2000 series
Ti make very good digital power electronic controller processors. The C2000 series provide a wide range of processors for power electronics.
Key features of these parts that make them most useful are
Very flexible three phase PWM
Good ADCs with synchronized sampling for three phases
Good code protection
Good tool chain
A part numbering example is TMS320F2812. The TMS320 is the family. The F identifies the flash part and the 2812 is the model number. The part is referred to as the twenty eight twelve. This particular model is 32 bit with sixteen 12 bit ADCs and sixteen PWM channels. This twenty eight twelve processor has been the workhorse for many motor drives and power supplies. Other variants including the 2808 (twenty eight oh eight) are equally useful.
To extend the range upward Ti provide the Delfino range typified by the TMS320F28335 (twenty eight three three five). This is a floating point part. The lower end of the range is covered by the Piccolo which is typified by the TMS320F28027. (Twenty eight oh two seven).
Why is it called the C2000 series?
The entire family of the C2000 series use the same code tools, and, if the code is structured well it can be ported directly from one processor to the other.
And it is called the C2000 series because the first parts available were ROM parts which had a C in the part number (C is short for ROM) instead of the F for Flash.
Ti product support is good though it can be a little slow at times. Pre-release silicon, labelled TMX, is often available from your local Ti supply chain.
The part data sheets are comprehensive and the discussion forums hosted by Ti are useful and often very productive.
Ti has a number of my favorite digital power electronic controller parts including the 2812 and the 28027.
The Xilinx FPGAs are not strictly designed as power electronics control processors. They are Field Programmable Gate Arrays and so can do anything imaginable. FPGA’s suit power electronics control very well.
Often it is the peripherals in a power electronics processor that force the choice. Typically a requirement for ADCs with a certain sample rate and a PWM that can make a certain waveform without excessive processor load force a certain choice.
If the MCU with the exact right combination of peripherals that you want does not exist then extra hardware is required. Typically the selection process for an off the shelf processor part is always a compromise.
As an example, a peripheral set like
3 CAN Bus connections
3 Ethernet along with
A five level three phase converter switching control with dead time compensation
can be implemented in a FPGA but a processor at reasonable price with this exact feature set is unlikely.
The beauty of the FPGA in this situation is that it’s peripheral set can be made totally customisable. The design can be exactly as you need it.
Off the Shelf IP Core blocks
There are a number of off the shelf (OTS) IP Core blocks that can be used. HDMI, SATA, VGA, Quad SPI, I2C, USB, high-speed serial, PCIe, UART, SPI, I2C, Ethernet and industrial ethernet like Ethercat are all available off the shelf. There are even open source solutions for some of these blocks. These open source solutions come with very little support. Commercial and proven blocks with support from vendors are usually better.
When building a power electronic controller the ELMG power electronics Control IP Core Blocks such as space vector modulators, phase locked loops and resonant controllers can be used along with off the shelf Ethernet stacks, USB connections and CAN bus controllers. This gives a powerful custom digital power electronics control processor.
Extremely Complex Control – Too complex for the average engineer?
Complex control systems for power converters can be implemented using FPGAs. This allows maximum flexibility and it allows the controller to be put into an ASIC for cost down when sales volume increases.
This complexity is a perceived risk for many teams when approaching FPGA. However, since the FPGA is logic and a processor is a connection of logic gates – why not put one inside the FPGA? Then software engineers can use their existing expertise with the added power of the FPGA.
This processor in an FPGA is implemented in a soft core. A soft core, such as Xilinx’s Microblaze, is a micro built out of FPGA fabric.
The beauty of a soft core is that it can take any shape; small in size, really fast, an MPU or an MCU, with a multiplier or not. This allows you to size the softcore to your application.
Peripherals are then attached to the soft core. As an example, a custom three level PWM, 4 UARTs and 2 SPIs and you can then write C code for the soft core.
To take advantage of the FPGAs power add an ELMG Digital Power IP core block to accelerate the C code where it needs to be fast. This allows you to use your existing C coding capability.
As an example, perform data transfer from an ADC using C, filter it fast and efficiently in FPGA fabric and then use the soft core with C to send it to a DAC or a custom PWM.
Best digital power electronics control processor?
The best digital power electronics control processor platform depends on the application. Processors such as those from Microchip, Luminary and Texas Instruments are very good and are typically a good choice. The ADC, processing and PWM performance determines which processors are suitable. Additional communications and control peripherals then decide which processor part is best.
Successful power converter developments and products use and have used the Microchip, Luminary and Ti parts.
FPGA based controllers for digital power provide power and flexibility that is a level above these standard digital power electronics control processors. The ability to use soft core processors and FPGA off the shelf IP along with the Digital Power IP Core Blocks makes the controllers more flexible and more useful.
The ELMG Digital Power IP Core Blocks are planned for release in March 2015. See the list of proposed ELMG Digital Power IP Core Blocks blocks by clicking here…