How does it work?
Expand 8 Click as its foundation uses the MAX7317, a general-purpose input/output (GPIO) peripheral from Maxim Integrated that provides 10 I/O ports, P0 to P9, controlled through a high-speed SPI-compatible serial interface. Each port, P0 to P9 can be configured as open-drain, current-sink outputs rated at 20mA maximum, or as CMOS inputs, or as open-drain outputs. Loads should be connected to a supply voltage no higher than 7V.
The MAX7317 contains ten 8-bit internal registers. These ten registers addressed as 0x00 - 0x09 control an I/O port each. Write 0x00 to the output register to set the port as a logic-low output, or 0x01 to set the port as a logic-high output or logic input.
Expand 8 Click communicates with MCU through a 16-bit 4-wire serial interface compatible with standard SPI, QSPI™, MICROWIRE™ guaranteed to operate at 35Mbps on its 3.3V power supply. During the Power-Up sequence, all control registers of the MAX7317 are in a reset state. Power-Up status sets I/O ports, P0 to P9, into a high impedance state and puts the device into Shutdown mode. The I/O ports P0–P9 remains high impedance with up to 8V asserted on them when the MAX7317 is powered down. Therefore, it can be used in hot-swap applications.
This Click board™ can be operated only with a 3.3V logic voltage level. The board must perform appropriate logic voltage level conversion before use with MCUs with different logic levels. However, the Click board™ comes equipped with a library containing functions and an example code that can be used, as a reference, for further development.
Specifications
Type |
Port expander |
Applications |
Intended for use as a port expander in system monitoring applications, industrial controllers, portable equipment, and many more. |
On-board modules |
MAX7317 - 10-Port SPI-interfaced I/O expander with overvoltage and hot-insertion protection from Maxim Integrated |
Key Features |
10-Port I/O expander, overvoltage protection, support hot-insertion, SPI, QSPI™, MICROWIRE™ compatible serial interface, low power consumption, and more. |
Interface |
SPI |
Compatibility |
mikroBUS |
Click board size |
M (42.9 x 25.4 mm) |
Input Voltage |
3.3V |
Pinout diagram
This table shows how the pinout on Expand 8 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 |
|
|
NC |
2 |
RST |
INT |
15 |
NC |
|
SPI Chip Select |
CS |
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 |
NC |
|
Ground |
GND |
8 |
GND |
GND |
9 |
GND |
Ground |
Onboard settings and indicators
Label |
Name |
Default |
Description |
---|
LD1 |
PWR |
- |
Power LED Indicator |
J1-J2 |
P0-P9 |
Populated |
I/O Expander Port |
Expand 8 Click electrical specifications
Description |
Min |
Typ |
Max |
Unit |
---|
Supply Voltage |
- |
3.3 |
- |
V |
Output Load Voltage P0 - P9 |
- |
- |
7 |
V |
Maximum Output Current |
- |
- |
20 |
mA |
Operating Temperature Range |
-40 |
+25 |
+125 |
°C |
Software Support
We provide a library for the Expand 8 Click 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 covers all the necessary functions to control Expand 8 click board. Library performs a standard SPI interface communication.
Key functions:
void expand8_write_data ( uint8_t addr, uint8_t tx_data )
- Generic write data function.
uint8_t expand8_read_data ( uint8_t addr )
- Generic read data function.
EXPAND8_RETVAL_T expand8_set_port ( uint8_t sel_port, uint8_t sel_imped )
- Set port function.
Examples description
The application is composed of three sections :
- System Initialization - Initializes SPI, set the CS pin as outputs and begins to write log.
- Application Initialization - Initialization driver enables - SPI, also write log.
- Application Task - (code snippet) This is an example that demonstrates the use of the Expand 8 click board. Expand 8 click by toggling each of 10 available ports every 1 second. Results are being sent to the Usart Terminal where you can track their changes.
void application_task ( )
{
expand8_set_port( select_port,
EXPAND8_SET_LOW_IMPEDANCE );
mikrobus_logWrite( " Port P", _LOG_TEXT );
ByteToStr( select_port, demo_text );
Ltrim( demo_text );
mikrobus_logWrite( demo_text, _LOG_TEXT );
mikrobus_logWrite( " ON", _LOG_LINE );
mikrobus_logWrite( "- - - - - - - - - - -", _LOG_LINE );
Delay_ms( 1000 );
expand8_set_port( select_port,
EXPAND8_SET_HIGH_IMPEDANCE );
mikrobus_logWrite( " Port P", _LOG_TEXT );
ByteToStr( select_port, demo_text );
Ltrim( demo_text );
mikrobus_logWrite( demo_text, _LOG_TEXT );
mikrobus_logWrite( " OFF", _LOG_LINE );
mikrobus_logWrite( "---------------------", _LOG_LINE );
Delay_ms( 1000 );
select_port++;
if ( select_port > EXPAND8_ADDR_OUT_LVL_PORT_P9 )
{
select_port = EXPAND8_ADDR_OUT_LVL_PORT_P0;
}
}
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
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.
Resources
Downloads