Da Vinci Firmware 1
Firmware for the DaVinci-M rocket avionics board.
Loading...
Searching...
No Matches

This section groups all the functions that manage the sensor hub. More...

Collaboration diagram for LSM6DSO32_Sensor_hub:

Functions

int32_t lsm6dso32_sh_read_data_raw_get (stmdev_ctx_t *ctx, lsm6dso32_emb_sh_read_t *val)
 Sensor hub output registers.[get].
 
int32_t lsm6dso32_sh_slave_connected_set (stmdev_ctx_t *ctx, lsm6dso32_aux_sens_on_t val)
 Number of external sensors to be read by the sensor hub.[set].
 
int32_t lsm6dso32_sh_slave_connected_get (stmdev_ctx_t *ctx, lsm6dso32_aux_sens_on_t *val)
 Number of external sensors to be read by the sensor hub.[get].
 
int32_t lsm6dso32_sh_master_set (stmdev_ctx_t *ctx, uint8_t val)
 Sensor hub I2C master enable.[set].
 
int32_t lsm6dso32_sh_master_get (stmdev_ctx_t *ctx, uint8_t *val)
 Sensor hub I2C master enable.[get].
 
int32_t lsm6dso32_sh_pin_mode_set (stmdev_ctx_t *ctx, lsm6dso32_shub_pu_en_t val)
 Master I2C pull-up enable.[set].
 
int32_t lsm6dso32_sh_pin_mode_get (stmdev_ctx_t *ctx, lsm6dso32_shub_pu_en_t *val)
 Master I2C pull-up enable.[get].
 
int32_t lsm6dso32_sh_pass_through_set (stmdev_ctx_t *ctx, uint8_t val)
 I2C interface pass-through.[set].
 
int32_t lsm6dso32_sh_pass_through_get (stmdev_ctx_t *ctx, uint8_t *val)
 I2C interface pass-through.[get].
 
int32_t lsm6dso32_sh_syncro_mode_set (stmdev_ctx_t *ctx, lsm6dso32_start_config_t val)
 Sensor hub trigger signal selection.[set].
 
int32_t lsm6dso32_sh_syncro_mode_get (stmdev_ctx_t *ctx, lsm6dso32_start_config_t *val)
 Sensor hub trigger signal selection.[get].
 
int32_t lsm6dso32_sh_write_mode_set (stmdev_ctx_t *ctx, lsm6dso32_write_once_t val)
 Slave 0 write operation is performed only at the first sensor hub cycle.[set].
 
int32_t lsm6dso32_sh_write_mode_get (stmdev_ctx_t *ctx, lsm6dso32_write_once_t *val)
 Slave 0 write operation is performed only at the first sensor hub cycle.[get].
 
int32_t lsm6dso32_sh_reset_set (stmdev_ctx_t *ctx)
 Reset Master logic and output registers.[set].
 
int32_t lsm6dso32_sh_reset_get (stmdev_ctx_t *ctx, uint8_t *val)
 Reset Master logic and output registers.[get].
 
int32_t lsm6dso32_sh_data_rate_set (stmdev_ctx_t *ctx, lsm6dso32_shub_odr_t val)
 Rate at which the master communicates.[set].
 
int32_t lsm6dso32_sh_data_rate_get (stmdev_ctx_t *ctx, lsm6dso32_shub_odr_t *val)
 Rate at which the master communicates.[get].
 
int32_t lsm6dso32_sh_cfg_write (stmdev_ctx_t *ctx, lsm6dso32_sh_cfg_write_t *val)
 Configure slave 0 for perform a write.[set].
 
int32_t lsm6dso32_sh_slv0_cfg_read (stmdev_ctx_t *ctx, lsm6dso32_sh_cfg_read_t *val)
 Configure slave 0 for perform a read.[set].
 
int32_t lsm6dso32_sh_slv1_cfg_read (stmdev_ctx_t *ctx, lsm6dso32_sh_cfg_read_t *val)
 Configure slave 0 for perform a write/read.[set].
 
int32_t lsm6dso32_sh_slv2_cfg_read (stmdev_ctx_t *ctx, lsm6dso32_sh_cfg_read_t *val)
 Configure slave 0 for perform a write/read.[set].
 
