37. Parallel synchronous slave interface (PSSI)

The PSSI peripheral and the DCMI (digital camera interface) use the same circuitry. As a result, these two peripherals cannot be used at the same time: when using the PSSI, the DCMI registers cannot be accessed, and vice-versa.

In addition, the PSSI and the DCMI share the same alternate functions and interrupt vector (see Section 37.3.2: PSSI pins and internal signals ).

37.1 Introduction

The PSSI is a generic synchronous 8/16-bit parallel data input/output slave interface. It enables the transmitter to send a data valid signal that indicates when the data is valid, and the receiver to output a flow control signal that indicates when it is ready to sample the data.

37.2 PSSI main features

The PSSI peripheral main features are the following:

When selected, these signals can either enable the transmitter to indicate when the data is valid, allow the receiver to indicate when it is ready to sample the data, or both.

37.3 PSSI functional description

The PSSI is a synchronous parallel slave interface that can send or receive high-speed data flows. It consists of up to 16 data lines (PSSI_D[15:0]) plus a clock line (PSSI_PDCK). The clock polarity can be configured so that data can be captured or transmitted on either the clock rising or falling edge.

Usually, a general-purpose DMA channel is used to pass 32-bit packed data via the data register (PSSI_DR).

The data flow can either be continuous or synchronized by hardware using the optional PSSI_DE (Data enable), and PSSI_RDY (Ready) signals.

Figure 326 shows the PSSI block diagram.

37.3.1 PSSI block diagram

Figure 326. PSSI block diagram

Figure 326. PSSI block diagram. This diagram shows the internal architecture of the PSSI. On the left, an 'AHB interface' connects to a 'DMA interface', a 'Control/Status Register', and a 'FIFO/Data formatter'. The 'DMA interface' and 'Control/Status Register' are also connected to the 'FIFO/Data formatter'. The 'FIFO/Data formatter' connects to a 'Data extraction' block, which in turn connects to a 'Synchronizer'. The 'Synchronizer' is connected to the 'Control/Status Register' and has three output pins on the right: 'PSSI_PDCK', 'PSSI_D[15:0]', and 'PSSI_DE'. The 'PSSI_DE' and 'PSSI_RDY' pins are also connected to the 'Control/Status Register'. The diagram is labeled MSv48844V3.
Figure 326. PSSI block diagram. This diagram shows the internal architecture of the PSSI. On the left, an 'AHB interface' connects to a 'DMA interface', a 'Control/Status Register', and a 'FIFO/Data formatter'. The 'DMA interface' and 'Control/Status Register' are also connected to the 'FIFO/Data formatter'. The 'FIFO/Data formatter' connects to a 'Data extraction' block, which in turn connects to a 'Synchronizer'. The 'Synchronizer' is connected to the 'Control/Status Register' and has three output pins on the right: 'PSSI_PDCK', 'PSSI_D[15:0]', and 'PSSI_DE'. The 'PSSI_DE' and 'PSSI_RDY' pins are also connected to the 'Control/Status Register'. The diagram is labeled MSv48844V3.

Figure 327. Top-level block diagram

Figure 327. Top-level block diagram. This diagram shows the PSSI as a top-level block. On the left, 'pssi_hclk' is an input to the 'PSSI' block. Below it, an 'Interrupt controller' is connected to the 'PSSI' block via 'pssi_it' (output from PSSI) and 'pssi_dma' (input to PSSI). On the right, the 'PSSI' block has an 'External interface' consisting of 'PSSI_D[15:0]' (bidirectional), 'PSSI_DE' (input to PSSI), 'PSSI_RDY' (output from PSSI), and 'PSSI_PDCK' (input to PSSI). The diagram is labeled MSv48845V4.
Figure 327. Top-level block diagram. This diagram shows the PSSI as a top-level block. On the left, 'pssi_hclk' is an input to the 'PSSI' block. Below it, an 'Interrupt controller' is connected to the 'PSSI' block via 'pssi_it' (output from PSSI) and 'pssi_dma' (input to PSSI). On the right, the 'PSSI' block has an 'External interface' consisting of 'PSSI_D[15:0]' (bidirectional), 'PSSI_DE' (input to PSSI), 'PSSI_RDY' (output from PSSI), and 'PSSI_PDCK' (input to PSSI). The diagram is labeled MSv48845V4.

37.3.2 PSSI pins and internal signals

