irda2  2.0.0.0
Main Page

IrDA 2 click

IrDA2 click features the TFDU4101 infrared transceiver module as well as MCP2120 infrared encoder/decoder from Microchip connected with the 7.3728 MHz external crystal. The click is designed to run on either 3.3V or 5V power supply. It communicates with the target board via UART interface and the following mikroBUS™ pins: AN, RST, CS.

click Product page


Click library

  • Author : Jelena Milosavljevic
  • Date : Jun 2021.
  • Type : UART type

Software Support

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

Standard key functions :

Example key functions :

Example Description

This example demonstrates the use of IrDA 2 click boards. The example can perform both roles, transmitter and receiver.

The demo application is composed of two sections :

Application Init

Initializes UART driver and all used control pins. Also clears the response buffer.

void application_init( void ) {
irda2_cfg_t irda2_cfg;
log_cfg_t logger_cfg;
// Logger initialization.
LOG_MAP_USB_UART( logger_cfg );
logger_cfg.level = LOG_LEVEL_DEBUG;
logger_cfg.baud = 115200;
log_init( &logger, &logger_cfg );
log_printf( &logger, "*** IrDA initialization done ***\r\n" );
log_printf( &logger, "**********************************\r\n" );
// Click initialization.
irda2_cfg_setup( &irda2_cfg );
IRDA2_MAP_MIKROBUS( irda2_cfg, MIKROBUS_1 );
irda2_init( &irda2, &irda2_cfg );
irda2_default_cfg( &irda2 );
irda2_reset( &irda2 );
// Clear response.
memset( rx_message, 0, sizeof( rx_message ) );
}

Application Task

Demonstrates the use of IrDA clicks which can be used as transmitter or receiver. There are four different examples in this project.

Uncomment one of the below macros to select which example will be executed. By default the DEMO_APP_TRANSMITTER_1 example is selected.

void application_task( void ) {
#ifdef DEMO_APP_RECEIVER_1
rx_message[ 0 ] = irda2_generic_single_receive( &irda2 );
if ( rx_message[ 0 ] != 0 ) {
log_printf( &logger, "%c", ( char ) rx_message[ 0 ] );
}
Delay_ms( 100 );
#endif
#ifdef DEMO_APP_RECEIVER_2
irda2_generic_multiple_receive( &irda2, rx_message, '\n' );
log_printf( &logger, "RECEIVED MESSAGE : " );
log_printf( &logger, "%s\r\n", rx_message );
Delay_ms( 100 );
#endif
#ifdef DEMO_APP_TRANSMITTER_1
irda2_generic_multiple_send( &irda2, tx_message );
log_printf( &logger, "MESSAGE SENT\r\n" );
Delay_ms( 2000 );
#endif
#ifdef DEMO_APP_TRANSMITTER_2
idx = 0;
while ( tx_message[ idx ] != '\0' ) {
irda2_generic_single_send( &irda2, tx_message[ idx++ ] );
}
log_printf( &logger, "MESSAGE SENT\r\n" );
Delay_ms( 2000 );
#endif
}

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

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.


irda2_mode_t
irda2_mode_t
Click mode settings.
Definition: irda2.h:153
irda2_reset
void irda2_reset(irda2_t *ctx)
Reset function.
irda2_init
err_t irda2_init(irda2_t *ctx, irda2_cfg_t *cfg)
IrDA 2 initialization function.
irda2_pwr_t
irda2_pwr_t
Click power mode settings.
Definition: irda2.h:163
irda2_generic_multiple_send
void irda2_generic_multiple_send(irda2_t *ctx, char *tx_data)
Generic Multiple Send function.
IRDA2_MAP_MIKROBUS
#define IRDA2_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: irda2.h:78
application_task
void application_task(void)
Definition: main.c:74
irda2_generic_multiple_receive
void irda2_generic_multiple_receive(irda2_t *ctx, char *rx_data, char termination_char)
Generic Multiple Receive function.
irda2_mode_setup
void irda2_mode_setup(irda2_t *ctx, irda2_mode_t state)
Mode Setup function.
irda2_default_cfg
void irda2_default_cfg(irda2_t *ctx)
IrDA 2 default configuration function.
irda2_t
IrDA 2 Click context object.
Definition: irda2.h:93
irda2_cfg_setup
void irda2_cfg_setup(irda2_cfg_t *cfg)
IrDA 2 configuration object setup function.
application_init
void application_init(void)
Definition: main.c:48
irda2_cfg_t
IrDA 2 Click configuration object.
Definition: irda2.h:116
irda2_generic_single_send
void irda2_generic_single_send(irda2_t *ctx, char tx_data)
Generic Single Send function.
irda2_generic_single_receive
char irda2_generic_single_receive(irda2_t *ctx)
Generic Single Receive function.
irda2_pwr_setup
void irda2_pwr_setup(irda2_t *ctx, irda2_pwr_t state)
Power Setup function.