Hello,
I am developing an application on the 52840 and so far find the SDK documentation quite confusing and somewhat contradictory. I need to write a simple TWI (I2c) master driver for a peripheral.
I found a simple API example in the SDK and started following that for TWI (twi_sensor). Part way through I realised that the example was apparently using a legacy driver API, so I started looking at the API documentation. This suggests that the nrf_drv drivers are legacy, but all the documentation are using the legacy drivers (see [1]). There appear to be no documentation for the newer nrfx drivers, or am I missing some resource?
nrfx appears to have 3 drivers - nrfx_twi, nrfx_twim and nrfx_twis. If nrfx_twim is the master and nrfx_twis is the slave, what is nrfx_twi for?
There is also the TWI transaction manager, which appears to be another API but again using nrf_drv prefixes to the functions (so legacy as well I presume)?
I also see some suggestions in the forum that some drivers wont work with softdevices enabled, is this true? If so, which should I use when a softdevice is enabled?
It doesn't seem much to ask for SPI master and slave examples both with and without DMA and leave it at that. The API should not need to be so different for each of the four cases (one API could easily support all four).
Could some clarity please be provided on this? I hope similar issues don't also appear with the rest of the API functions. Maybe I should switch to Zephyr or something else for cleaner APIs?
Thanks very much