The PSSI interface is composed of 19 pins, though nine signals are enough to transfer parallel data. Table 305 shows the PSSI pins.

When the PSSI ENABLE bit (bit 14 of PSSI_CR) is set to 1, the alternate functions and the interrupt vector are associated with the PSSI. Otherwise, they are associated with the DCMI. The DCMI ENABLE bit (bit 15 of DCMI_CR) and the PSSI ENABLE bit (bit 14 of PSSI_CR) must not be set to 1 at the same time. As an example, if a GPIO is configured to use the alternate function PSSI_PDCK/DCMI_PIXCK, it is the PSSI_PDCK function which becomes active if PSSI_CR/ENABLE is set to 1.

Table 305. PSSI input/output pins

PSSI signal nameDCMI signal it is shared withSignal typeDescription
PSSI_PDCKDCMI_PIXCKInputParallel data clock input
PSSI_D[15:0]DCMI_D[13:0]Input/outputData output when transmitting, data input when receiving
PSSI_DEDCMI_HSYNCInputData enable signal: data valid signal when receiving or flow control signal when transmitting
PSSI_RDYDCMI_VSYNCOutputReady signal: flow control signal when receiving or data valid signal when transmitting

Table 306 shows the PSSI internal input/output signals.

Table 306. PSSI internal input/output signals

Internal signal nameSignal typeDescription
pssi_itOutputInterrupt
pssi_dmaOutputDMA request
pssi_hclkInputAHB clock

37.3.3 PSSI clock

The AHB clock frequency must be at least 2.5 times higher than the PSSI_PDCK frequency. At frequency ratios lower than 2.5, data might be corrupted or lost during transfers.

Data transfers are synchronous with PSSI_PDCK. The PSSI_PDCK polarity can be configured as follows, through CKPOL bit (bit 5 of PSSI_CR):

37.3.4 PSSI data management

Data direction

The direction of data transfers is configured through the OUTEN control bit (bit 31 of PSSI_CR):

OUTEN can be modified only when the ENABLE bit is cleared to 0.

Data register and DMA

Data are transferred from/to the FIFO using the PSSI_DR data register:

Word (32-bit) accesses to PSSI_DR and half-word (16-bit) accesses to PSSI_DR[15:0] are permitted in all modes. Byte (8-bit) accesses to PSSI_DR[7:0] are permitted only when the PSSI is configured to transfer 8 bits at a time (EDM=00 in the PSSI_CR register).

To reduce the load on the CPU, it is recommended to use the DMA to transfer data from/to the PSSI FIFO. When it is used, the DMA must be configured to transfer data via the PSSI_DR register. Using 32-bit transfers optimizes bandwidth and reduces the bus load. However, 8-bit and 16-bit transfers are also permitted.

To use the DMA, set the PSSI DMA enable bit (DMAEN in PSSI_CR) to 1 (default setting). When DMAEN is set to 1, a DMA transfer is initiated when the FIFO is ready for a 32-bit transfer (four valid bytes in receive mode or four empty bytes in transmit mode). As a result, in receive mode, no DMA transfers are initiated if there are three bytes or fewer in the FIFO, even if the DMA is configured to perform 8-bit transfers.

The RTT4B and RTT1B status bits (PSSI_SR) are useful when the CPU directly perform transfers to and from the FIFO. RTT4B set to 1 indicates that the FIFO is ready to transfer four bytes: at least four valid bytes in the FIFO in receive mode or at least four free bytes in transmit mode. RTT1B set to 1 indicates that the FIFO is ready to transfer one byte: at least one valid byte in the FIFO in receive mode or at least one free byte in transmit mode.

8-bit data

The PSSI parallel interface can transfer either 8-bit (using D[7:0]) or 16-bit data (using D[15:0]) depending on the EDM[1:0] control bits (bits 11:10 of PSSI_CR). If the 8-bit configuration is selected (EDM[1:0] set to 00), the unused D[15:0] pins can be used for GPIO or other functions.

When EDM[1:0] in PSSI_CR are programmed to 00, the interface transfers 8 bits using the D[7:0] pins. In this case, D[15:8] are not used and four PSSI_PDCK cycles are required to transfer a 32-bit word.

The least-significant byte (bits 7:0) correspond to the first byte transferred, and the most-significant byte (bits 31:28) corresponds to the forth byte transferred. Table 307 illustrates the positioning of the data bytes in two 32-bit words.

