Skip to content

I2C support for short writes #238

Closed
Closed
@dhalbert

Description

@dhalbert

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions