Embassy
rp-pac

Crates

git

Versions

default

Flavors

Struct rp_pac::xip_ssi::XipSsi

source ·
pub struct XipSsi { /* private fields */ }
Expand description

DW_apb_ssi has the following features: * APB interface – Allows for easy integration into a DesignWare Synthesizable Components for AMBA 2 implementation. * APB3 and APB4 protocol support. * Scalable APB data bus width – Supports APB data bus widths of 8, 16, and 32 bits. * Serial-master or serial-slave operation – Enables serial communication with serial-master or serial-slave peripheral devices. * Programmable Dual/Quad/Octal SPI support in Master Mode. * Dual Data Rate (DDR) and Read Data Strobe (RDS) Support - Enables the DW_apb_ssi master to perform operations with the device in DDR and RDS modes when working in Dual/Quad/Octal mode of operation. * Data Mask Support - Enables the DW_apb_ssi to selectively update the bytes in the device. This feature is applicable only in enhanced SPI modes. * eXecute-In-Place (XIP) support - Enables the DW_apb_ssi master to behave as a memory mapped I/O and fetches the data from the device based on the APB read request. This feature is applicable only in enhanced SPI modes. * DMA Controller Interface – Enables the DW_apb_ssi to interface to a DMA controller over the bus using a handshaking interface for transfer requests. * Independent masking of interrupts – Master collision, transmit FIFO overflow, transmit FIFO empty, receive FIFO full, receive FIFO underflow, and receive FIFO overflow interrupts can all be masked independently. * Multi-master contention detection – Informs the processor of multiple serial-master accesses on the serial bus. * Bypass of meta-stability flip-flops for synchronous clocks – When the APB clock (pclk) and the DW_apb_ssi serial clock (ssi_clk) are synchronous, meta-stable flip-flops are not used when transferring control signals across these clock domains. * Programmable delay on the sample time of the received serial data bit (rxd); enables programmable control of routing delays resulting in higher serial data-bit rates. * Programmable features: - Serial interface operation – Choice of Motorola SPI, Texas Instruments Synchronous Serial Protocol or National Semiconductor Microwire. - Clock bit-rate – Dynamic control of the serial bit rate of the data transfer; used in only serial-master mode of operation. - Data Item size (4 to 32 bits) – Item size of each data transfer under the control of the programmer. * Configured features: - FIFO depth – 16 words deep. The FIFO width is fixed at 32 bits. - 1 slave select output. - Hardware slave-select – Dedicated hardware slave-select line. - Combined interrupt line - one combined interrupt line from the DW_apb_ssi to the interrupt controller. - Interrupt polarity – active high interrupt lines. - Serial clock polarity – low serial-clock polarity directly after reset. - Serial clock phase – capture on first edge of serial-clock directly after reset.

Implementations§

source§

impl XipSsi

source

pub const unsafe fn from_ptr(ptr: *mut ()) -> Self

source

pub const fn as_ptr(&self) -> *mut ()

source

pub const fn ctrlr0(self) -> Reg<Ctrlr0, RW>

Control register 0

source

pub const fn ctrlr1(self) -> Reg<Ctrlr1, RW>

Master Control register 1

source

pub const fn ssienr(self) -> Reg<Ssienr, RW>

SSI Enable

source

pub const fn mwcr(self) -> Reg<Mwcr, RW>

Microwire Control

source

pub const fn ser(self) -> Reg<Ser, RW>

Slave enable

source

pub const fn baudr(self) -> Reg<Baudr, RW>

Baud rate

source

pub const fn txftlr(self) -> Reg<Txftlr, RW>

TX FIFO threshold level

source

pub const fn rxftlr(self) -> Reg<Rxftlr, RW>

RX FIFO threshold level

source

pub const fn txflr(self) -> Reg<Txflr, RW>

TX FIFO level

source

pub const fn rxflr(self) -> Reg<Rxflr, RW>

RX FIFO level

source

pub const fn sr(self) -> Reg<Sr, RW>

Status register

source

pub const fn imr(self) -> Reg<Imr, RW>

Interrupt mask

source

pub const fn isr(self) -> Reg<Isr, RW>

Interrupt status

source

pub const fn risr(self) -> Reg<Risr, RW>

Raw interrupt status

source

pub const fn txoicr(self) -> Reg<Txoicr, RW>

TX FIFO overflow interrupt clear

source

pub const fn rxoicr(self) -> Reg<Rxoicr, RW>

RX FIFO overflow interrupt clear

source

pub const fn rxuicr(self) -> Reg<Rxuicr, RW>

RX FIFO underflow interrupt clear

source

pub const fn msticr(self) -> Reg<Msticr, RW>

Multi-master interrupt clear

source

pub const fn icr(self) -> Reg<Icr, RW>

Interrupt clear

source

pub const fn dmacr(self) -> Reg<Dmacr, RW>

DMA control

source

pub const fn dmatdlr(self) -> Reg<Dmatdlr, RW>

DMA TX data level

source

pub const fn dmardlr(self) -> Reg<Dmardlr, RW>

DMA RX data level

source

pub const fn idr(self) -> Reg<u32, RW>

Identification register

source

pub const fn ssi_version_id(self) -> Reg<u32, RW>

Version ID

source

pub const fn dr0(self) -> Reg<u32, RW>

Data Register 0 (of 36)

source

pub const fn rx_sample_dly(self) -> Reg<RxSampleDly, RW>

RX sample delay

source

pub const fn spi_ctrlr0(self) -> Reg<SpiCtrlr0, RW>

SPI control

source

pub const fn txd_drive_edge(self) -> Reg<TxdDriveEdge, RW>

TX drive edge

Trait Implementations§

source§

impl Clone for XipSsi

source§

fn clone(&self) -> XipSsi

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl PartialEq<XipSsi> for XipSsi

source§

fn eq(&self, other: &XipSsi) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for XipSsi

source§

impl Eq for XipSsi

source§

impl Send for XipSsi

source§

impl StructuralEq for XipSsi

source§

impl StructuralPartialEq for XipSsi

source§

impl Sync for XipSsi

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.