Table 307. Positioning of captured data bytes in 32-bit words (8-bit width)

Byte address31:2423:1615:87:0
0D n+3 [7:0]D n+2 [7:0]D n+1 [7:0]D n [7:0]
4D n+7 [7:0]D n+6 [7:0]D n+5 [7:0]D n+4 [7:0]

16-bit data

When EDM[1:0] in PSSI_CR are programmed to 11, the interface transfers 16 bits using the D[15:0] pins. In this case, two PSSI_PDCK cycles are required to transfer a 32-bit word.

The least-significant half word (bits 15:0) correspond to the first half word transferred, and the most-significant half-word (bits 31:16) corresponds to the second half word transferred.

Table 308 illustrates the positioning of the data in two 32-bit words.

Table 308. Positioning of captured data bytes in 32-bit words (16-bit width)

Byte address31:1615:0
0D n+1 [15:0]D n [15:0]
4D n+3 [15:0]D n+2 [15:0]

FIFO data buffer and error conditions

An eight-word FIFO helps improving performance and avoids overruns and underruns.

If the ready signal (PSSI_RDY) is disabled in receive mode, an overrun error is generated when a clock active edge occurs when the FIFO is full. In this case, the input data is lost.

If the data enable signal (PSSI_DE) is disabled in transmit mode, an underrun error is generated when a clock active edge occurs when the FIFO is empty. In this case, unpredictable data are output.

The OVR_RIS status bit indicates that either an overrun or an underrun occurred. An interrupt can be generated when these events occur.

37.3.5 PSSI optional control signals

Data Enable (PSSI_DE) alternate function input

The data enable signal, PSSI_DE, is an optional signal. It is driven by the data source/transmitter in order to indicate that the data is valid to be transferred during the current cycle. When PSSI_DE is inactive, it means that the data must not be sampled by the receiver at the next clock edge.

This alternate function signal can be enabled using the DERDYCFG (bits 20:18 of PSSI_CR) control bits. PSSI_DE polarity is configured through DEPOL control bit (bit 6 of PSSI_CR). PSSI_DE is active low when DEPOL is cleared to 0, and high when DEPOL is set to 1.

The direction of the PSSI_DE signal is defined by the OUTEN value. It is the same as the data direction.

If the PSSI_DE alternate function input is enabled (through DERDYCFG) in receive mode (OUTEN cleared to 0), the PSSI samples PSSI_DE on the same PSSI_PDCK edge as the one used for sampling the data (D[15:0]). If PSSI_DE is active, the sampled data is saved in the FIFO. Otherwise, the sampled data is considered invalid and discarded. The transmitting device can use PSSI_DE as a data valid signal, driving it inactive when the data in the current cycle is not valid. This flow control function allows avoiding underrun errors.

Figure 328. Data enable in receive mode waveform diagram (CKPOL=0)

Figure 328: Data enable in receive mode waveform diagram (CKPOL=0). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). The clock is a square wave. The data is a 16-bit bus that changes values on the rising edges of the clock. The data enable signal is active low and goes low on the rising edge of the clock when there is valid data on the bus. The diagram is labeled MSv48846V2.
Figure 328: Data enable in receive mode waveform diagram (CKPOL=0). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). The clock is a square wave. The data is a 16-bit bus that changes values on the rising edges of the clock. The data enable signal is active low and goes low on the rising edge of the clock when there is valid data on the bus. The diagram is labeled MSv48846V2.

If the PSSI_DE alternate output function is enabled (through DERDYCFG) in transmit mode (OUTEN=1), the PSSI drives PSSI_DE on the same PSSI_PDCK edge that the one used to drive the data (D[15:0]). If a new 8 or 16-bit data (as programmed in the EDM[1:0] control bits in PSSI_CR) is available for transmission in the internal FIFO, this data is output on the data outputs (D[15:0]) and the PSSI_DE output becomes active on the current PSSI_PDCK edge. Otherwise (if the TX FIFO is empty), the D[15:0] outputs remains unchanged on the next clock edge and the PSSI_DE output becomes inactive.

Figure 329. Data enable waveform diagram in transmit mode (CKPOL=0)

