ipd2017  2.1.0.0
Main Page

IPD 2017 Click

IPD Click is a compact add-on board for controlling inductive and resistive loads in industrial automation and other demanding applications. This board features the TPD2017FN, an 8-channel low-side switch with MOSFET outputs from Toshiba Semiconductor.

Click Product page


Click library

  • Author : Stefan Ilic
  • Date : Nov 2023.
  • Type : GPIO type

Software Support

We provide a library for the IPD 2017 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 IPD 2017 Click driver.

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of IPD 2017 Click board by toggling the output state.

The demo application is composed of two sections :

Application Init

Initializes the driver and logger.

void application_init ( void )
{
log_cfg_t log_cfg;
ipd2017_cfg_t ipd2017_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
ipd2017_cfg_setup( &ipd2017_cfg );
IPD2017_MAP_MIKROBUS( ipd2017_cfg, MIKROBUS_1 );
if ( DIGITAL_OUT_UNSUPPORTED_PIN == ipd2017_init( &ipd2017, &ipd2017_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Switches on all output pins state for 2 seconds, then switches them off, and turns them on one by one.

void application_task ( void )
{
log_printf( &logger, " Turning OUT 1 to OUT 4 HIGH \r\n" );
ipd2017_all_pins_set( &ipd2017 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, " Turning OUT 1 to OUT 4 LOW \r\n" );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, " Turning OUT 1 to OUT 4 one by one \r\n" );
uint8_t out_sel = IPD2017_OUT1_PIN_MASK;
do
{
Delay_ms ( 1000 );
Delay_ms ( 1000 );
out_sel <<= 1;
}
while ( out_sel <= IPD2017_OUT4_PIN_MASK );
}

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.IPD2017

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. UART terminal is available in all MikroElektronika compilers.


IPD2017_OUT1_PIN_MASK
#define IPD2017_OUT1_PIN_MASK
Definition: ipd2017.h:68
ipd2017_cfg_t
IPD 2017 Click configuration object.
Definition: ipd2017.h:126
ipd2017_init
err_t ipd2017_init(ipd2017_t *ctx, ipd2017_cfg_t *cfg)
IPD 2017 initialization function.
ipd2017_cfg_setup
void ipd2017_cfg_setup(ipd2017_cfg_t *cfg)
IPD 2017 configuration object setup function.
application_task
void application_task(void)
Definition: main.c:57
ipd2017_all_pins_clear
void ipd2017_all_pins_clear(ipd2017_t *ctx)
IPD 2017 pin clearing function.
IPD2017_OUT4_PIN_MASK
#define IPD2017_OUT4_PIN_MASK
Definition: ipd2017.h:71
IPD2017_MAP_MIKROBUS
#define IPD2017_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: ipd2017.h:97
IPD2017_PIN_STATE_HIGH
#define IPD2017_PIN_STATE_HIGH
IPD 2017 pin state setting.
Definition: ipd2017.h:78
ipd2017_get_out_state
uint8_t ipd2017_get_out_state(ipd2017_t *ctx)
IPD 2017 get output level function.
ipd2017_set_out_level
err_t ipd2017_set_out_level(ipd2017_t *ctx, uint8_t out_sel, uint8_t state)
IPD 2017 set output level function.
application_init
void application_init(void)
Definition: main.c:27
ipd2017_t
IPD 2017 Click context object.
Definition: ipd2017.h:111
ipd2017_all_pins_set
void ipd2017_all_pins_set(ipd2017_t *ctx)
IPD 2017 pin setting function.
IPD2017_PIN_STATE_LOW
#define IPD2017_PIN_STATE_LOW
Definition: ipd2017.h:79