This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

TWI is not working with SoftDevice

This seems to be a common problem after searching in this forum. In my case, I need to read from an I2C slave and send the data out in BLE. I have made it work without SoftDevice using this library code http://pastebin.com/qLLAy418 . However, it failed to work with SoftDevice. I also tried with another version which has SoftDevice knobs http://pastebin.com/AV6cQK0x. It doesn't work either. I also tried other code github.com/.../twi_hw_master.c that someone claimed to work (devzone.nordicsemi.com/.../), but it doesn't work for me. Can anyone provide any suggestion on this problem?

  • Just for completeness, this was the waveform of twi_master_hw.c without SoftDevice, which looked quite reasonable. I haven't done it further (like putting delays). On the SoftDevice side, I did TWI read within the SoftDevice stack which should be the highest priority already. But I will try your advice.

  • That's a better trace - that looks like 2 separate reads, is that right? You can see clock stretching in there and it looks fine. Back to the other trace, which I still can't make much sense of, the only other thing it look like is repeated TWI STARTs which never progress any further, I don't know what happens if you call TASKS_STARTRX=1 over and over again. Nor do I see how that code could be calling that over and over again.

    I did ask why it returns false, is it timeout --> 0 or something is in ERRORSRC, you need to rule that out too.

Related