int32_t lsm6dso32_sh_slv3_cfg_read (stmdev_ctx_t *ctx, lsm6dso32_sh_cfg_read_t *val)
 Configure slave 0 for perform a write/read.[set].
 
int32_t lsm6dso32_sh_status_get (stmdev_ctx_t *ctx, lsm6dso32_status_master_t *val)
 Sensor hub source register.[get].
 

Detailed Description

This section groups all the functions that manage the sensor hub.

Function Documentation

◆ lsm6dso32_sh_cfg_write()

int32_t lsm6dso32_sh_cfg_write ( stmdev_ctx_t ctx,
lsm6dso32_sh_cfg_write_t val 
)

Configure slave 0 for perform a write.[set].

Parameters
ctxread / write interface definitions
vala structure that contain
  • uint8_t slv1_add; 8 bit i2c device address
  • uint8_t slv1_subadd; 8 bit register device address
  • uint8_t slv1_data; 8 bit data to write
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9551 of file lsm6dso32_reg.c.

9553{
9555 int32_t ret;
9556
9558
9559 if (ret == 0)
9560 {
9561 reg.slave0 = val->slv0_add;
9562 reg.rw_0 = 0;
9563 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_SLV0_ADD, (uint8_t *)&reg, 1);
9564 }
9565
9566 if (ret == 0)
9567 {
9569 &(val->slv0_subadd), 1);
9570 }
9571
9572 if (ret == 0)
9573 {
9575 &(val->slv0_data), 1);
9576 }
9577
9578 if (ret == 0)
9579 {
9581 }
9582
9583 return ret;
9584}
int32_t __weak lsm6dso32_write_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Write generic device register.
int32_t lsm6dso32_mem_bank_set(stmdev_ctx_t *ctx, lsm6dso32_reg_access_t val)
Enable access to the embedded functions/sensor hub configuration registers.[set].
#define LSM6DSO32_SLV0_SUBADD
#define LSM6DSO32_DATAWRITE_SLV0
@ LSM6DSO32_USER_BANK
@ LSM6DSO32_SENSOR_HUB_BANK
#define LSM6DSO32_SLV0_ADD

References LSM6DSO32_DATAWRITE_SLV0, lsm6dso32_mem_bank_set(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV0_ADD, LSM6DSO32_SLV0_SUBADD, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_slv0_add_t::rw_0, lsm6dso32_slv0_add_t::slave0, lsm6dso32_sh_cfg_write_t::slv0_add, lsm6dso32_sh_cfg_write_t::slv0_data, and lsm6dso32_sh_cfg_write_t::slv0_subadd.

Here is the call graph for this function:

◆ lsm6dso32_sh_data_rate_get()

int32_t lsm6dso32_sh_data_rate_get ( stmdev_ctx_t ctx,
lsm6dso32_shub_odr_t val 
)

Rate at which the master communicates.[get].

Parameters
ctxread / write interface definitions
valGet the values of shub_odr in reg slv1_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9496 of file lsm6dso32_reg.c.

9498{
9500 int32_t ret;
9501
9503
9504 if (ret == 0)
9505 {
9506 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_SLV0_CONFIG, (uint8_t *)&reg, 1);
9507 }
9508
9509 if (ret == 0)
9510 {
9511 switch (reg.shub_odr)
9512 {
9515 break;
9516
9518 *val = LSM6DSO32_SH_ODR_52Hz;
9519 break;
9520
9522 *val = LSM6DSO32_SH_ODR_26Hz;
9523 break;
9524
9526 *val = LSM6DSO32_SH_ODR_13Hz;
9527 break;
9528
9529 default:
9531 break;
9532 }
9533
9535 }
9536
9537 return ret;
9538}
int32_t __weak lsm6dso32_read_reg(stmdev_ctx_t *ctx, uint8_t reg, uint8_t *data, uint16_t len)
Read generic device register.
#define LSM6DSO32_SLV0_CONFIG
@ LSM6DSO32_SH_ODR_13Hz
@ LSM6DSO32_SH_ODR_26Hz
@ LSM6DSO32_SH_ODR_52Hz
@ LSM6DSO32_SH_ODR_104Hz

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SH_ODR_104Hz, LSM6DSO32_SH_ODR_13Hz, LSM6DSO32_SH_ODR_26Hz, LSM6DSO32_SH_ODR_52Hz, LSM6DSO32_SLV0_CONFIG, LSM6DSO32_USER_BANK, and lsm6dso32_slv0_config_t::shub_odr.

