Magneto 6 Click Board
Magneto 6 Click Board
Overview
The Magneto 6 Click Board™ features low power three dimensional Hall effect sensor, TLI493D-A2B6, designed for magnetic sensing applications. It measures the magnetic field in the X, Y, and Z directions. 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.
The Magneto 6 Click Board™ is ideal for use in various applications, such as robotics, stick position sensing, control elements for navigation systems, anti-tampering in smart meters, and more.
How Does The Magneto 6 Click Board™ Work?
The Magneto 6 Click Board™ uses the TLI493D-A2B6 IC, low power three dimensional Hall effect sensor with I2C interface, from Infineon. Within its small 6-pin package the sensor provides direct measurement of the X, Y, and Z components of a magnetic field. This sensor offers accurate three dimensional sensing with extremely low power consumption and consists of three main functional units:
- The power mode control system, containing a low-power oscillator, basic biasing, accurate restart, undervoltage detection, and a fast oscillator.
- The sensing unit, which contains the HALL biasing, HALL probes with multiplexers, and successive tracking ADC, as well as a temperature sensor.
- The I2C interface, containing the register files.
Some of the main characteristics of this sensor IC are 3D magnetic flux density sensing of ±160 mT, 12-bit data resolution for each measurement direction plus 10-bit temperature sensor, programmable flux resolution down to 65 μT, and interrupt signal to indicate a valid measurement to the microcontroller. For a good adaptation, this sensor is equipped with different modes and a digital communication interface. I2C interface can be accessed in any power mode. The interrupt function is multiplexed with the I2C SCL pin, and can be used to indicate measurement completion. The use of an interrupt line is optional but highly recommended to ensure proper and efficient readout of the sensor data. The Magneto 6 Click Board™ is ideally suited for the measurement of 3 dimensional movement within a magnetic field, linear slide movement, or 360° angle rotation. The magnetic measurement values are provided in the two's complement with 12-bit or 8-bit resolution in the registers with the symbols Bx, By, and Bz. By default, the temperature measurement is activated. The temperature measurement can be disabled if it is not needed and to increase the speed of the repetition of the magnetic values.
This Click Board™ uses I2C communication interface, and it's designed to be operated only with 3.3V logic level. A proper logic voltage level conversion should be performed before the Click board™ is used with MCUs with logic levels of 5V. More information about the TLI493D-A2B6 can be found in the attached datasheet. The Magneto 6 Click Board™ comes equipped with a library that contains easy to use functions and a usage example that may be used as a reference for the development.
SPECIFICATIONS
Type | Magnetic |
Applications | The TLI493D-A2B6 is designed for all kinds of sensing applications, it can be used for multi function knobs, joystick and gimbals, robotics position sensing. |
On-board modules | The Magneto 6 Click Board™ uses the TLI493DA2B6 IC, a high accuracy magnetic sensor, from Infineon Technologies. |
Key Features | Low-power oscillator, basic biasing, accurate restart, undervoltage detection, fast oscillator, HALL biasing, HALL probes with multiplexers, successive tracking ADC, temperature sensor, I2C interface |
Interface | GPIO,I2C |
Compatibility | mikroBUS |
Click board size | S (28.6 x 25.4 mm) |
Input Voltage | 3.3V |
PINOUT DIAGRAM
This table shows how the pinout of the Magneto 6 Click Board™ 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 | INT | Interrupt | |
Interrupt Enable | IEN | 3 | CS | RX | 14 | NC | |
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | SCL | I2C Clock | |
NC | 6 | MOSI | SDA | 11 | SDA | I2C Data | |
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 |
Software Support
We provide a library for the Magneto 6 Click Board™ 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
Library provides functions for reading and writing data via I2C module. There are additional functions for reading device ID, device type and hardware version of the device. Library has functions for reading data from sensor data values, temperature data and magnetic data.
Key Functions
void magneto6_generic_write ( uint8_t reg_adr, uint8_t trigger, uint8_t tx_data )
- Function for writing byte data to device.int16_t magneto6_get_temp_value ( void )
- Function for reading temperature value from device and converting it to degrees Celsius.void magneto6_get_axes_value ( magneto6_axes_t *axes )
- Function for reading magnetic data from device for all three axes.
Example Description
The application is composed of three sections :
- sys_init - Initialization of i2c and log modules, and additional pins
- app_cfg - Reading device information and configuring device
- app_task - Reading values from device
void app_task ( void ) { if ( TEMPERATURE == demo_type ) { sens_data = magneto6_get_temp_value( ); IntToStr( sens_data, demo_txt ); Ltrim( demo_txt ); log_text( " Temperature: " ); log_line( demo_txt ); } else { magneto6_get_axes_value( &axes_val ); IntToStr( axes_val.x, demo_txt ); Ltrim( demo_txt ); log_text( " X: " ); log_line( demo_txt ); IntToStr( axes_val.y, demo_txt ); Ltrim( demo_txt ); log_text( " Y: " ); log_line( demo_txt ); IntToStr( axes_val.z, demo_txt ); Ltrim( demo_txt ); log_text( " Z: " ); log_line( demo_txt ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- Conversion
- UART
- I2C
Additional Notes and Information
Depending on the development board you are using, you may need a 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
The Magneto 6 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.
Software Support
We provide a library for the Magneto 6 Click Board™ 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
Library provides functions for reading and writing data via I2C module. There are additional functions for reading device ID, device type and hardware version of the device. Library has functions for reading data from sensor data values, temperature data and magnetic data.
Key Functions
void magneto6_generic_write ( uint8_t reg_adr, uint8_t trigger, uint8_t tx_data )
- Function for writing byte data to device.int16_t magneto6_get_temp_value ( void )
- Function for reading temperature value from device and converting it to degrees Celsius.void magneto6_get_axes_value ( magneto6_axes_t *axes )
- Function for reading magnetic data from device for all three axes.
Example Description
The application is composed of three sections :
- sys_init - Initialization of i2c and log modules, and additional pins
- app_cfg - Reading device information and configuring device
- app_task - Reading values from device
void app_task ( void ) { if ( TEMPERATURE == demo_type ) { sens_data = magneto6_get_temp_value( ); IntToStr( sens_data, demo_txt ); Ltrim( demo_txt ); log_text( " Temperature: " ); log_line( demo_txt ); } else { magneto6_get_axes_value( &axes_val ); IntToStr( axes_val.x, demo_txt ); Ltrim( demo_txt ); log_text( " X: " ); log_line( demo_txt ); IntToStr( axes_val.y, demo_txt ); Ltrim( demo_txt ); log_text( " Y: " ); log_line( demo_txt ); IntToStr( axes_val.z, demo_txt ); Ltrim( demo_txt ); log_text( " Z: " ); log_line( demo_txt ); }
The full application code, and ready to use projects can be found on our LibStock page.
Other mikroE Libraries used in the example:
- Conversion
- UART
- I2C
Additional Notes and Information
Depending on the development board you are using, you may need a 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
The Magneto 6 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.
Magneto 6 Click Board
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.