Dialog Semiconductor customer support - DA14850 https://support.dialog-semiconductor.com/resource-keywords/da14850 en DA14850 communicating with Si705 temperature sensor. https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/da14850-communicating-si705-temperature

Hi, I'm trying to read the temperature from Si705. I have connectiong to the sensor, as I have tested it, when I read the firmware-version using the measurement-process described in this pdf (https://www.silabs.com/documents/public/data-sheets/Si7050-1-3-4-5-A20.pdf) page 16. However, when I try to read the temperature, my output ends up being 0, 0. As of now my code is this:

uint8_t cmd;

uint8_t data[2];

uint16_t degrees;

cmd = Temp_H;

user_i2c_set_slave_address(Si705_I2C_ADDRESS);

user_i2c_multi_byte_read(cmd, data, 2);

degrees = convert_to_uint16(data);

degrees = convert_to_celsius(degrees);

return degrees;

The code I'm using to read the bytes is the following:

void user_i2c_multi_byte_read(uint32_t reg_address, uint8_t *rd_data, uint32_t num_bytes) {

user_i2c_send_address(reg_address);

uint32_t index = 0;

for(uint32_t i = 0; i < num_bytes;){

SEND_I2C_COMMAND(0x0100 & 0x3FF); // Set R/W bit to 1 (read access) MSB

if(!(++i % 24)){ //FIFO is 32 bits

WAIT_UNTIL_I2C_FIFO_IS_EMPTY(); // Wait until Tx FIFO is empty

WAIT_UNTIL_NO_MASTER_ACTIVITY(); // wait until no master activity

for (uint8_t j = 0; j < 24; j++){

//Store the FIFO contents in ram

rd_data[index++] = (0xFF & GetWord16(I2C_DATA_CMD_REG)); // Get received byte

}

reg_address += 24/(i2c_cfg_env.register_width + 1);//Calculate the next register to read out

user_i2c_send_address(reg_address); //Restart the read

}

}

WAIT_UNTIL_I2C_FIFO_IS_EMPTY(); // Wait until I2C Tx FIFO empty

WAIT_UNTIL_NO_MASTER_ACTIVITY();

while(index < num_bytes){

rd_data[index++] = (0xFF & GetWord16(I2C_DATA_CMD_REG)); // Get received byte

}

WAIT_UNTIL_I2C_FIFO_IS_EMPTY(); // Wait until Tx FIFO is empty

WAIT_UNTIL_NO_MASTER_ACTIVITY(); // wait until no master activity }

Keywords: 
Device: 
Thu, 19 Sep 2019 12:29:49 +0000 kaptajnen 323663年https://support.dialog-semiconductor.com https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bluetooth-low-energy-%E2%80%93-software/da14850-communicating-si705-temperature#comments