Open dhalbert opened 3 years ago
This got discussed elsewhere, extensively, at some point. But I can't remember where. It would be good to consolidate this issue with that one. Anyone remember where we talked about this?
Might have been an internal google-chat discussion? :shrug:
(There's also the SPI-hardware-can't-transfer-multiple-bytes-with-a-single-chipselect-pulse which is similar-but-different to this I2C-hardware-can't-do-0-byte-transfers)
There's also the SPI-hardware-can't-transfer-multiple-bytes-with-a-single-chipselect-pulse which is similar-but-different to this I2C-hardware-can't-do-0-byte-transfers
Maybe that is what I was thinking about.
The I2C hardware used in the RP2040 does not provide for zero-length writes. Such writes are often used for device probing on an I2C bus. A read works for some devices but not all (a read is used in the
bus_scan
example inpico-examples
).Neither the C/C++ SDK doc nor the RP2040 datasheet document that zero-length writes are not possible. There is a hint in the SDK:
I think it would be good to document the limitation in the SDK doc and the datasheet. The datasheet could explain why as well. Thanks.
Ref https://github.com/raspberrypi/pico-sdk/issues/238.