Expand 10 Click Board
Expand 10 Click Board
Key Features
- Low power consumption, bidirectional voltage-level translation, Agile I/O features, Fast-mode Plus I2C-serial interface, reset and interrupt feature, and more
- Based on the PCAL6524 - 24-bit ultra-low-voltage translating general-purpose I/O expander from NXP Semiconductors
- Can be used system monitoring applications, industrial controllers, portable equipment, and many more
- mikroBUS: I2C Interface
Overview
The Expand 10 Click Board™ is a compact add-on board that contains a multi-port I/O expander. The board features the PCAL6524, a 24-bit general-purpose I/O expander providing remote I/O expansion for most MCU’s families via the Fast-mode Plus I2C-serial interface from NXP Semiconductors. The PCAL6524 has a built-in level shifting feature that makes it highly flexible in power supply systems where communication between incompatible I/O voltages is required. It allows seamless communications with next-generation low voltage microprocessors and microcontrollers on the interface and peripherals at a higher voltage on the port side. This Click Board™ provides a simple solution when additional I/Os are needed while keeping interconnections to a minimum in system monitoring applications, industrial controllers, portable equipment, and many more.
The Expand 10 Click Board™ is supported by a mikroSDK compliant library, which includes functions that simplify software development. This Click Board™ comes as a fully tested product, ready to be used on a system equipped with the mikroBUS™ socket.
How Does The Expand 10 Click Board™ Work?
The Expand 10 Click Board™ is based on the PCAL6524, a 24-bit ultra-low-voltage translating general-purpose I/O expander from NXP Semiconductors. This port expander is a simple solution for when additional I/Os are needed while keeping interconnections to a minimum, particularly great for system monitoring applications, industrial controllers, portable equipment, and others. The PCAL6524 has a built-in level shifting feature that makes it highly flexible in power supply systems where communication between incompatible I/O voltages is required.
The PCAL6524 implements Agile I/O features specifically designed to enhance the I/O. These additional features are programmable output drive strength, latchable inputs, programmable pull-up/pull-down resistors, maskable interrupt, interrupt status register, programmable open-drain or push-pull outputs.
The Expand 10 Click Board™ communicates with MCU using the standard I2C 2-Wire interface to read data and configure settings, supporting a Fast Mode Plus operation up to 1MHz. At the Power-On sequence, the I/Os are configured as inputs. However, the host MCU can enable the I/Os as inputs or outputs by writing to the I/O configuration bits. In addition to I2C communication, two GPIO pins connected to the mikroBUS™ socket pins are also used.
The reset pin, routed to the RST pin of the mikroBUS™ socket, is used to place the PCAL6524 registers in their default state, while the interrupt, routed to the INT pin of the mikroBUS™ socket, may be configured as an interrupt to notify the host MCU of incoming data on any port. Besides, it also allows the choice of the least significant bit of its I2C slave address by positioning the SMD jumper labelled as ADDR SEL to an appropriate position marked as 1 and 0.
This Click board™ can operate with both 3.3V and 5V logic voltage levels selected via the VCC SEL jumper. This way, it is allowed for both 3.3V and 5V capable MCUs to use the I2C communication lines properly. However, the Click board™ comes equipped with a library containing easy-to-use functions and an example code that can be used, as a reference, for further development.
Specifications
Type | Port expander |
Applications | Can be used in system monitoring applications, industrial controllers, portable equipment, and many more |
On-board modules | PCAL6524 - 24-bit ultra-low-voltage translating general-purpose I/O expander from NXP Semiconductors |
Key Features | Low power consumption, bidirectional voltage-level translation, Agile I/O features, Fast-mode Plus I2C-serial interface, reset and interrupt feature, and more |
Interface | I2C |
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 Expand 10 Click 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 | NC | ||
Reset | RST | 2 | RST | INT | 15 | INT | Interrupt |
NC | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C Clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C Data | |
Power Supply | 3.3V | 7 | 3.3V | 5V | 10 | 5V | Power Supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
Onboard settings and indicators
Label | Name | Default | Description |
---|---|---|---|
LD1 | PWR | - | Power LED Indicator |
JP1 | VCC SEL | Left | Logic Level Voltage Selection 3V3/5V: Left position 3V3, Right position 5V |
JP3 | ADDR SEL | Left | I2C Address Selection 0/1: Left position 0, Right position 1 |
J1-J3 | P0-P2 | Populated | I/O Expander Ports |
Expand 10 Click electrical specifications
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Supply Voltage | 3.3 | - | 5 | V |
Maximum Output Current | - | - | 25 | mA |
Maximum Clock Frequency | - | - | 1 | MHz |
Operating Temperature Range | -40 | +25 | +85 | °C |
Software Support
We provide a library for the Expand 10 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe GitHub account.
Library Description
This library contains an API for the Expand 10 Click Board™ driver.
Key Functions
expand10_cfg_setup
- Config Object Initialization function.expand10_init
- Initialization function.expand10_default_cfg
- Click the Default Configuration function.
Example Description
This example demonstrates the use of Expand 10 Click board™.
void application_task ( void ) { uint8_t port_value = 0; for ( uint16_t pin_num = EXPAND10_PIN_0_MASK; pin_num <= EXPAND10_PIN_7_MASK; pin_num <<= 1 ) { expand10_set_all_pins_value( &expand10, pin_num ); expand10_read_port_value( &expand10, EXPAND10_PORT_0, &port_value ); log_printf( &logger, " Status P0 (output): 0x%.2Xrn", ( uint16_t ) port_value ); expand10_read_port_value( &expand10, EXPAND10_PORT_1, &port_value ); log_printf( &logger, " Status P1 (output): 0x%.2Xrn", ( uint16_t ) port_value ); expand10_read_port_value( &expand10, EXPAND10_PORT_2, &port_value ); log_printf( &logger, " Status P2 (input) : 0x%.2Xrnrn", ( uint16_t ) port_value ); Delay_ms( 1000 ); } }
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe GitHub account.
Other mikroE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.Expand10
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 Expand 10 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 library for the Expand 10 Click as well as a demo application (example), developed using MikroElektronika compilers. The demo can run on all the main MikroElektronika development boards.
The package can be downloaded/installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe GitHub account.
Library Description
This library contains an API for the Expand 10 Click Board™ driver.
Key Functions
expand10_cfg_setup
- Config Object Initialization function.expand10_init
- Initialization function.expand10_default_cfg
- Click the Default Configuration function.
Example Description
This example demonstrates the use of Expand 10 Click board™.
void application_task ( void ) { uint8_t port_value = 0; for ( uint16_t pin_num = EXPAND10_PIN_0_MASK; pin_num <= EXPAND10_PIN_7_MASK; pin_num <<= 1 ) { expand10_set_all_pins_value( &expand10, pin_num ); expand10_read_port_value( &expand10, EXPAND10_PORT_0, &port_value ); log_printf( &logger, " Status P0 (output): 0x%.2Xrn", ( uint16_t ) port_value ); expand10_read_port_value( &expand10, EXPAND10_PORT_1, &port_value ); log_printf( &logger, " Status P1 (output): 0x%.2Xrn", ( uint16_t ) port_value ); expand10_read_port_value( &expand10, EXPAND10_PORT_2, &port_value ); log_printf( &logger, " Status P2 (input) : 0x%.2Xrnrn", ( uint16_t ) port_value ); Delay_ms( 1000 ); } }
The full application code, and ready to use projects can be installed directly from NECTO Studio Package Manager(recommended way), downloaded from our LibStock™ or found on Mikroe GitHub account.
Other mikroE Libraries used in the example:
- MikroSDK.Board
- MikroSDK.Log
- Click.Expand10
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 Expand 10 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.