Struct rust_hdl::widgets::spi_slave::SPISlave [−][src]
pub struct SPISlave<const N: usize> {Show 13 fields
pub clock: Signal<In, Clock>,
pub mosi: Signal<In, Bit>,
pub miso: Signal<Out, Bit>,
pub msel: Signal<In, Bit>,
pub mclk: Signal<In, Bit>,
pub disabled: Signal<In, Bit>,
pub busy: Signal<Out, Bit>,
pub data_inbound: Signal<Out, Bits<N>>,
pub start_send: Signal<In, Bit>,
pub data_outbound: Signal<In, Bits<N>>,
pub bits: Signal<In, Bits<16>>,
pub continued_transaction: Signal<In, Bit>,
pub transfer_done: Signal<Out, Bit>,
// some fields omitted
}Fields
clock: Signal<In, Clock>mosi: Signal<In, Bit>miso: Signal<Out, Bit>msel: Signal<In, Bit>mclk: Signal<In, Bit>disabled: Signal<In, Bit>busy: Signal<Out, Bit>data_inbound: Signal<Out, Bits<N>>start_send: Signal<In, Bit>data_outbound: Signal<In, Bits<N>>bits: Signal<In, Bits<16>>continued_transaction: Signal<In, Bit>transfer_done: Signal<Out, Bit>Implementations
Here is a table of the SPI setup: CPOL CPHA EDGE ACTION 0 0 R Sample 0 0 F Change 0 1 R Change 0 1 F Sample 1 0 R Change 1 0 F Sample 1 1 R Sample 1 1 F Change
So Sample on Rising edge if CPOL == CPHA Also, CPHA decides if we start in the sample state or in the change state