Here is the call graph for this function:

◆ lsm6dso32_sh_data_rate_set()

int32_t lsm6dso32_sh_data_rate_set ( stmdev_ctx_t ctx,
lsm6dso32_shub_odr_t  val 
)

Rate at which the master communicates.[set].

Parameters
ctxread / write interface definitions
valchange the values of shub_odr in reg slv1_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9461 of file lsm6dso32_reg.c.

9463{
9465 int32_t ret;
9466
9468
9469 if (ret == 0)
9470 {
9471 ret = lsm6dso32_read_reg(ctx, LSM6DSO32_SLV0_CONFIG, (uint8_t *)&reg, 1);
9472 }
9473
9474 if (ret == 0)
9475 {
9476 reg.shub_odr = (uint8_t)val;
9477 ret = lsm6dso32_write_reg(ctx, LSM6DSO32_SLV0_CONFIG, (uint8_t *)&reg, 1);
9478 }
9479
9480 if (ret == 0)
9481 {
9483 }
9484
9485 return ret;
9486}

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV0_CONFIG, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_slv0_config_t::shub_odr.

Here is the call graph for this function:

◆ lsm6dso32_sh_master_get()

int32_t lsm6dso32_sh_master_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Sensor hub I2C master enable.[get].

Parameters
ctxread / write interface definitions
valchange the values of master_on in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9043 of file lsm6dso32_reg.c.

9044{
9046 int32_t ret;
9047
9049
9050 if (ret == 0)
9051 {
9053 (uint8_t *)&reg, 1);
9054 }
9055
9056 if (ret == 0)
9057 {
9058 *val = reg.master_on;
9060 }
9061
9062 return ret;
9063}
#define LSM6DSO32_MASTER_CONFIG

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_master_config_t::master_on.

Here is the call graph for this function:

◆ lsm6dso32_sh_master_set()

int32_t lsm6dso32_sh_master_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

Sensor hub I2C master enable.[set].

Parameters
ctxread / write interface definitions
valchange the values of master_on in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9007 of file lsm6dso32_reg.c.

9008{
9010 int32_t ret;
9011
9013
9014 if (ret == 0)
9015 {
9017 (uint8_t *)&reg, 1);
9018 }
9019
9020 if (ret == 0)
9021 {
9022 reg.master_on = val;
9024 (uint8_t *)&reg, 1);
9025 }
9026
9027 if (ret == 0)
9028 {
9030 }
9031
9032 return ret;
9033}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_master_config_t::master_on.

Here is the call graph for this function:

◆ lsm6dso32_sh_pass_through_get()

int32_t lsm6dso32_sh_pass_through_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

I2C interface pass-through.[get].

Parameters
ctxread / write interface definitions
valchange the values of pass_through_mode in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9193 of file lsm6dso32_reg.c.

9194{
9196 int32_t ret;
9197
9199
9200 if (ret == 0)
9201 {
9203 (uint8_t *)&reg, 1);
9204 }
9205
9206 if (ret == 0)
9207 {
9208 *val = reg.pass_through_mode;
9210 }
9211
9212 return ret;
9213}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_master_config_t::pass_through_mode.

Here is the call graph for this function:

◆ lsm6dso32_sh_pass_through_set()

int32_t lsm6dso32_sh_pass_through_set ( stmdev_ctx_t ctx,
uint8_t  val 
)

I2C interface pass-through.[set].

Parameters
ctxread / write interface definitions
valchange the values of pass_through_mode in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9156 of file lsm6dso32_reg.c.

9157{
9159 int32_t ret;
9160
9162
9163 if (ret == 0)
9164 {
9166 (uint8_t *)&reg, 1);
9167 }
9168
9169 if (ret == 0)
9170 {
9171 reg.pass_through_mode = val;
9173 (uint8_t *)&reg, 1);
9174 }
9175
9176 if (ret == 0)
9177 {
9179 }
9180
9181 return ret;
9182}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_master_config_t::pass_through_mode.

