Description
I was told by word of mouth that the DW_apb_i2c
hardware design licensed for the RP2040 does not work for I2C write transactions for 0 to 2 bytes of data (not including the address). MicroPython special-cases this by doing bitbang I2C for writes of length 2 or less, and we adopted the same thing in CircuitPython. It took a little painful experimentation to get it exactly right.
pico-sdk
does not do anything special to handle short writes. Should it? Or should it be documented that they don't work, in the datasheet and/or the SDK doc? Or is this actually not a hardware issue, but a hardware-use that could be worked around in another way? I don't have access to the support info from Synopsys for DW_apb_i2c
to clarify this. I know this is a commonly licensed piece of IP, but when doing webesarches I haven't found specific reference to this issue elsewhere. Thanks for any further info you may have on this.