Figure 329: Data enable waveform diagram in transmit mode (CKPOL=0). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). The clock is a square wave. The data is a 16-bit bus that changes values on the rising edges of the clock. The data enable signal is active low and goes low on the rising edge of the clock when there is valid data on the bus. The diagram is labeled MSv48847V2.
Figure 329: Data enable waveform diagram in transmit mode (CKPOL=0). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). The clock is a square wave. The data is a 16-bit bus that changes values on the rising edges of the clock. The data enable signal is active low and goes low on the rising edge of the clock when there is valid data on the bus. The diagram is labeled MSv48847V2.

Ready (PSSI_RDY) alternate function output

The ready signal, PSSI_RDY, is an optional signal. It is driven by the receiving device and indicates whether data is being accepted in the current cycle. When PSSI_RDY is inactive, it means that the data must not be sampled by the receiver at the next clock edge.

This alternate function signal can be enabled using the DERDYCFG control bits (bits 20:18 of PSSI_CR). PSSI_RDY polarity is configured through the RDYPOL control bit (bit 6 of PSSI_CR). PSSI_RDY is active low when RDYPOL is cleared to 0, and high when RDYPOL set to 1.

The direction of the PSSI_RDY signal is defined by the OUTEN (bit 31 of PSSI_CR). It is set in the opposite direction compared to the PSSI_DE and data signals.

If the PSSI_RDY alternate output function is enabled (through DERDYCFG) in receive mode (OUTEN=0), the PSSI drives PSSI_RDY one PSSI_PDCK half cycle after it samples

the data (D[15:0]). If the FIFO has enough free space to receive more data, the PSSI drives the PSSI_RDY signal active. Otherwise, if the FIFO is full and cannot accept more data, the PSSI drives the PSSI_RDY signal inactive. The transmitting device must repeat the current data in the next cycle when it detects that PSSI_RDY is inactive. This flow control function allows the PSSI to avoid overrun errors when the system (via the DMA) is unable to keep up with the data flow.

Figure 330. Ready in receive mode waveform diagram (CKPOL=0)

Figure 330. Ready in receive mode waveform diagram (CKPOL=0). The diagram shows four signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data bus), PSSI_DE (data enable), and PSSI_RDY (ready). PSSI_PDCK is a periodic square wave. PSSI_D[15:0] shows data being driven onto the bus. PSSI_DE is a signal that goes high when data is valid. PSSI_RDY is a signal that goes low when the receiver is ready to accept more data. The diagram illustrates the timing relationship between these signals in receive mode.

The waveform diagram shows four signals over time. The top signal, PSSI_PDCK, is a periodic square wave representing the clock. The second signal, PSSI_D[15:0], represents the data bus, with data being driven onto it in a series of pulses. The third signal, PSSI_DE, is the data enable signal, which goes high when data is valid. The bottom signal, PSSI_RDY, is the ready signal, which goes low when the receiver is ready to accept more data. The diagram illustrates the timing relationship between these signals in receive mode, showing how the ready signal is used to control the data flow.

Figure 330. Ready in receive mode waveform diagram (CKPOL=0). The diagram shows four signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data bus), PSSI_DE (data enable), and PSSI_RDY (ready). PSSI_PDCK is a periodic square wave. PSSI_D[15:0] shows data being driven onto the bus. PSSI_DE is a signal that goes high when data is valid. PSSI_RDY is a signal that goes low when the receiver is ready to accept more data. The diagram illustrates the timing relationship between these signals in receive mode.

MSV48848V2

If the PSSI_RDY alternate input function is enabled (through DERDYCFG) in transmit mode (OUTEN=1), the PSSI samples the PSSI_RDY signal on the opposite PSSI_PDCK edge to the one at which D[15:0] are driven. If the PSSI_RDY signal is inactive, the PSSI keeps the same data (D[15:0]) and PSSI_DE signals that valid data are available during the next PSSI_PDCK clock cycle. Otherwise, if PSSI_RDY signal is sampled as active, the next data from the TX FIFO (if available) is output on the data outputs (D[15:0]). If no new data are available in the TX FIFO, the PSSI keeps the data output values and outputs the PSSI_DE signal as inactive (if enabled).

The receiving device uses the PSSI_RDY to control the data flow and avoid overrun errors when the system (via the DMA) is unable to keep up with the data flow.

Bidirectional PSSI_DE/PSSI_RDY signal

A single pin can be used for both data enable (PSSI_DE) and ready (PSSI_RDY) functions if DEPOL and RDYPOL are both set to 1 and DERDYCFG is set to 111 or 100 in the PSSI_CR register. In this case, the GPIO corresponding to selected alternate function (PSSI_DE when DERDYCFG=111 or PSSI_RDY when DERDYCFG=100) must be configured as open-drain. The other device must also be configured to drive the line as open-drain, and a weak pull-up must be applied to the line.