Here is the call graph for this function:

◆ lsm6dso32_sh_pin_mode_get()

int32_t lsm6dso32_sh_pin_mode_get ( stmdev_ctx_t ctx,
lsm6dso32_shub_pu_en_t val 
)

Master I2C pull-up enable.[get].

Parameters
ctxread / write interface definitions
valGet the values of shub_pu_en in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9110 of file lsm6dso32_reg.c.

9112{
9114 int32_t ret;
9115
9117
9118 if (ret == 0)
9119 {
9121 (uint8_t *)&reg, 1);
9122 }
9123
9124 if (ret == 0)
9125 {
9126 switch (reg.shub_pu_en)
9127 {
9129 *val = LSM6DSO32_EXT_PULL_UP;
9130 break;
9131
9134 break;
9135
9136 default:
9137 *val = LSM6DSO32_EXT_PULL_UP;
9138 break;
9139 }
9140
9142 }
9143
9144 return ret;
9145}
@ LSM6DSO32_INTERNAL_PULL_UP
@ LSM6DSO32_EXT_PULL_UP

References LSM6DSO32_EXT_PULL_UP, LSM6DSO32_INTERNAL_PULL_UP, LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_master_config_t::shub_pu_en.

Here is the call graph for this function:

◆ lsm6dso32_sh_pin_mode_set()

int32_t lsm6dso32_sh_pin_mode_set ( stmdev_ctx_t ctx,
lsm6dso32_shub_pu_en_t  val 
)

Master I2C pull-up enable.[set].

Parameters
ctxread / write interface definitions
valchange the values of shub_pu_en in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9073 of file lsm6dso32_reg.c.

9075{
9077 int32_t ret;
9078
9080
9081 if (ret == 0)
9082 {
9084 (uint8_t *)&reg, 1);
9085 }
9086
9087 if (ret == 0)
9088 {
9089 reg.shub_pu_en = (uint8_t)val;
9091 (uint8_t *)&reg, 1);
9092 }
9093
9094 if (ret == 0)
9095 {
9097 }
9098
9099 return ret;
9100}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_master_config_t::shub_pu_en.

Here is the call graph for this function:

◆ lsm6dso32_sh_read_data_raw_get()

int32_t lsm6dso32_sh_read_data_raw_get ( stmdev_ctx_t ctx,
lsm6dso32_emb_sh_read_t val 
)

Sensor hub output registers.[get].

Parameters
ctxread / write interface definitions
valunion of registers from SENSOR_HUB_1 to SENSOR_HUB_18
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8888 of file lsm6dso32_reg.c.

8890{
8891 int32_t ret;
8892
8894
8895 if (ret == 0)
8896 {
8898 (uint8_t *) val, 18U);
8899 }
8900
8901 if (ret == 0)
8902 {
8904 }
8905
8906 return ret;
8907}
#define LSM6DSO32_SENSOR_HUB_1

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_1, LSM6DSO32_SENSOR_HUB_BANK, and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_sh_reset_get()

int32_t lsm6dso32_sh_reset_get ( stmdev_ctx_t ctx,
uint8_t *  val 
)

Reset Master logic and output registers.[get].

Parameters
ctxread / write interface definitions
valchange the values of rst_master_regs in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9431 of file lsm6dso32_reg.c.

9432{
9434 int32_t ret;
9435
9437
9438 if (ret == 0)
9439 {
9441 (uint8_t *)&reg, 1);
9442 }
9443
9444 if (ret == 0)
9445 {
9446 *val = reg.rst_master_regs;
9448 }
9449
9450 return ret;
9451}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_master_config_t::rst_master_regs.

Here is the call graph for this function:

◆ lsm6dso32_sh_reset_set()

int32_t lsm6dso32_sh_reset_set ( stmdev_ctx_t ctx)

Reset Master logic and output registers.[set].

Parameters
ctxread / write interface definitions
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9388 of file lsm6dso32_reg.c.

