magneto6  2.1.0.0
Main Page

Magneto 6 click

Magneto 6 Click features low power three dimensional Hall effect sensor, TLI493D-A2B6, designed for magnetic sensing applications. It measures the magnetic field in X, Y, and Z direction. Each X, Y and Z Hall probe is connected sequentially to a multiplexer, which is then connected to an Analog to Digital Converter (ADC). Optional, the temperature can be determined as well after the three Hall channels. The data measurement is provided in digital format to the microcontroller over the standard I2C interface. Some of the benefits of this Click boardâ„¢ are wide application range addressable due to high flexibility and component reduction due to the 3D magnetic measurement principle.

click Product page


Click library

  • Author : Stefan Filipovic
  • Date : Feb 2024.
  • Type : I2C type

Software Support

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

Standard key functions :

Example key functions :

  • magneto6_read_data This function reads the measurements of the 3-axes magnetic field sensor in mT and the temperature sensor in degrees Celsius.
    err_t magneto6_read_data ( magneto6_t *ctx, magneto6_data_t *data_out );
  • magneto6_read_reg This function reads a desired number of data bytes starting from the selected register by using I2C serial interface.
    err_t magneto6_read_reg ( magneto6_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len );
  • magneto6_write_reg This function writes a data byte to the selected register by using I2C serial interface.
    err_t magneto6_write_reg ( magneto6_t *ctx, uint8_t reg, uint8_t data_in );

Example Description

This example demonstrates the use of Magneto 6 click board by reading the magnetic field strength from 3 axes as well as the ambient temperature measurements.

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;
magneto6_cfg_t magneto6_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
// Click initialization.
magneto6_cfg_setup( &magneto6_cfg );
MAGNETO6_MAP_MIKROBUS( magneto6_cfg, MIKROBUS_1 );
if ( I2C_MASTER_ERROR == magneto6_init( &magneto6, &magneto6_cfg ) )
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
if ( MAGNETO6_ERROR == magneto6_default_cfg ( &magneto6 ) )
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}

Application Task

Reads data from the sensor and displays them on the USB UART once per second.

void application_task ( void )
{
magneto6_data_t data_res;
if ( MAGNETO6_OK == magneto6_read_data ( &magneto6, &data_res ) )
{
log_printf( &logger, " X data: %.1f mT\r\n", data_res.x_data );
log_printf( &logger, " Y data: %.1f mT\r\n", data_res.y_data );
log_printf( &logger, " Z data: %.1f mT\r\n", data_res.z_data );
log_printf( &logger, " Temperature: %.2f degC\r\n\n", data_res.temperature );
}
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.Magneto6

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.


magneto6_data_t::temperature
float temperature
Definition: magneto6.h:219
magneto6_data_t::z_data
float z_data
Definition: magneto6.h:218
magneto6_default_cfg
err_t magneto6_default_cfg(magneto6_t *ctx)
Magneto 6 default configuration function.
magneto6_read_reg
err_t magneto6_read_reg(magneto6_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Magneto 6 read reg function.
magneto6_cfg_setup
void magneto6_cfg_setup(magneto6_cfg_t *cfg)
Magneto 6 configuration object setup function.
MAGNETO6_MAP_MIKROBUS
#define MAGNETO6_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition: magneto6.h:201
application_task
void application_task(void)
Definition: main.c:64
MAGNETO6_OK
@ MAGNETO6_OK
Definition: magneto6.h:268
magneto6_data_t
Magneto 6 Click data object.
Definition: magneto6.h:215
magneto6_read_data
err_t magneto6_read_data(magneto6_t *ctx, magneto6_data_t *data_out)
Magneto 6 read data function.
MAGNETO6_ERROR
@ MAGNETO6_ERROR
Definition: magneto6.h:269
magneto6_data_t::y_data
float y_data
Definition: magneto6.h:217
magneto6_cfg_t
Magneto 6 Click configuration object.
Definition: magneto6.h:251
magneto6_t
Magneto 6 Click context object.
Definition: magneto6.h:228
application_init
void application_init(void)
Definition: main.c:28
magneto6_data_t::x_data
float x_data
Definition: magneto6.h:216
magneto6_init
err_t magneto6_init(magneto6_t *ctx, magneto6_cfg_t *cfg)
Magneto 6 initialization function.
magneto6_write_reg
err_t magneto6_write_reg(magneto6_t *ctx, uint8_t reg, uint8_t data_in)
Magneto 6 write reg function.