litex icon indicating copy to clipboard operation
litex copied to clipboard

SPI "Manual Operation useful for Bulk transfers" seems to do nothing

Open YusufCelik opened this issue 1 year ago • 1 comments

The following code: litex/litex/soc/cores/spi /spi_master.py

Contains:

("``0b1``", "Manual operation (CS handled by User, direct recopy of ``sel``), useful for Bulk transfers.")

One would assume that one could now simply set CS to low manually and then do mosi_write. However, it does nothing. I am still forced to use the SPI control register:

            CSRField("start",  size=1, offset=0, pulse=True, description="SPI Xfer Start (Write ``1`` to start Xfer)."),
            CSRField("length", size=8, offset=8,             description="SPI Xfer Length (in bits).")
        ])

However, does this not defeat the whole purpose, why not directly use SPI controlled transfers? Obviously it is slower, hence I am really curious what a Bulk transfer implementation looks like. Spi_master.py seems to suggest that the "Manual operation" flag is meaningless. Can you please elaborate?

YusufCelik avatar Nov 11 '24 22:11 YusufCelik

Bulk transfers are where CS is asserted, then more than one byte is transferred, then CS is de-assarted. Some usages of spimaster have cs asserted and de-assarted for every byte, or deasserted when not busy (if a fifo underruns for example).

AndrewD avatar Nov 15 '24 20:11 AndrewD