9389{
9391 int32_t ret;
9392
9394
9395 if (ret == 0)
9396 {
9398 (uint8_t *)&reg, 1);
9399 }
9400
9401 if (ret == 0)
9402 {
9405 (uint8_t *)&reg, 1);
9406 }
9407
9408 if (ret == 0)
9409 {
9412 (uint8_t *)&reg, 1);
9413 }
9414
9415 if (ret == 0)
9416 {
9418 }
9419
9420 return ret;
9421}
#define PROPERTY_ENABLE
#define PROPERTY_DISABLE

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), PROPERTY_DISABLE, PROPERTY_ENABLE, and lsm6dso32_master_config_t::rst_master_regs.

Here is the call graph for this function:

◆ lsm6dso32_sh_slave_connected_get()

int32_t lsm6dso32_sh_slave_connected_get ( stmdev_ctx_t ctx,
lsm6dso32_aux_sens_on_t val 
)

Number of external sensors to be read by the sensor hub.[get].

Parameters
ctxread / write interface definitions
valGet the values of aux_sens_on in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8954 of file lsm6dso32_reg.c.

8956{
8958 int32_t ret;
8959
8961
8962 if (ret == 0)
8963 {
8965 (uint8_t *)&reg, 1);
8966 }
8967
8968 if (ret == 0)
8969 {
8970 switch (reg.aux_sens_on)
8971 {
8972 case LSM6DSO32_SLV_0:
8973 *val = LSM6DSO32_SLV_0;
8974 break;
8975
8976 case LSM6DSO32_SLV_0_1:
8977 *val = LSM6DSO32_SLV_0_1;
8978 break;
8979
8981 *val = LSM6DSO32_SLV_0_1_2;
8982 break;
8983
8985 *val = LSM6DSO32_SLV_0_1_2_3;
8986 break;
8987
8988 default:
8989 *val = LSM6DSO32_SLV_0;
8990 break;
8991 }
8992
8994 }
8995
8996 return ret;
8997}
@ LSM6DSO32_SLV_0_1_2
@ LSM6DSO32_SLV_0
@ LSM6DSO32_SLV_0_1
@ LSM6DSO32_SLV_0_1_2_3

References lsm6dso32_master_config_t::aux_sens_on, LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV_0, LSM6DSO32_SLV_0_1, LSM6DSO32_SLV_0_1_2, LSM6DSO32_SLV_0_1_2_3, and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_sh_slave_connected_set()

int32_t lsm6dso32_sh_slave_connected_set ( stmdev_ctx_t ctx,
lsm6dso32_aux_sens_on_t  val 
)

Number of external sensors to be read by the sensor hub.[set].

Parameters
ctxread / write interface definitions
valchange the values of aux_sens_on in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 8917 of file lsm6dso32_reg.c.

8919{
8921 int32_t ret;
8922
8924
8925 if (ret == 0)
8926 {
8928 (uint8_t *)&reg, 1);
8929 }
8930
8931 if (ret == 0)
8932 {
8933 reg.aux_sens_on = (uint8_t)val;
8935 (uint8_t *)&reg, 1);
8936 }
8937
8938 if (ret == 0)
8939 {
8941 }
8942
8943 return ret;
8944}

References lsm6dso32_master_config_t::aux_sens_on, LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_write_reg().

Here is the call graph for this function:

◆ lsm6dso32_sh_slv0_cfg_read()

int32_t lsm6dso32_sh_slv0_cfg_read ( stmdev_ctx_t ctx,
lsm6dso32_sh_cfg_read_t val 
)

Configure slave 0 for perform a read.[set].

Parameters
ctxread / write interface definitions
valStructure that contain
  • uint8_t slv1_add; 8 bit i2c device address
  • uint8_t slv1_subadd; 8 bit register device address
  • uint8_t slv1_len; num of bit to read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9597 of file lsm6dso32_reg.c.