The signal thus becomes bidirectional. If either the sender drives the line low (to indicate that the data is not valid) or the receiver drives the line low (to indicate that it is not sampling the current data), then both devices know that the data is not being transferred in the current cycle.

Figure 331. Bidirectional PSSI_DE/PSSI_RDY waveform

Figure 331: Bidirectional PSSI_DE/PSSI_RDY waveform diagram. The diagram shows three signal lines over time. The top line is PSSI_PDCK, a periodic square wave clock signal. The middle line is PSSI_D[15:0], a 16-bit data bus shown as a series of trapezoidal shapes representing data packets. The bottom line is a combined signal for PSSI_DE (Data Enable) and PSSI_RDY (Ready). It shows a low pulse for PSSI_DE that coincides with the data packets, and a high pulse for PSSI_RDY that indicates the end of a data packet. The diagram is labeled MSv48849V2 in the bottom right corner.
Figure 331: Bidirectional PSSI_DE/PSSI_RDY waveform diagram. The diagram shows three signal lines over time. The top line is PSSI_PDCK, a periodic square wave clock signal. The middle line is PSSI_D[15:0], a 16-bit data bus shown as a series of trapezoidal shapes representing data packets. The bottom line is a combined signal for PSSI_DE (Data Enable) and PSSI_RDY (Ready). It shows a low pulse for PSSI_DE that coincides with the data packets, and a high pulse for PSSI_RDY that indicates the end of a data packet. The diagram is labeled MSv48849V2 in the bottom right corner.

Figure 332. Bidirectional PSSI_DE/PSSI_RDY connection diagram

Figure 332: Bidirectional PSSI_DE/PSSI_RDY connection diagram. The diagram shows two main blocks: 'PSSI' on the left and 'Master transmitter' on the right. Between them are three signal lines: PSSI_D[15:0] (data bus), PSSI_PDCK (clock), and PSSI_DE_RDY (combined enable/ready signal). The PSSI_DE_RDY line is connected to the Master transmitter and has a pull-up resistor. The diagram is labeled MSv48850V2 in the bottom right corner.
Figure 332: Bidirectional PSSI_DE/PSSI_RDY connection diagram. The diagram shows two main blocks: 'PSSI' on the left and 'Master transmitter' on the right. Between them are three signal lines: PSSI_D[15:0] (data bus), PSSI_PDCK (clock), and PSSI_DE_RDY (combined enable/ready signal). The PSSI_DE_RDY line is connected to the Master transmitter and has a pull-up resistor. The diagram is labeled MSv48850V2 in the bottom right corner.

37.4 PSSI interrupts

The PSSI generates only one interrupt (IT_OVR). It is consequently equivalent to the global interrupt (pssi_it). Refer to Table 309 for the list of interrupts.

The PSSI and the DCMI share the same interrupt vector. When the PSSI ENABLE bit (bit 14 of PSSI_CR) is set to 1, these interrupts are triggered by the PSSI. Otherwise, they are controlled by the DCMI.

The DCMI ENABLE bit (bit 14 of DCMI_CR) and PSSI ENABLE bit must not be set to 1 at the same time.

Table 309. PSSI interrupt requests

Interrupt acronymShared with DCMIInterrupt eventEvent flagEnable control bitInterrupt clear methodExit from low-power mode
IT_OVRIT_OVRindicates overrun in receive mode or underrun in transmit modeOVR_RISOVR_IEOVR_ISCNA

37.5 PSSI registers

An 8-bit write or a 16-bit write operation to any PSSI register besides PSSI_DR, results in a bus error. 32-bit read and write operations are permitted.

37.5.1 PSSI control register (PSSI_CR)

Address offset: 0x00

Reset value: 0x4000 0000

31302928272625242322212019181716
OUTENDMAENRes.Res.Res.Res.Res.Res.Res.Res.Res.DERDYCFG[2:0]Res.Res.
rwrwrw3wrw
1514131211109876543210
Res.ENABLERes.Res.EDM[1:0]Res.RDYPOLRes.DEPOLCKPOLRes.Res.Res.Res.Res.
rwrwrwrwrwrw

Bit 31 OUTEN : Data direction selection bit

Bit 30 DMAEN : DMA enable bit

