1-Wire I2C click
1-Wire I2C click carries DS28E17 1-Wire-to-I2C master bridge from Analog Devices.
click Product page
Click library
- Author : Stefan Filipovic
- Date : Feb 2024.
- Type : One Wire type
Software Support
We provide a library for the 1-Wire I2C 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 1-Wire I2C Click driver.
Standard key functions :
c1wirei2c_cfg_setup
Config Object Initialization function.
void c1wirei2c_cfg_setup(c1wirei2c_cfg_t *cfg)
1-Wire I2C configuration object setup function.
1-Wire I2C Click configuration object.
Definition c1wirei2c.h:175
c1wirei2c_init
Initialization function.
err_t c1wirei2c_init(c1wirei2c_t *ctx, c1wirei2c_cfg_t *cfg)
1-Wire I2C initialization function.
1-Wire I2C Click context object.
Definition c1wirei2c.h:158
c1wirei2c_default_cfg
Click Default Configuration function.
err_t c1wirei2c_default_cfg(c1wirei2c_t *ctx)
1-Wire I2C default configuration function.
Example key functions :
c1wirei2c_reset_device
This function resets the device by toggling the RST pin state.
void c1wirei2c_reset_device(c1wirei2c_t *ctx)
1-Wire I2C reset device function.
c1wirei2c_write_data
This function addresses and writes 1-255 bytes to an I2C slave without completing the transaction with a stop.
err_t c1wirei2c_write_data(c1wirei2c_t *ctx, uint8_t slave_addr, uint8_t *data_in, uint8_t len)
1-Wire I2C write data function.
c1wirei2c_read_data_stop
This function is used to address and read 1-255 bytes from an I2C slave in one transaction.
err_t c1wirei2c_read_data_stop(c1wirei2c_t *ctx, uint8_t slave_addr, uint8_t *data_out, uint8_t len)
1-Wire I2C read data stop function.
Example Description
This example demonstrates the use of 1-Wire I2C click board by reading the temperature measurement from connected Thermo 4 click board.
The demo application is composed of two sections :
Application Init
Initializes the driver and performs the click default configuration.
{
log_cfg_t log_cfg;
LOG_MAP_USB_UART( log_cfg );
log_init( &logger, &log_cfg );
log_info( &logger, " Application Init " );
{
log_error( &logger, " Communication init." );
for ( ; ; );
}
{
log_error( &logger, " Default configuration." );
for ( ; ; );
}
log_info( &logger, " Application Task " );
}
@ C1WIREI2C_ERROR
Definition c1wirei2c.h:194
#define C1WIREI2C_MAP_MIKROBUS(cfg, mikrobus)
MikroBUS pin mapping.
Definition c1wirei2c.h:134
void application_init(void)
Definition main.c:35
Application Task
Reads the temperature measurement from connected Thermo 4 click board and displays the results on the USB UART once per second.
{
float temperature = 0;
uint8_t reg_data[ 2 ] = { 0 };
{
temperature = ( ( ( int16_t ) ( ( ( uint16_t ) reg_data[ 0 ] << 8 ) |
log_printf( &logger,
"\r\n%s - Temperature: %.3f degC\r\n", (
char * )
DEVICE_NAME, temperature );
}
else
{
log_error( &logger,
"%s - no communication!\r\n", (
char * )
DEVICE_NAME );
}
Delay_ms ( 1000 );
}
@ C1WIREI2C_OK
Definition c1wirei2c.h:193
#define DEVICE_TEMPERATURE_RES
Definition main.c:30
void application_task(void)
Definition main.c:71
#define DEVICE_NAME
Definition main.c:27
#define DEVICE_SLAVE_ADDRESS
Definition main.c:28
#define DEVICE_REG_TEMPERATURE
Definition main.c:29
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.1WireI2C
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.