9599{
9600 lsm6dso32_slv0_add_t slv0_add;
9601 lsm6dso32_slv0_config_t slv0_config;
9602 int32_t ret;
9603
9605
9606 if (ret == 0)
9607 {
9608 slv0_add.slave0 = val->slv_add;
9609 slv0_add.rw_0 = 1;
9611 (uint8_t *)&slv0_add, 1);
9612 }
9613
9614 if (ret == 0)
9615 {
9617 &(val->slv_subadd), 1);
9618 }
9619
9620 if (ret == 0)
9621 {
9623 (uint8_t *)&slv0_config, 1);
9624 }
9625
9626 if (ret == 0)
9627 {
9628 slv0_config.slave0_numop = val->slv_len;
9630 (uint8_t *)&slv0_config, 1);
9631 }
9632
9633 if (ret == 0)
9634 {
9636 }
9637
9638 return ret;
9639}

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV0_ADD, LSM6DSO32_SLV0_CONFIG, LSM6DSO32_SLV0_SUBADD, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_slv0_add_t::rw_0, lsm6dso32_slv0_add_t::slave0, lsm6dso32_slv0_config_t::slave0_numop, lsm6dso32_sh_cfg_read_t::slv_add, lsm6dso32_sh_cfg_read_t::slv_len, and lsm6dso32_sh_cfg_read_t::slv_subadd.

Here is the call graph for this function:

◆ lsm6dso32_sh_slv1_cfg_read()

int32_t lsm6dso32_sh_slv1_cfg_read ( stmdev_ctx_t ctx,
lsm6dso32_sh_cfg_read_t val 
)

Configure slave 0 for perform a write/read.[set].

Parameters
ctxread / write interface definitions
valStructure that contain
  • uint8_t slv1_add; 8 bit i2c device address
  • uint8_t slv1_subadd; 8 bit register device address
  • uint8_t slv1_len; num of bit to read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9652 of file lsm6dso32_reg.c.

9654{
9655 lsm6dso32_slv1_add_t slv1_add;
9656 lsm6dso32_slv1_config_t slv1_config;
9657 int32_t ret;
9658
9660
9661 if (ret == 0)
9662 {
9663 slv1_add.slave1_add = val->slv_add;
9664 slv1_add.r_1 = 1;
9666 (uint8_t *)&slv1_add, 1);
9667 }
9668
9669 if (ret == 0)
9670 {
9672 &(val->slv_subadd), 1);
9673 }
9674
9675 if (ret == 0)
9676 {
9678 (uint8_t *)&slv1_config, 1);
9679 }
9680
9681 if (ret == 0)
9682 {
9683 slv1_config.slave1_numop = val->slv_len;
9685 (uint8_t *)&slv1_config, 1);
9686 }
9687
9688 if (ret == 0)
9689 {
9691 }
9692
9693 return ret;
9694}
#define LSM6DSO32_SLV1_SUBADD
#define LSM6DSO32_SLV1_CONFIG
#define LSM6DSO32_SLV1_ADD

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV1_ADD, LSM6DSO32_SLV1_CONFIG, LSM6DSO32_SLV1_SUBADD, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_slv1_add_t::r_1, lsm6dso32_slv1_add_t::slave1_add, lsm6dso32_slv1_config_t::slave1_numop, lsm6dso32_sh_cfg_read_t::slv_add, lsm6dso32_sh_cfg_read_t::slv_len, and lsm6dso32_sh_cfg_read_t::slv_subadd.

Here is the call graph for this function:

◆ lsm6dso32_sh_slv2_cfg_read()

int32_t lsm6dso32_sh_slv2_cfg_read ( stmdev_ctx_t ctx,
lsm6dso32_sh_cfg_read_t val 
)

Configure slave 0 for perform a write/read.[set].

Parameters
ctxread / write interface definitions
valStructure that contain
  • uint8_t slv2_add; 8 bit i2c device address
  • uint8_t slv2_subadd; 8 bit register device address
  • uint8_t slv2_len; num of bit to read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9707 of file lsm6dso32_reg.c.