Bits 29:21 Reserved, must be kept at reset value.

Bits 20:18 DERDYCFG[2:0] : Data enable and ready configuration

When the PSSI_RDY function is mapped to the PSSI_DE pin (settings 101 or 111), it is still the RDYPOL bit which determines its polarity. Similarly, when the PSSI_DE function is mapped to the PSSI_RDY pin (settings 110 or 111), it is still the DEPOL bit which determines its polarity.

Bits 17:15 Reserved, must be kept at reset value.

Bit 14 ENABLE : PSSI enable

0: PSSI disabled

1: PSSI enabled

The contents of the FIFO are flushed when ENABLE is cleared to 0.

Note: When ENABLE=1, the content of PSSI_CR must not be changed, except for the ENABLE bit itself. All configuration bits can change as soon as ENABLE changes from 0 to 1.

The DMA controller and all PSSI configuration registers must be programmed correctly before setting the ENABLE bit to 1.

The ENABLE bit and the DCMI ENABLE bit (bit 15 of DCMI_CR) must not be set to 1 at the same time.

Bits 13:12 Reserved, must be kept at reset value.

Bits 11:10 EDM[1:0] : Extended data mode

00: Interface captures 8-bit data on every parallel data clock

01: Reserved, must not be selected

10: Reserved, must not be selected

11: The interface captures 16-bit data on every parallel data clock

Bit 9 Reserved, must be kept at reset value.

Bit 8 RDYPOL : Ready (PSSI_RDY) polarity

This bit indicates the level on the PSSI_RDY pin when the data are not valid on the parallel interface.

0: PSSI_RDY active low (0 indicates that the receiver is ready to receive)

1: PSSI_RDY active high (1 indicates that the receiver is ready to receive)

Bit 7 Reserved, must be kept at reset value.

Bit 6 DEPOL : Data enable (PSSI_DE) polarity

This bit indicates the level on the PSSI_DE pin when the data are not valid on the parallel interface.

0: PSSI_DE active low (0 indicates that data is valid)

1: PSSI_DE active high (1 indicates that data is valid)

Bit 5 CKPOL : Parallel data clock polarity

This bit configures the capture edge of the parallel clock or the edge used for driving outputs, depending on OUTEN.

0: Falling edge active for inputs or rising edge active for outputs

1: Rising edge active for inputs or falling edge active for outputs.

Bits 4:0 Reserved, must be kept at reset value.

37.5.2 PSSI status register (PSSI_SR)

Address offset: 0x04

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.RTT1BRTT4BRes.Res.
rr

Bits 31:4 Reserved, must be kept at reset value.

Bit 3 RTT1B : FIFO is ready to transfer one byte

1: FIFO is ready for a one byte (32-bit) transfer. In receive mode, this means that at least one valid data byte is in the FIFO. In transmit mode, this means that there is at least one byte free in the FIFO.

0: FIFO is not ready for a 1-byte transfer

Bit 2 RTT4B : FIFO is ready to transfer four bytes

1: FIFO is ready for a four-byte (32-bit) transfer. In receive mode, this means that at least four valid data bytes are in the FIFO. In transmit mode, this means that there are at least four bytes free in the FIFO.

0: FIFO is not ready for a four-byte transfer

Bits 1:0 Reserved, must be kept at reset value.

37.5.3 PSSI raw interrupt status register (PSSI_RIS)

Address offset: 0x08

Reset value: 0x0000 0000

PSSI_RIS gives the raw interrupt status. This register is read-only. When read, it returns the status of the corresponding interrupt before masking with the PSSI_IER register value.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OVR_RISRes.
r

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 OVR_RIS : Data buffer overrun/underrun raw interrupt status

0: No overrun/underrun occurred

1: An overrun/underrun occurred: overrun in receive mode, underrun in transmit mode.

This bit is cleared by writing a 1 to the OVR_ISC bit in PSSI_ICR.

Bit 0 Reserved, must be kept at reset value.

37.5.4 PSSI interrupt enable register (PSSI_IER)

Address offset: 0x0C

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OVR_IERes.
rw

The PSSI_IER register is used to enable interrupts. When one of the PSSI_IER bits is set, the corresponding interrupt is enabled. This register is accessible both in read and write modes.

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 OVR_IE : Data buffer overrun/underrun interrupt enable

0: No interrupt generation

1: An interrupt is generated if either an overrun or an underrun error occurred.

