hbridge11  2.1.0.0
Main Page

H-Bridge 11 Click

H-Bridge 11 Click is a compact add-on board that allows a voltage to be applied across a load in either direction. This board features the MAX22200, an octal serial-controlled solenoid and motor driver from Analog Devices. The MAX22200 is SPI-configurable and rated for an operating voltage range from 4.5V to 36V. Each channel features a low impedance push-pull output stage with sink-and-source driving capability up to 1A RMS driving current. Its internal half-bridges can be configured as low-side or high-side drivers, supports two control methods (voltage and current drive regulation), and features a full set of protections and diagnostic functions.

Click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Feb 2023.
  • Type : SPI type

Software Support

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

Standard key functions :

Example key functions :

  • hbridge11_get_fault_pin This function returns the fault pin logic state.
  • hbridge11_read_flags This function reads and clears the fault flags from the status register.
    err_t hbridge11_read_flags ( hbridge11_t *ctx, uint8_t *fault_flags );
  • hbridge11_set_motor_state This function sets the operating state for the selected motor from the half-bridge pairs 0-1, 2-3, 4-5, or 6-7.
    err_t hbridge11_set_motor_state ( hbridge11_t *ctx, uint8_t motor, uint8_t state );

Example Description

This example demonstrates the use of the H-Bridge 11 Click board by driving the DC motors connected between OUT0-OUT1 and OUT2-OUT3 in both directions.

The demo application is composed of two sections :

Application Init

Initializes the driver and performs the Click default configuration.

void application_init ( void )
{
log_cfg_t log_cfg;
hbridge11_cfg_t hbridge11_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
hbridge11_cfg_setup( &hbridge11_cfg );
HBRIDGE11_MAP_MIKROBUS( hbridge11_cfg, MIKROBUS_1 );
if ( SPI_MASTER_ERROR == hbridge11_init( &hbridge11, &hbridge11_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( HBRIDGE11_ERROR == hbridge11_default_cfg ( &hbridge11 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Drives the motors connected between OUT0-OUT1 and OUT2-OUT3 in both directions in the span of 12 seconds, and logs data on the USB UART where you can track the program flow.

void application_task ( void )
{
log_printf( &logger, "\r\n MOTOR 0: FORWARD\r\n" );
log_printf( &logger, " MOTOR 1: FORWARD\r\n" );
hbridge11_check_fault ( );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, "\r\n MOTOR 0: BRAKE\r\n" );
log_printf( &logger, " MOTOR 1: BRAKE\r\n" );
hbridge11_check_fault ( );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, "\r\n MOTOR 0: REVERSE\r\n" );
log_printf( &logger, " MOTOR 1: REVERSE\r\n" );
hbridge11_check_fault ( );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
log_printf( &logger, "\r\n MOTOR 0: DISCONNECTED\r\n" );
log_printf( &logger, " MOTOR 1: DISCONNECTED\r\n" );
hbridge11_check_fault ( );
Delay_ms ( 1000 );
Delay_ms ( 1000 );
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.HBridge11

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.


hbridge11_read_flags
err_t hbridge11_read_flags(hbridge11_t *ctx, uint8_t *fault_flags)
H-Bridge 11 read flags function.
HBRIDGE11_MOTOR_STATE_REVERSE
#define HBRIDGE11_MOTOR_STATE_REVERSE
Definition: hbridge11.h:217
hbridge11_t
H-Bridge 11 Click context object.
Definition: hbridge11.h:264
HBRIDGE11_MOTOR_STATE_HI_Z
#define HBRIDGE11_MOTOR_STATE_HI_Z
H-Bridge 11 motor state setting.
Definition: hbridge11.h:215
HBRIDGE11_ERROR
@ HBRIDGE11_ERROR
Definition: hbridge11.h:310
hbridge11_cfg_t
H-Bridge 11 Click configuration object.
Definition: hbridge11.h:284
application_task
void application_task(void)
Definition: main.c:73
hbridge11_default_cfg
err_t hbridge11_default_cfg(hbridge11_t *ctx)
H-Bridge 11 default configuration function.
HBRIDGE11_MOTOR_STATE_BRAKE
#define HBRIDGE11_MOTOR_STATE_BRAKE
Definition: hbridge11.h:218
hbridge11_get_fault_pin
uint8_t hbridge11_get_fault_pin(hbridge11_t *ctx)
H-Bridge 11 get fault pin function.
HBRIDGE11_MAP_MIKROBUS
#define HBRIDGE11_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: hbridge11.h:247
hbridge11_init
err_t hbridge11_init(hbridge11_t *ctx, hbridge11_cfg_t *cfg)
H-Bridge 11 initialization function.
hbridge11_set_motor_state
err_t hbridge11_set_motor_state(hbridge11_t *ctx, uint8_t motor, uint8_t state)
H-Bridge 11 set motor state function.
HBRIDGE11_MOTOR_SEL_1
#define HBRIDGE11_MOTOR_SEL_1
Definition: hbridge11.h:207
application_init
void application_init(void)
Definition: main.c:38
hbridge11_cfg_setup
void hbridge11_cfg_setup(hbridge11_cfg_t *cfg)
H-Bridge 11 configuration object setup function.
HBRIDGE11_MOTOR_SEL_0
#define HBRIDGE11_MOTOR_SEL_0
H-Bridge 11 motor selection setting.
Definition: hbridge11.h:206
HBRIDGE11_MOTOR_STATE_FORWARD
#define HBRIDGE11_MOTOR_STATE_FORWARD
Definition: hbridge11.h:216