CorePWM is a general purpose, multi-channel pulse width modulator (PWM) module for motor control, LED dimming, tone generation, battery charging, heating elements and much more. In General Purpose PWM mode, duty cycle updates can be performed asynchronously or synchronously, based on parameter selection. In synchronous mode, all channels are updated at the beginning of the PWM period, which is useful for motor control and can be used to keep a constant dead band space between channel waveforms. Asynchronous mode is relevant to applications such as LED control, where synchronous updates are not required. Asynchronous mode lowers the area size, reducing shadow register requirements.
In addition to these PWM modes there is also a "Low Ripple DAC" mode that creates a minimum period pulse train whose High/Low average is that of the chosen duty cycle. When used with a low-pass filter (such as a simple RC circuit), a DAC can be created with far better bandwidth and ripple performance than a standard PWM algorithm can achieve. This type of DAC is ideally suited for fine tuning of power supply output levels.
CorePWM also provides support for tachometer monitoring of 3- and 4-wire fans. Incoming tachometer data is read by the firmware through the APB interface to calculate fan speed.
- Low-cost PWM solution with up to 16 separate PWM digital outputs, configurable via a register interface
- Low-cost TACHOMETER solution with up to 16 separate TACH digital inputs, configurable via a register interface
- Configurable resolution based on APB bus width
- 8-bit PWM period with 8-bit prescaler
- Configuration updates for all channels can be synchronized to the beginning of the PWM period, allowing precise updates and maintaining phase alignments between channels
- For DAC applications: Optional, per-channel Low Ripple DAC mode, allowing for greater resolution output of a given filter
- All PWM outputs are double-edge-controlled
- Per-channel fixed register option for lower tile count
- Edge control based on a configurable PWM period with prescaler value and 0% to 100% duty cycle capability
- Interrupts can be generated at each edge of the PWM outputs
- Set High, Set Low, and Toggle Edge-Control modes
- Can be programmed on-the-fly from a microcontroller, such as Core8051s, CoreABC, an ARM microprocessor, or by the Fusion backbone
- Can be used to perform open or closed-loop margining of power supplies
- CorePWM is included in the Libero IDE IP bundle, including FREE Libero Gold.
- Supports Actel IGLOO/e, ProASIC3/E, Fusion, RTAX-S, ProASICPLUS and Axcelerator FPGAs