9709{
9710 lsm6dso32_slv2_add_t slv2_add;
9711 lsm6dso32_slv2_config_t slv2_config;
9712 int32_t ret;
9713
9715
9716 if (ret == 0)
9717 {
9718 slv2_add.slave2_add = val->slv_add;
9719 slv2_add.r_2 = 1;
9721 (uint8_t *)&slv2_add, 1);
9722 }
9723
9724 if (ret == 0)
9725 {
9727 &(val->slv_subadd), 1);
9728 }
9729
9730 if (ret == 0)
9731 {
9733 (uint8_t *)&slv2_config, 1);
9734 }
9735
9736 if (ret == 0)
9737 {
9738 slv2_config.slave2_numop = val->slv_len;
9740 (uint8_t *)&slv2_config, 1);
9741 }
9742
9743 if (ret == 0)
9744 {
9746 }
9747
9748 return ret;
9749}
#define LSM6DSO32_SLV2_CONFIG
#define LSM6DSO32_SLV2_SUBADD
#define LSM6DSO32_SLV2_ADD

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV2_ADD, LSM6DSO32_SLV2_CONFIG, LSM6DSO32_SLV2_SUBADD, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_slv2_add_t::r_2, lsm6dso32_slv2_add_t::slave2_add, lsm6dso32_slv2_config_t::slave2_numop, lsm6dso32_sh_cfg_read_t::slv_add, lsm6dso32_sh_cfg_read_t::slv_len, and lsm6dso32_sh_cfg_read_t::slv_subadd.

Here is the call graph for this function:

◆ lsm6dso32_sh_slv3_cfg_read()

int32_t lsm6dso32_sh_slv3_cfg_read ( stmdev_ctx_t ctx,
lsm6dso32_sh_cfg_read_t val 
)

Configure slave 0 for perform a write/read.[set].

Parameters
ctxread / write interface definitions
valStructure that contain
  • uint8_t slv3_add; 8 bit i2c device address
  • uint8_t slv3_subadd; 8 bit register device address
  • uint8_t slv3_len; num of bit to read
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9762 of file lsm6dso32_reg.c.

9764{
9765 lsm6dso32_slv3_add_t slv3_add;
9766 lsm6dso32_slv3_config_t slv3_config;
9767 int32_t ret;
9768
9770
9771 if (ret == 0)
9772 {
9773 slv3_add.slave3_add = val->slv_add;
9774 slv3_add.r_3 = 1;
9776 (uint8_t *)&slv3_add, 1);
9777 }
9778
9779 if (ret == 0)
9780 {
9782 &(val->slv_subadd), 1);
9783 }
9784
9785 if (ret == 0)
9786 {
9788 (uint8_t *)&slv3_config, 1);
9789 }
9790
9791 if (ret == 0)
9792 {
9793 slv3_config.slave3_numop = val->slv_len;
9795 (uint8_t *)&slv3_config, 1);
9796 }
9797
9798 if (ret == 0)
9799 {
9801 }
9802
9803 return ret;
9804}
#define LSM6DSO32_SLV3_SUBADD
#define LSM6DSO32_SLV3_CONFIG
#define LSM6DSO32_SLV3_ADD

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_SLV3_ADD, LSM6DSO32_SLV3_CONFIG, LSM6DSO32_SLV3_SUBADD, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), lsm6dso32_slv3_add_t::r_3, lsm6dso32_slv3_add_t::slave3_add, lsm6dso32_slv3_config_t::slave3_numop, lsm6dso32_sh_cfg_read_t::slv_add, lsm6dso32_sh_cfg_read_t::slv_len, and lsm6dso32_sh_cfg_read_t::slv_subadd.

Here is the call graph for this function:

◆ lsm6dso32_sh_status_get()

int32_t lsm6dso32_sh_status_get ( stmdev_ctx_t ctx,
lsm6dso32_status_master_t val 
)

Sensor hub source register.[get].

Parameters
ctxread / write interface definitions
valunion of registers from STATUS_MASTER to
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9814 of file lsm6dso32_reg.c.

9816{
9817 int32_t ret;
9818
9820
9821 if (ret == 0)
9822 {
9824 (uint8_t *) val, 1);
9825 }
9826
9827 if (ret == 0)
9828 {
9830 }
9831
9832 return ret;
9833}
#define LSM6DSO32_STATUS_MASTER

References lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_STATUS_MASTER, and LSM6DSO32_USER_BANK.

Here is the call graph for this function:

◆ lsm6dso32_sh_syncro_mode_get()

int32_t lsm6dso32_sh_syncro_mode_get ( stmdev_ctx_t ctx,
lsm6dso32_start_config_t val 
)

Sensor hub trigger signal selection.[get].

