This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

RTOS/CC1310: RTOS/CC1310

Part Number: CC1310
Other Parts Discussed in Thread: TMP116, SIMPLICITI

Tool/software: TI-RTOS

Hello,


I have a custom PCB interfaced with a TMP116 (i2c) sensor, two tasks have been created for this purpose, one for reading the temperature and the other for RF communication, the RF communication is working well and I have could even read temperature.
I left step by step, when i add the part i2c tmp 116 the microcontroller consumes the current 129 uA, how to act in this situation?
knowing that I aim to reach a current of 4 uA.

  • Hello,
    To clarify the situation here is the task concerning the temperature part, if you have time to see this code, please?

    -----------------------------------------------------------------------------------------------------------
    void sendorTask(UArg arg0, UArg arg1)
    {
    static opto_sonde_data_t optosonde_data;
    float temperature;
    I2C_Handle i2c;
    TMP116_Handle tmp116Handle;
    I2C_Params i2cParams;
    uint32_t TIMEOUT = 0;

    I2C_Params_init(&i2cParams);
    i2cParams.transferMode = I2C_MODE_BLOCKING;
    i2cParams.bitRate = I2C_400kHz;
    i2c = I2C_open(Board_I2C_TMP, &i2cParams);
    if (i2c == NULL) {

    }
    else {
    }

    TMP116_init();
    Task_sleep(500 * 100);
    tmp116Handle = TMP116_open(Board_I2C_TMP, i2c, NULL);

    if (tmp116Handle == NULL){
    }else
    {
    }
    sleep(2);

    while(!TMP116_configConversions(tmp116Handle,TMP116_OS_MODE,TMP116_0CONV,TMP116_0SAMPLES) && TIMEOUT != 5000){

    usleep(200); // attente 200 uS , alors un Time out de 1s
    TIMEOUT++;
    }
    if (TMP116_getTemp(tmp116Handle, TMP116_CELSIUS, &temperature)) {
    }
    else {
    }
    TIMEOUT =0;
    while (!TMP116_close(tmp116Handle) && TIMEOUT != 10000 ){
    usleep(200);
    TIMEOUT ++;
    }
    I2C_close(i2c);

    uint16_t MSB = (uint8_t) (temperature);
    uint8_t LSB = (uint8_t) ((temperature - MSB ) * 100);


    optosonde_data.temp_deg_frac_8 = (MSB<<8) +LSB;

    while (!AONBatMonNewBatteryMeasureReady())
    {
    // Wait
    Task_sleep(1000 * 1000 / Clock_tickPeriod);
    }
    optosonde_data.bat_20mV = (AONBatMonBatteryVoltageGet() * 390625) / 2000000;
    AONBatMonDisable();

    // Init Tx task
    Task_Params_init(&txTaskParams);
    txTaskParams.stackSize = RFEASYLINKTX_TASK_STACK_SIZE;
    txTaskParams.priority = RFEASYLINKTX_TASK_PRIORITY + 1;
    txTaskParams.stack = &txTaskStack;
    txTaskParams.arg0 = (xdc_UArg) &optosonde_data;

    Task_construct(&txTask, rfEasyLinkTxFnx, &txTaskParams, NULL);

    }
  • You already have a active post regarding this subject, please do not create duplicate post but stick to the existing one(s):

    https://e2e.ti.com/support/sensor/temperature_sensors/f/243/t/693844

    https://e2e.ti.com/support/sensor/temperature_sensors/f/243/t/696887

    https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/t/696001