Struct nrf52::spi::registers::spim::SPIM
[−]
[src]
#[repr(C)]pub struct SPIM { _reserved0: [u32; 4], pub tasks_start: VolatileCell<u32>, pub tasks_stop: VolatileCell<u32>, _reserved1: u32, pub tasks_suspend: VolatileCell<u32>, pub tasks_resume: VolatileCell<u32>, _reserved2: [u32; 56], pub events_stopped: VolatileCell<u32>, _reserved3: [u32; 2], pub events_endrx: VolatileCell<u32>, _reserved4: u32, pub events_end: VolatileCell<u32>, _reserved5: u32, pub events_endtx: VolatileCell<u32>, _reserved6: [u32; 10], pub events_started: VolatileCell<u32>, _reserved7: [u32; 44], pub shorts: VolatileCell<u32>, _reserved8: [u32; 64], pub intenset: VolatileCell<InterruptEnable>, pub intenclr: VolatileCell<InterruptEnable>, _reserved9: [u32; 125], pub enable: VolatileCell<u32>, _reserved10: u32, pub psel_sck: VolatileCell<Pinmux>, pub psel_mosi: VolatileCell<Pinmux>, pub psel_miso: VolatileCell<Pinmux>, _reserved11: [u32; 4], pub frequency: VolatileCell<Frequency>, _reserved12: [u32; 3], pub rxd_ptr: VolatileCell<*mut u8>, pub rxd_maxcnt: VolatileCell<u32>, pub rxd_amount: VolatileCell<u32>, pub rxd_list: VolatileCell<u32>, pub txd_ptr: VolatileCell<*const u8>, pub txd_maxcnt: VolatileCell<u32>, pub txd_amount: VolatileCell<u32>, pub txd_list: VolatileCell<u32>, pub config: VolatileCell<Config>, _reserved13: [u32; 26], pub orc: VolatileCell<u32>, }
Represents one of NRF52's three SPIM
instances.
Fields
_reserved0: [u32; 4]
tasks_start: VolatileCell<u32>
Start SPI transaction
addr = base + 0x010
tasks_stop: VolatileCell<u32>
Stop SPI transaction
addr = base + 0x014
_reserved1: u32
tasks_suspend: VolatileCell<u32>
Suspend SPI transaction
addr = base + 0x01C
tasks_resume: VolatileCell<u32>
Resume SPI transaction
addr = base + 0x020
_reserved2: [u32; 56]
events_stopped: VolatileCell<u32>
SPI transaction has stopped
addr = base + 0x104
_reserved3: [u32; 2]
events_endrx: VolatileCell<u32>
End of RXD buffer reached
addr = base + 0x110
_reserved4: u32
events_end: VolatileCell<u32>
End of RXD buffer and TXD buffer reached
addr = base + 0x118
_reserved5: u32
events_endtx: VolatileCell<u32>
End of TXD buffer reached
addr = base + 0x120
_reserved6: [u32; 10]
events_started: VolatileCell<u32>
Transaction started
addr = base + 0x14C
_reserved7: [u32; 44]
shorts: VolatileCell<u32>
Shortcut register
addr = base + 0x200
_reserved8: [u32; 64]
intenset: VolatileCell<InterruptEnable>
Enable interrupt
addr = base + 0x304
intenclr: VolatileCell<InterruptEnable>
Disable interrupt
base + addr = 0x308
_reserved9: [u32; 125]
enable: VolatileCell<u32>
Enable SPIM
addr = base + 0x500
_reserved10: u32
psel_sck: VolatileCell<Pinmux>
Pin select for SCK
addr = base + 0x508
psel_mosi: VolatileCell<Pinmux>
Pin select for MOSI signal
addr = base + 0x50C
psel_miso: VolatileCell<Pinmux>
Pin select for MISO signal
addr = base + 0x510
_reserved11: [u32; 4]
frequency: VolatileCell<Frequency>
SPI frequency
addr = base + 0x524
_reserved12: [u32; 3]
rxd_ptr: VolatileCell<*mut u8>
Data pointer
addr = base + 0x534
rxd_maxcnt: VolatileCell<u32>
Maximum number of bytes in receive buffer
addr = base + 0x538
rxd_amount: VolatileCell<u32>
Number of bytes transferred in the last transaction
addr = base + 0x53C
rxd_list: VolatileCell<u32>
EasyDMA list type
addr = base + 0x540
txd_ptr: VolatileCell<*const u8>
Data pointer
base + addr = 0x544
txd_maxcnt: VolatileCell<u32>
Maximum number of bytes in transmit buffer
addr = base + 0x548
txd_amount: VolatileCell<u32>
Number of bytes transferred in the last transaction
addr = base + 0x54C
txd_list: VolatileCell<u32>
EasyDMA list type
addr = base + 0x550
config: VolatileCell<Config>
Configuration register
addr = base + 0x554
_reserved13: [u32; 26]
orc: VolatileCell<u32>
Over-read character. Character clocked out in case and over-read of the TXD buffer.
addr = base + 0x5C0