How does it work?
Expand 10 Click as its foundation uses 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.
Expand 10 Click 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 labeled 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 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
Feature
No ClickID
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).
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.
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 API for Expand 10 Click driver.
Key functions:
expand10_cfg_setup
– Config Object Initialization function.expand10_init
– Initialization function.expand10_default_cfg
– Click Default Configuration function.
Examples 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 informations
Depending on the development board you are using, you may need 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
This 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.
For more information about mikroSDK, visit the official page.