@mattmagic - Code attached…
// Forum Test
#include "sl_i2cspm_instances.h"
#define LSM6DS3_ADDR 0x6A
#define WHO_AM_I_REG 0x0F
#define EXPECTED_WHOAMI 0x69
uint8_t probe_lsm6ds3(void)
{
uint8_t who = 0;
uint8_t cmd = WHO_AM_I_REG;
I2C_TransferSeq_TypeDef seq = {
.addr = LSM6DS3_ADDR << 1,
.flags = I2C_FLAG_WRITE_READ
};
seq.buf[0].data = &cmd;
seq.buf[0].len = 1;
seq.buf[1].data = &who;
seq.buf[1].len = 1;
I2C_TransferReturn_TypeDef ret = I2CSPM_Transfer(SL_I2CSPM_I2C_PERIPHERAL, &seq);
printf("Transfer result: %d, WHO_AM_I = 0x%02X\r\n", ret, who);
if (ret == i2cTransferDone)
return who;
else
return 0;
}
void app_init(void)
{
if (probe_lsm6ds3() == 0) {
printf("Could not probe LSM6DS3...\r\n");
}
else
{
printf("Found LSM6DS3!!!\r\n");
}
}
Do you have an actual 'MG24 Sense connected?