Skip to content

spi: add settings to embedded-hal-bus SpiDevice impls for CS-to-clock delays. #539

Open

Description

@Dirbaio

As discussed in today's meeting:

It is better if the CS-assert-to-clock and clock-to-CS-deassert delays are configured in the SpiDevice itself, so that the driver doesn't have to add them to every single transaction, and can use the read/write/write_read convenience methods.

  • add configuration settings to the SpiDevice impls in embedded-hal-bus to do the delays
  • document that drivers are discouraged from using Operation::DelayNs directly for CS-to-clocks delays.

Activity

  1. added this to the v1.0.0 milestone on Nov 28, 2023
  2. removed this from the v1.0.0 milestone on Dec 27, 2023
  3. Dirbaio commented on Dec 27, 2023

    @Dirbaio
    MemberAuthor

    i'm going to remove this from the 1.0 milestone,

    It concerns only embedded-hal-bus, we can do it in 0.1.1 in a backwards-compatible way (like adding .set_blah_delays() methods), or in 0.2 if we don't want to be compatible.

  4. vpochapuis commented on May 31, 2024

    @vpochapuis

    Hello!
    Thank you very much for this amazing set of crates that makes Rust embedded system usage so convenient.

    I would like to know if there is any plan to support this feature as its necessary to drive chips like the LTC6813
    image

    If there is but no one is currently working on it, I would be pleased to be given direction in order to help implement this!
    I have previously worked on enabling this in the esp-idf-hal at a higher level to access existing C API, but didn't touch yet to this set of crates in more details.

    At first sight I would say, adding a parameter in the Device creation function, as well as a field in the Device struct to store a delay duration and using the delay_ns() function after this line

    self.cs.set_low().map_err(DeviceError::Cs)?;
    could do the trick? But I am not sure how/where the clock is controlled.

    If that's alright i would be happy to provide a PR for this

  5. ProfFan commented on Jun 7, 2024

    @ProfFan

    Could the SPI SCLK frequency be also added? This is very useful when multiple devices share the same SPI bus, and is very common.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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