PWM 2 Click Board
PWM 2 Click Board
Overview
The PWM 2 Click Board™ offers 48 independently controlled PWM channels, available over the on-board headers, perfectly suited for driving LEDs. Each channel has a 12-bit PWM register associated to it, with the addition of the 6-bit correction register, also known as the dot correction register. PWM 2 is able to detect both synchronization errors and open LED errors, signaling the error via the dedicated pin and the status frame.
The PWM 2 Click Board™ fully supports cascading, exposing all the necessary pins on the on-board headers, so it can support a large array of LED elements.
The possibility to cascade more devices, as well as the ability to additionally fine-tune each PWM channel separately, compensating the brightness differences between the LED elements (dots), make PWM 2 click an ideal solution for building both small-scale and large-scale LED matrices and displays. Although it is targeted toward driving LEDs, the PWM 2 Click Board™ can also be used for other purposes, such as the motor control, industrial control, robotics, and similar applications that can benefit from having compact 48 channel PWM driver.
How Does The PWM 2 Click Board™ Work?
The main component of the PWM 2 Click Board™ is the LT8500, a 48-Channel LED PWM generator with 12-Bit resolution and 50MHz serial interface, from Analog Devices. This IC has 48 independent 12-bit PWM channels, each with 6-bit correction up to 50% of the original duty cycle. The LT8500 IC is clocked by a clock signal at the PWMCK pin. The frequency of the clock signal can go up to 25MHz, generating the PWM output frequency of up to 6.1kHz, which is sufficient for most purposes. The maximum speed of the LT8500 serial interface goes up to 50MHz in theory, but in practice, it will depend on many factors.
The clock signal at the PWM pin of the mikroBUS™ is triggering an internal counter register (PWMCK). This register is compared with the content of the PWMRSYNC register, associated with each channel. Whenever the counter value is less than the value written in a specific channel PWMRSYNC register, the PWM output of that channel goes to a HIGH logic level. The frequency of the output PWM signal is therefore determined by the frequency the clock signal at the PWMCK pin. This represents the basic operating principle of the LTC8500 IC. The PWMCK pin is routed to the PWM pin of the mikroBUS™.
The device uses an industry-standard SPI interface for the communication. The LDI pin acts as the normal Chip Select, latching the SPI data in, but it has an additional function if held to a HIGH logic level for more than 50µs. In that case, the IC will be reset, and all outputs will be blanked. Therefore, care should be taken not to hold this pin to a HIGH logic level, for more than 5µs. The LDI pin is routed to the CS pin of the mikroBUS™ and it is labeled as LDI.
Besides the usual SPI interface lines, the LT8500 PWM generator IC provides a serial interface clock output signal (SCKO), allowing additional devices to be connected in the parallel 5-wire topology (LDI, SCKI, SDI, SDO, and SCKO). This allows large-scale cascading, without the need for the skew balancing or buffering the signals. These additional pins are available at the standard 2.54 pitch headers on board. These additional pins on the header are described in a table, below. More information about cascading and using the SCKO feature of the IC can be found in the LT8500 datasheet.
The device is controlled by sending commands via the SPI interface, embedded in a command frame. There are eight different commands which are used to control the following parameters: PWM outputs update (synchronously or asynchronously to PWM period), the dot correction factor, self-test initialization, phase shifting between banks (groups of 16 channels), enabling/ disabling of the PWM output drivers, and enabling/disabling of the dot correction . A frame consists of a 12-bit data field for each of the 48 PWM channels, followed by an 8-bit command field, which contains one of the eight command codes. The status frame is clocked on the SDO pin, providing the host MCU with the frame information: LED fault status, phase shifting status, correction status, synchronization status, and so on. This information can be used either for troubleshooting or for other purposes by the host MCU application.
As already mentioned, additional functionalities of the LT8500 IC are offered via the onboard headers, along with the 48 PWM channel outputs. The outputs are not meant to drive devices with high current, so PWM 2 click is best used as the driver for additional circuitry, whether it is a simple MOSFET LED driver, or a more complex ICs, such as the LT3595A LED driver, for which a special input pin is reserved, allowing open LED conditions to be detected, even on the externally connected LT3595 IC. Onboard headers also offer fixed 5V output from the mikroBUS™ for the auxiliary purposes.
The PWM 2 Click Board™ offers an operating voltage level selection between 3.3V and 5V by switching an SMD jumper labeled as the PWR SEL to an appropriate position. This allows both 3.3V and 5V MCUs to be interfaced with this Click board™.
SPECIFICATIONS
Type | PWM |
Applications | The PWM 2 Click Board™ can be used for driving up to 48 independent channels with the PWM signal of the programmable duty cycle, and can be used for driving LED matrices and displays, but it can also be used for the motor control, industrial control, robotics, and similar applications |
On-board modules | LT8500, a 48-Channel LED PWM generator with 12-Bit resolution and 50MHz serial interface, from Linear Technology division of Analog Devices |
Key Features | A complete pinout required for cascading available on the 2.54mm pin headers, along with the 48 independent PWM channels, each with programmable duty cycle, dot brightness correction for brightness uniformity, and error reporting for open LED via the status frame response |
Interface | PWM,SPI |
Compatibility | mikroBUS |
Click board size | L (57.15 x 25.4 mm) |
Input Voltage | 3.3V or 5V |
PINOUT DIAGRAM
This table shows how the pinout on the PWM 2 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | PWM | Clock Signal IN | |
NC | 2 | RST | INT | 15 | NC | ||
Latch Data In/Blank | LDI | 3 | CS | RX | 14 | NC | |
SPI clock | SCK | 4 | SCK | TX | 13 | NC | |
SPI Data OUT | SDO | 5 | MISO | SCL | 12 | NC | |
SPI Data IN | SDI | 6 | MOSI | SDA | 11 | NC | |
Power supply | 3.3V | 7 | 3.3V | 5V | 10 | 5V | Power supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
ONBOARD JUMPERS AND SETTINGS
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED indicator |
J1 | PWR SEL | Right | Power Supply voltage selection: left position 3.3V, right position 5V |
ONBOARD CONNECTORS
Label | Description |
---|---|
1 - 48 | Channel 1 to Channel 48 PWM outputs |
LD | Latch Data In/Blank pin (shared with the mikroBUS™) |
SO | SPI Serial Data Out (shared with the mikroBUS™) |
C | SPI Serial Clock In (shared with the mikroBUS™) |
CO | SPI Serial Clock Out |
OL | #OPENLED pin used to detect an external open LED condition |
5V | 5V power supply from the mikroBUS™ power rail |
GND | Ground |
Software Support
We provide a demo application for the PWM 2 Click Board™ on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library carries all necessary functions for complete control over the PWM 2 Click Board™.
Key Functions
void pwm2_togglePhaseShift()
- Functions for toggle phase shiftuint8_t pwm2_setChannel(uint8_t nChannel, uint16_t width,uint8_t correction)
- Function for set channelvoid pwm2_Inits()
- Function for initialization of the chip
Example Description
The application is composed of three sections:
- System Initialization - PWM, SPI and CS pin are initialized PWM is used as a PWMCK signal for the PWM 2 Click Board™. SPI is used as a serial data in. CS pin is used as an LDIBLANK signal.
- Application Initialization - (code snippet) - PWMCK signal is set to 15MHz and to give a 50% duty cycle. The PWM 2 Click Board™ channels are initialized to 75% duty cycle, and the phase shift is toggled on.
- Application Task - the first 10 PWM 2 Click Board™ channels are switched back and forth from 25% duty cycle to 100% duty cycle every second.
void applicationInit() { uint8_t i; pwm2_spiDriverInit( (T_PWM2_P)&_MIKROBUS1_GPIO, (T_PWM2_P)&_MIKROBUS1_SPI ); Delay_ms( 100 ); //PWMCK setup: period_PWM = PWM_TIM2_Init(_PWM2_CLOCK_15_MHZ); PWM_TIM2_Set_Duty(period_PWM/2,_PWM_NON_INVERTED,_PWM_CHANNEL1); PWM_TIM2_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM2_CH1_PA0); //end of PWMCK setup dutyMode = 1; pwm2_Inits(); //setting all 48 PWM2 channels on the PWM2 click to 75% duty for(i = 1; i < 49; i++) { pwm2_setChannel(i,_PWM2_50_PERCENT_DUTY,_PWM2_NO_CORRECTION); } pwm2_togglePhaseShift(); }
The full application code, and ready to use projects can be found on our Libstock page.
Other MikroElektronika libraries used in the example:
- PWM
ADDITIONAL NOTES AND INFORMATION
Depending on the development board you are using, you may need a USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The PWM 2 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Software Support
We provide a demo application for the PWM 2 Click Board™ on our Libstock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
Library Description
The library carries all necessary functions for complete control over the PWM 2 Click Board™.
Key Functions
void pwm2_togglePhaseShift()
- Functions for toggle phase shiftuint8_t pwm2_setChannel(uint8_t nChannel, uint16_t width,uint8_t correction)
- Function for set channelvoid pwm2_Inits()
- Function for initialization of the chip
Example Description
The application is composed of three sections:
- System Initialization - PWM, SPI and CS pin are initialized PWM is used as a PWMCK signal for the PWM 2 Click Board™. SPI is used as a serial data in. CS pin is used as an LDIBLANK signal.
- Application Initialization - (code snippet) - PWMCK signal is set to 15MHz and to give a 50% duty cycle. The PWM 2 Click Board™ channels are initialized to 75% duty cycle, and the phase shift is toggled on.
- Application Task - the first 10 PWM 2 Click Board™ channels are switched back and forth from 25% duty cycle to 100% duty cycle every second.
void applicationInit() { uint8_t i; pwm2_spiDriverInit( (T_PWM2_P)&_MIKROBUS1_GPIO, (T_PWM2_P)&_MIKROBUS1_SPI ); Delay_ms( 100 ); //PWMCK setup: period_PWM = PWM_TIM2_Init(_PWM2_CLOCK_15_MHZ); PWM_TIM2_Set_Duty(period_PWM/2,_PWM_NON_INVERTED,_PWM_CHANNEL1); PWM_TIM2_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM2_CH1_PA0); //end of PWMCK setup dutyMode = 1; pwm2_Inits(); //setting all 48 PWM2 channels on the PWM2 click to 75% duty for(i = 1; i < 49; i++) { pwm2_setChannel(i,_PWM2_50_PERCENT_DUTY,_PWM2_NO_CORRECTION); } pwm2_togglePhaseShift(); }
The full application code, and ready to use projects can be found on our Libstock page.
Other MikroElektronika libraries used in the example:
- PWM
ADDITIONAL NOTES AND INFORMATION
Depending on the development board you are using, you may need a USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
MIKROSDK
The PWM 2 Click Board™ is supported with mikroSDK - MikroElektronika Software Development Kit. To ensure proper operation of mikroSDK compliant click board demo applications, mikroSDK should be downloaded from the LibStock and installed for the compiler you are using.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.