\n

Peripheral_Registers

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0xA byte (0x0)
mem_usage : registers
protection :

Registers

SPI_CTRL_REG

SPI_RX_TX_REG0

SPI_RX_TX_REG1

SPI_CLEAR_INT_REG

SPI_CTRL_REG1


SPI_CTRL_REG

SPI control register 0
address_offset : 0x0 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SPI_CTRL_REG SPI_CTRL_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SPI_ON SPI_PHA SPI_POL SPI_CLK SPI_DO SPI_SMN SPI_WORD SPI_RST SPI_FORCE_DO SPI_TXH SPI_DI SPI_INT_BIT SPI_MINT SPI_EN_CTRL

SPI_ON : 0 = SPI Module switched off (power saving). Everything is reset except SPI_CTRL_REG0 and SPI_CTRL_REG1. When this bit is cleared the SPI will remain active in master mode until the shift register and holding register are both empty. 1 = SPI Module switched on. Should only be set after all control bits have their desired values. So two writes are needed!
bits : 0 - 0 (1 bit)
access : read-write

SPI_PHA : Select SPI_CLK phase. See functional timing diagrams in SPI chapter
bits : 1 - 2 (2 bit)
access : read-write

SPI_POL : Select SPI_CLK polarity. 0 = SPI_CLK is initially low. 1 = SPI_CLK is initially high.
bits : 2 - 4 (3 bit)
access : read-write

SPI_CLK : Select SPI_CLK clock frequency in master mode:00 = (XTAL) / (CLK_PER_REG *8) 01 = (XTAL) / (CLK_PER_REG *4) 10 = (XTAL) / (CLK_PER_REG *2) 11 = (XTAL) / (CLK_PER_REG *14)
bits : 3 - 7 (5 bit)
access : read-write

SPI_DO : Pin SPI_DO output level when SPI is idle or when SPI_FORCE_DO=1
bits : 5 - 10 (6 bit)
access : read-write

SPI_SMN : Master/slave mode 0 = Master, 1 = Slave(SPI1 only)
bits : 6 - 12 (7 bit)
access : read-write

SPI_WORD : 00 = 8 bits mode, only SPI_RX_TX_REG0 used 01 = 16 bit mode, only SPI_RX_TX_REG0 used 10 = 32 bits mode, SPI_RX_TX_REG0 and SPI_RX_TX_REG1 used 11 = 9 bits mode. Only valid in master mode.
bits : 7 - 15 (9 bit)
access : read-write

SPI_RST : 0 = normal operation 1 = Reset SPI. Same function as SPI_ON except that internal clock remain active.
bits : 9 - 18 (10 bit)
access : read-write

SPI_FORCE_DO : 0 = normal operation 1 = Force SPIDO output level to value of SPI_DO.
bits : 10 - 20 (11 bit)
access : read-write

SPI_TXH : 0 = TX-FIFO is not full, data can be written. 1 = TX-FIFO is full, data can not be written.
bits : 11 - 22 (12 bit)
access : read-only

SPI_DI : Returns the actual value of pin SPI_DIN (delayed with two internal SPI clock cycles)
bits : 12 - 24 (13 bit)
access : read-only

SPI_INT_BIT : 0 = RX Register or FIFO is empty. 1 = SPI interrupt. Data has been transmitted and receivedMust be reset by SW by writing to SPI_CLEAR_INT_REG.
bits : 13 - 26 (14 bit)
access : read-only

SPI_MINT : 0 = Disable SPI_INT_BIT to the Interrupt Controller 1 = Enable SPI_INT_BIT to the Interrupt Controller
bits : 14 - 28 (15 bit)
access : read-write

SPI_EN_CTRL : 0 = SPI_EN pin disabled in slave mode. Pin SPI_EN is don't care. 1 = SPI_EN pin enabled in slave mode.
bits : 15 - 30 (16 bit)
access : read-write


SPI_RX_TX_REG0

SPI RX/TX register0
address_offset : 0x2 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SPI_RX_TX_REG0 SPI_RX_TX_REG0 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SPI_DATA0

SPI_DATA0 : Write: SPI_TX_REG0 output register 0 (TX-FIFO) Read: SPI_RX_REG0 input register 0 (RX-FIFO) In 8 or 9 bits mode bits 15 to 8 are not used, they contain old data.
bits : 0 - 15 (16 bit)
access : write-only


SPI_RX_TX_REG1

SPI RX/TX register1
address_offset : 0x4 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SPI_RX_TX_REG1 SPI_RX_TX_REG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SPI_DATA1

SPI_DATA1 : Write: SPI_TX_REG1 output register 1 (MSB's of TX-FIFO) Read: SPI_RX_REG1 input register 1 (MSB's of RX-FIFO) In 8 or 9 or 16 bits mode bits this register is not used.
bits : 0 - 15 (16 bit)
access : write-only


SPI_CLEAR_INT_REG

SPI clear interrupt register
address_offset : 0x6 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SPI_CLEAR_INT_REG SPI_CLEAR_INT_REG read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SPI_CLEAR_INT

SPI_CLEAR_INT : Writing any value to this register will clear the SPI_CTRL_REG[SPI_INT_BIT] Reading returns 0.
bits : 0 - 15 (16 bit)
access : write-only


SPI_CTRL_REG1

SPI control register 1
address_offset : 0x8 Bytes (0x0)
size : 16 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

SPI_CTRL_REG1 SPI_CTRL_REG1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SPI_FIFO_MODE SPI_PRIORITY SPI_BUSY SPI_9BIT_VAL

SPI_FIFO_MODE : 0: TX-FIFO and RX-FIFO used (Bidirectional mode). 1: RX-FIFO used (Read Only Mode) TX-FIFO single depth, no flow control 2: TX-FIFO used (Write Only Mode), RX-FIFO single depth, no flow control 3: No FIFOs used (backwards compatible mode)
bits : 0 - 1 (2 bit)
access : read-write

SPI_PRIORITY : 0 = The SPI has low priority, the DMA request signals are reset after the corresponding acknowledge. 1 = The SPI has high priority, DMA request signals remain active until the FIFOS are filled/emptied, so the DMA holds the AHB bus.
bits : 2 - 4 (3 bit)
access : read-write

SPI_BUSY : 0 = The SPI is not busy with a transfer. This means that either no TX-data is available or that the transfers have been suspended due to a full RX-FIFO. The SPIx_CTRL_REG0[SPI_INT_BIT] can be used to distinguish between these situations. 1 = The SPI is busy with a transfer.
bits : 3 - 6 (4 bit)
access : read-only

SPI_9BIT_VAL : Determines the value of the first bit in 9 bits SPI mode.
bits : 4 - 8 (5 bit)
access : read-write



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.