Parameters
ctxread / write interface definitions
valGet the values of start_config in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9260 of file lsm6dso32_reg.c.

9262{
9264 int32_t ret;
9265
9267
9268 if (ret == 0)
9269 {
9271 (uint8_t *)&reg, 1);
9272 }
9273
9274 if (ret == 0)
9275 {
9276 switch (reg.start_config)
9277 {
9280 break;
9281
9283 *val = LSM6DSO32_XL_GY_DRDY;
9284 break;
9285
9286 default:
9288 break;
9289 }
9290
9292 }
9293
9294 return ret;
9295}
@ LSM6DSO32_XL_GY_DRDY
@ LSM6DSO32_EXT_ON_INT2_PIN

References LSM6DSO32_EXT_ON_INT2_PIN, LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, LSM6DSO32_XL_GY_DRDY, and lsm6dso32_master_config_t::start_config.

Here is the call graph for this function:

◆ lsm6dso32_sh_syncro_mode_set()

int32_t lsm6dso32_sh_syncro_mode_set ( stmdev_ctx_t ctx,
lsm6dso32_start_config_t  val 
)

Sensor hub trigger signal selection.[set].

Parameters
ctxread / write interface definitions
valchange the values of start_config in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9223 of file lsm6dso32_reg.c.

9225{
9227 int32_t ret;
9228
9230
9231 if (ret == 0)
9232 {
9234 (uint8_t *)&reg, 1);
9235 }
9236
9237 if (ret == 0)
9238 {
9239 reg.start_config = (uint8_t)val;
9241 (uint8_t *)&reg, 1);
9242 }
9243
9244 if (ret == 0)
9245 {
9247 }
9248
9249 return ret;
9250}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_master_config_t::start_config.

Here is the call graph for this function:

◆ lsm6dso32_sh_write_mode_get()

int32_t lsm6dso32_sh_write_mode_get ( stmdev_ctx_t ctx,
lsm6dso32_write_once_t val 
)

Slave 0 write operation is performed only at the first sensor hub cycle.[get].

Parameters
ctxread / write interface definitions
valGet the values of write_once in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9344 of file lsm6dso32_reg.c.

9346{
9348 int32_t ret;
9349
9351
9352 if (ret == 0)
9353 {
9355 (uint8_t *)&reg, 1);
9356 }
9357
9358 if (ret == 0)
9359 {
9360 switch (reg.write_once)
9361 {
9364 break;
9365
9368 break;
9369
9370 default:
9372 break;
9373 }
9374
9376 }
9377
9378 return ret;
9379}
@ LSM6DSO32_EACH_SH_CYCLE
@ LSM6DSO32_ONLY_FIRST_CYCLE

References LSM6DSO32_EACH_SH_CYCLE, LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), LSM6DSO32_ONLY_FIRST_CYCLE, lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, and lsm6dso32_master_config_t::write_once.

Here is the call graph for this function:

◆ lsm6dso32_sh_write_mode_set()

int32_t lsm6dso32_sh_write_mode_set ( stmdev_ctx_t ctx,
lsm6dso32_write_once_t  val 
)

Slave 0 write operation is performed only at the first sensor hub cycle.[set].

Parameters
ctxread / write interface definitions
valchange the values of write_once in reg MASTER_CONFIG
Return values
interfacestatus (MANDATORY: return 0 -> no Error)

Definition at line 9306 of file lsm6dso32_reg.c.

9308{
9310 int32_t ret;
9311
9313
9314 if (ret == 0)
9315 {
9317 (uint8_t *)&reg, 1);
9318 }
9319
9320 if (ret == 0)
9321 {
9322 reg.write_once = (uint8_t)val;
9324 (uint8_t *)&reg, 1);
9325 }
9326
9327 if (ret == 0)
9328 {
9330 }
9331
9332 return ret;
9333}

References LSM6DSO32_MASTER_CONFIG, lsm6dso32_mem_bank_set(), lsm6dso32_read_reg(), LSM6DSO32_SENSOR_HUB_BANK, LSM6DSO32_USER_BANK, lsm6dso32_write_reg(), and lsm6dso32_master_config_t::write_once.

Here is the call graph for this function: