I2C Master
Functions for using Inter-Integrated Circuit (I2C) peripheral. More...
Modules |
|
Types | |
Hardware I2C data types.
|
|
Macros | |
Hardware I2C macros.
|
|
Functions |
|
gos_result_t | gos_i2c_stream_configure ( gos_i2c_t port, uint8_t slave_address, uint32_t clock_rate, uint16_t retries, gos_i2c_stream_flag_t flags) |
Configure an I2C slave device.
More...
|
|
gos_result_t | gos_i2c_stream_open ( gos_handle_t *handle_ptr, uint16_t rx_buffer_size) |
Open data stream with I2C slave device.
More...
|
|
gos_result_t | gos_i2c_stream_write ( gos_handle_t handle, const void *data, uint32_t size, gos_i2c_stream_write_flag_t flags) |
Write I2C data stream.
More...
|
|
gos_result_t | gos_i2c_stream_read ( gos_handle_t handle, void *data, uint32_t max_size, uint32_t *bytes_read_ptr) |
Read I2C data stream.
More...
|
|
gos_result_t | gos_i2c_stream_write_reg8 ( gos_handle_t handle, uint8_t reg_address, uint8_t value) |
Write I2C device's register with 8bit value.
More...
|
|
gos_result_t | gos_i2c_stream_write_reg ( gos_handle_t handle, uint8_t reg_address, const uint8_t *data, uint16_t length) |
Write I2C device's register with given data.
More...
|
|
gos_result_t | gos_i2c_stream_read_reg8 ( gos_handle_t handle, uint8_t reg_address, uint8_t *value_ptr) |
Read I2C device's register's 8bit value.
More...
|
|
gos_result_t | gos_i2c_stream_read_reg ( gos_handle_t handle, uint8_t reg_address, uint8_t *data, uint16_t length) |
Read I2C device's register(s) into given buffer.
More...
|
|
gos_result_t | gos_i2c_stream_close ( gos_handle_t handle) |
Close I2C data stream.
More...
|
|
gos_result_t | gos_i2c_stream_set_slave_address ( gos_handle_t handle, uint8_t slave_address) |
Set I2C data stream's slave address.
More...
|
|
gos_result_t | gos_i2c_init (const gos_i2c_device_t *i2c) |
Initialize the I2C bus.
More...
|
|
gos_result_t | gos_i2c_transfer (const gos_i2c_device_t *i2c, const gos_i2c_message_t *messages, uint16_t message_count) |
Transfer I2C messages.
More...
|
|
gos_result_t | gos_i2c_master_write_reg8 (const gos_i2c_device_t *i2c, uint8_t reg_address, uint8_t value) |
Write register with 8bit value.
More...
|
|
gos_result_t | gos_i2c_master_write_reg (const gos_i2c_device_t *i2c, uint8_t reg_address, const uint8_t *data, uint16_t length) |
Write register with given buffer.
More...
|
|
gos_result_t | gos_i2c_master_read_reg8 (const gos_i2c_device_t *i2c, uint8_t reg_address, uint8_t *value_ptr) |
Read register's 8bit value.
More...
|
|
gos_result_t | gos_i2c_master_read_reg (const gos_i2c_device_t *i2c, uint8_t reg_address, uint8_t *data, uint16_t length) |
Read register into given buffer.
More...
|
|
Detailed Description
Functions for using Inter-Integrated Circuit (I2C) peripheral.
Function Documentation
◆ gos_i2c_init()
gos_result_t gos_i2c_init | ( | const gos_i2c_device_t * |
i2c
|
) |
Initialize the I2C bus.
This API directly accesses the I2C driver.
- Note
- gos_i2c_transfer() will automatically initialize the bus, is this only needed to re-initialize the bus
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t
- Returns
- result of API call
◆ gos_i2c_master_read_reg()
gos_result_t gos_i2c_master_read_reg | ( | const gos_i2c_device_t * |
i2c,
|
uint8_t |
reg_address,
|
||
uint8_t * |
data,
|
||
uint16_t |
length
|
||
) |
Read register into given buffer.
- Note
- This API directly accesses the I2C driver.
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t [in] reg_address
8bit I2C slave register address [out] data
Buffer to hold register value(s) [in] length
Number of bytes to read
- Returns
- result of API call
◆ gos_i2c_master_read_reg8()
gos_result_t gos_i2c_master_read_reg8 | ( | const gos_i2c_device_t * |
i2c,
|
uint8_t |
reg_address,
|
||
uint8_t * |
value_ptr
|
||
) |
Read register's 8bit value.
- Note
- This API directly accesses the I2C driver.
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t [in] reg_address
8bit I2C slave device register address [out] value_ptr
Value of register
- Returns
- result of API call
◆ gos_i2c_master_write_reg()
gos_result_t gos_i2c_master_write_reg | ( | const gos_i2c_device_t * |
i2c,
|
uint8_t |
reg_address,
|
||
const uint8_t * |
data,
|
||
uint16_t |
length
|
||
) |
Write register with given buffer.
- Note
- This API directly accesses the I2C driver.
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t [in] reg_address
8bit I2C slave device register address [in] data
Data to write to slave device's register(s) [in] length
Number of bytes to write to device
- Returns
- result of API call
◆ gos_i2c_master_write_reg8()
gos_result_t gos_i2c_master_write_reg8 | ( | const gos_i2c_device_t * |
i2c,
|
uint8_t |
reg_address,
|
||
uint8_t |
value
|
||
) |
Write register with 8bit value.
- Note
- This API directly accesses the I2C driver.
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t [in] reg_address
8bit I2C slave device register address [in] value
8bit value to write to slave device's register
- Returns
- result of API call
◆ gos_i2c_stream_close()
gos_result_t gos_i2c_stream_close | ( | gos_handle_t |
handle
|
) |
Close I2C data stream.
See Gecko OS Command API documentation: stream_close
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream
- Returns
- result of API call
◆ gos_i2c_stream_configure()
gos_result_t gos_i2c_stream_configure | ( | gos_i2c_t |
port,
|
uint8_t |
slave_address,
|
||
uint32_t |
clock_rate,
|
||
uint16_t |
retries,
|
||
gos_i2c_stream_flag_t |
flags
|
||
) |
Configure an I2C slave device.
See Gecko OS Command API documentation: i2c_master_config .
- Parameters
-
[in] port
I2C peripheral port, see gos_i2c_t [in] slave_address
7bit slave address of I2C device [in] clock_rate
Clock rate of I2C device [in] retries
Number of attempts to read/write a message from/to slave device [in] flags
Configuration flags
- Returns
- result of API call
◆ gos_i2c_stream_open()
gos_result_t gos_i2c_stream_open | ( | gos_handle_t * |
handle_ptr,
|
uint16_t |
rx_buffer_size
|
||
) |
Open data stream with I2C slave device.
See Gecko OS Command API documentation: i2c_master_open .
The device must have been previously configured with gos_i2c_stream_configure()
Once opened used a gos_i2c_stream_xxx API to read/write the device.
- Parameters
-
[out] handle_ptr
Stream handle of opened I2C slave stream [in] rx_buffer_size
Size of RX buffer in bytes
- Returns
- result of API call
◆ gos_i2c_stream_read()
gos_result_t gos_i2c_stream_read | ( | gos_handle_t |
handle,
|
void * |
data,
|
||
uint32_t |
max_size,
|
||
uint32_t * |
bytes_read_ptr
|
||
) |
Read I2C data stream.
See Gecko OS Command API documentation: stream_read , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [out] data
Buffer to hold read data [in] max_size
Maximum number of bytes to read [out] bytes_read_ptr
Number of bytes actually read
- Returns
- result of API call
◆ gos_i2c_stream_read_reg()
gos_result_t gos_i2c_stream_read_reg | ( | gos_handle_t |
handle,
|
uint8_t |
reg_address,
|
||
uint8_t * |
data,
|
||
uint16_t |
length
|
||
) |
Read I2C device's register(s) into given buffer.
See Gecko OS Command API documentation: stream_read , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] reg_address
8bit I2C slave register address [out] data
Buffer to hold register value(s) [in] length
Number of bytes to read
- Returns
- result of API call
◆ gos_i2c_stream_read_reg8()
gos_result_t gos_i2c_stream_read_reg8 | ( | gos_handle_t |
handle,
|
uint8_t |
reg_address,
|
||
uint8_t * |
value_ptr
|
||
) |
Read I2C device's register's 8bit value.
See Gecko OS Command API documentation: stream_read , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] reg_address
8bit I2C slave register address [out] value_ptr
Value of register
- Returns
- result of API call
◆ gos_i2c_stream_set_slave_address()
gos_result_t gos_i2c_stream_set_slave_address | ( | gos_handle_t |
handle,
|
uint8_t |
slave_address
|
||
) |
Set I2C data stream's slave address.
Multiple I2C devices may be accessed using the same I2C stream. Each I2C device should first be configured using gos_i2c_stream_configure() . This API can then be used to switch between the I2C slave devices.
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] slave_address
Slave address to update given I2C stream
- Returns
- result of API call
◆ gos_i2c_stream_write()
gos_result_t gos_i2c_stream_write | ( | gos_handle_t |
handle,
|
const void * |
data,
|
||
uint32_t |
size,
|
||
gos_i2c_stream_write_flag_t |
flags
|
||
) |
Write I2C data stream.
See Gecko OS Command API documentation: stream_write , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] data
Data to write to device [in] size
Size in bytes of data to write [in] flags
Additional write flags, see gos_i2c_stream_write_flag_t
- Returns
- result of API call
◆ gos_i2c_stream_write_reg()
gos_result_t gos_i2c_stream_write_reg | ( | gos_handle_t |
handle,
|
uint8_t |
reg_address,
|
||
const uint8_t * |
data,
|
||
uint16_t |
length
|
||
) |
Write I2C device's register with given data.
See Gecko OS Command API documentation: stream_write , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] reg_address
8bit I2C slave register address [in] data
Data to write [in] length
Size in bytes of data to write
- Returns
- result of API call
◆ gos_i2c_stream_write_reg8()
gos_result_t gos_i2c_stream_write_reg8 | ( | gos_handle_t |
handle,
|
uint8_t |
reg_address,
|
||
uint8_t |
value
|
||
) |
Write I2C device's register with 8bit value.
See Gecko OS Command API documentation: stream_write , i2c_master_open .
- Note
- Stream handles start at 1, max handle value is GOS_MAX_STREAMS
- Parameters
-
[in] handle
Handle of I2C stream [in] reg_address
8bit I2C slave register address [in] value
8bit value to write to slave
- Returns
- result of API call
◆ gos_i2c_transfer()
gos_result_t gos_i2c_transfer | ( | const gos_i2c_device_t * |
i2c,
|
const gos_i2c_message_t * |
messages,
|
||
uint16_t |
message_count
|
||
) |
Transfer I2C messages.
Transfer one or more messages to/from an I2C slave device.
- Note
- This API directly accesses the I2C driver.
- Parameters
-
[in] i2c
I2C slave device, see gos_i2c_device_t [in,out] messages
Array of gos_i2c_message_t to send/receive to/from I2C slave device [in] message_count
Number of messages to transfer
- Returns
- result of API call