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.

CC1352R: Sensor Controller i2cstate 0x01 after reconnect

Part Number: CC1352R

I'm trying to implement a data transfer between an i2c sensor (bmp280 or mpu9250, same issue).

On the first connection (via Task Testing), everything works. On subsequent connections the i2cstate is always 0x01. If I cycle power to the launchpad, it works again. Any ideas what could be causing this?

  • Sounds like you are getting some kind of error on the bus, looking into the I2C documentation for the Sensor Controller, state 0x01 should mean "TX NACK".

    Do you have access to some kind of logic analyzer that you can monitor the I2C bus with to see what is happening?
  • I don't have access to a scope, but I think this has something to do with the 1352R.

    I was able to talk to the builtin BMP280 on a 1350 sensortag (multiple times after a sensor controller studio disconnect)

    I was able to talk to the BMP280 on the breakout board with a 2650 launchpad (multiple times after a sensor controller studio disconnect)

    I have a 1350 launchpad, but it is intricately wired into another project. I'll try and give that a go at some point.

    On the 1352R, I can talk once and then it requires a power cycle after I disconnect from SCS.

  • Is this problem somewhat similar to what you are experiencing in:
    e2e.ti.com/.../2479270

    Could you share the SCS code you are using?
  • Yeah, it looks like I might have had an errant call to the MPU9250 when I loaded it on the 1352R which made it seem like it was processor specific. I thought I got rid of those and was just using the BMP280, but once I started talking to the MPU9250 (on the 2650), my improper Nacking was corrupting the communications there too. I still don't understand how that stops any future communication on the i2c, but the other thread is probably the place to solve that.

    I switched over to to the 2650, so I'll have to go back to the 1352R once I get this working and doublecheck that it works there too.
  • I have seen the problem with I2C slaves "freeing" future communications when put into a undefined state before. In some cases a complete bus reset is needed (you could try disabling I2C and pulling all lines low for a while and see if it solves anything).

    As we are moving on to the other thread, I'll mark this as resolved for now (feel free to mark it as resolved).