Bit 0 Reserved, must be kept at reset value.

37.5.5 PSSI masked interrupt status register (PSSI_MIS)

This PSSI_MIS register is read-only. When read, it returns the current masked status value of the corresponding interrupt (depending on the value in PSSI_IER). A bit in this register is

set if the corresponding enable bit in PSSI_IER is set and the corresponding bit in PSSI_RIS is set.

Address offset: 0x10

Reset value: 0x0000 0000

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OVR_MISRes.
r

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 OVR_MIS : Data buffer overrun/underrun masked interrupt status

This bit is set to 1 only when PSSI_IER/OVR_IE and PSSI_RIS/OVR_RIS are both set to 1.

0: No interrupt is generated when an overrun/underrun error occurs

1: An interrupt is generated if there is either an overrun or an underrun error and the OVR_IE bit is set in PSSI_IER.

Bit 0 Reserved, must be kept at reset value.

37.5.6 PSSI interrupt clear register (PSSI_ICR)

Address offset: 0x14

Reset value: 0x0000 0000

The PSSI_ICR register is write-only. Writing a 1 into a bit of this register clears the corresponding bit in the PSSI_RIS and PSSI_MIS registers. Writing a 0 has no effect. Reading this register always gives zeros.

31302928272625242322212019181716
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.
1514131211109876543210
Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.OVR_ISCRes.
w

Bits 31:2 Reserved, must be kept at reset value.

Bit 1 OVR_ISC : Data buffer overrun/underrun interrupt status clear

Writing this bit to 1 clears the OVR_RIS bit in PSSI_RIS.

Bit 0 Reserved, must be kept at reset value.

37.5.7 PSSI data register (PSSI_DR)

Address offset: 0x28

Reset value: 0x0000 0000

In receive mode (OUTEN=0), the DMA controller must read the received data from this register. Write operations to PSSI_DR result in an error response. When more bytes than the number of valid bytes are read in the FIFO, the invalid bytes return zeros.

In transmit mode (OUTEN=1), the DMA controller must write the data to be transmitted into this register. Read operations to PSSI_DR result in an error response.

32-bit, 16-bit, and 8-bit accesses are all supported for PSSI_DR. For instance, 16-bit read/write operations remove/add two bytes from/to the FIFO. However, 8-bit accesses are permitted only when the PSSI is configured to transfer 8 data bits at a time (EDM=00 in PSSI_CR). 8-bit accesses to PSSI_DR when EDM is not set to 0 result in an error response.

All accesses must include byte 0: 8-bit accesses must be performed to bits 7 to 0 and 16-bit accesses from bits 15 to 0. Accesses that do not include byte 0 result in an error response.

Accessing PSSI_DR when ENABLE bit in PSSI_CR is set to 0 results in an error response.

31302928272625242322212019181716
BYTE3[7:0]BYTE2[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw
1514131211109876543210
BYTE1[7:0]BYTE0[7:0]
rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

Bits 31:24 BYTE3[7:0] : Data byte 3

Bits 23:16 BYTE2[7:0] : Data byte 2

Bits 15:8 BYTE1[7:0] : Data byte 1

Bits 7:0 BYTE0[7:0] : Data byte 0

37.5.8 PSSI register map

Table 310. PSSI register map and reset values

OffsetRegister313029282726252423222120191817161514131211109876543210
0x00PSSI_CROUTENDMAENResResResResResResResResResDERDYCFGResResResResResENABLE[2:0]ResResEDMResRDYPOLResDEPOLCKPOLResResResResRes
Reset value0100000000
0x04PSSI_SRResResResResResResResResResResResResResResResResResResResResResResResResResResResResRTT1BRTT4BResRes
Reset value00

Table 310. PSSI register map and reset values (continued)

OffsetRegister313029282726252423222120191817161514131211109876543210
0x08PSSI_RISRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.o OVR_RISRes.
Reset valueo
0x0CPSSI_IERRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res. amRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.o OVR_IERes.
Reset valueo
0x10PSSI_MISRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.o OVR_MISRes.
Reset valueo
0x14PSSI_ICRRes.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.Res.o OVR_ISCRes.
Reset valueo
0x18 to 0x24ReservedRes.
0x28PSSI_DRBYTE3[7:0]BYTE2[7:0]BYTE1[7:0]BYTE0[7:0]
Reset value00000000000000000000000000000000

Refer to Section 2.3 on page 131 for the register boundary addresses.