42. 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 42.3.2: PSSI pins and internal signals ).

42.1 PSSI 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.

42.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.

42.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 400 shows the PSSI block diagram.

42.3.1 PSSI block diagram

Figure 400. PSSI block diagram

Figure 400. 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 'Control/Status Register'. The 'FIFO/Data formatter' connects to a 'Data extraction' block, which in turn connects to a 'Synchronizer'. The 'Synchronizer' is connected to external pins: 'PSSI_PDCK', 'PSSI_D[15:0]', 'PSSI_DE', and 'PSSI_RDY'. The 'Control/Status Register' is also connected to the 'Synchronizer'. The diagram is labeled MSv48844V4.
Figure 400. 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 'Control/Status Register'. The 'FIFO/Data formatter' connects to a 'Data extraction' block, which in turn connects to a 'Synchronizer'. The 'Synchronizer' is connected to external pins: 'PSSI_PDCK', 'PSSI_D[15:0]', 'PSSI_DE', and 'PSSI_RDY'. The 'Control/Status Register' is also connected to the 'Synchronizer'. The diagram is labeled MSv48844V4.

Figure 401. Top-level block diagram

Figure 401. Top-level block diagram. This diagram shows the PSSI as a top-level block. On the left, it connects to an 'Interrupt controller' via 'pssi_it' and 'pssi_dma' signals, and to the internal 'pssi_hclk' signal. On the right, it has an 'External interface' consisting of 'PSSI_D[15:0]' (bidirectional), 'PSSI_DE', 'PSSI_RDY', and 'PSSI_PDCK' (all input signals). The diagram is labeled MSv48845V5.
Figure 401. Top-level block diagram. This diagram shows the PSSI as a top-level block. On the left, it connects to an 'Interrupt controller' via 'pssi_it' and 'pssi_dma' signals, and to the internal 'pssi_hclk' signal. On the right, it has an 'External interface' consisting of 'PSSI_D[15:0]' (bidirectional), 'PSSI_DE', 'PSSI_RDY', and 'PSSI_PDCK' (all input signals). The diagram is labeled MSv48845V5.

42.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 421 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 421. 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_HSYNCInput/outputData enable signal
PSSI_RDYDCMI_VSYNCInput/outputReady signal

Table 422 shows the PSSI internal input/output signals.

Table 422. PSSI internal input/output signals
Internal signal nameSignal typeDescription
pssi_itOutputInterrupt
pssi_dmaOutputDMA request
pssi_hclkInputAHB clock

42.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):

42.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 423 illustrates the positioning of the data bytes in two 32-bit words.

Table 423. 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 424 illustrates the positioning of the data in two 32-bit words.

Table 424. 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.

42.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 402. Data enable in receive mode waveform diagram (CKPOL=0)

Figure 402: 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). PSSI_PDCK is a square wave. PSSI_D[15:0] is a 16-bit bus with data segments (shaded) and high-impedance segments (white). PSSI_DE is a signal that goes low when data is valid. The diagram is labeled MSv48846V2.
Figure 402: 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). PSSI_PDCK is a square wave. PSSI_D[15:0] is a 16-bit bus with data segments (shaded) and high-impedance segments (white). PSSI_DE is a signal that goes low when data is valid. 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 403. Data enable waveform diagram in transmit mode (CKPOL=1)

Figure 403: Data enable waveform diagram in transmit mode (CKPOL=1). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). PSSI_PDCK is a square wave. PSSI_D[15:0] is a 16-bit bus with data segments (shaded) and high-impedance segments (white). PSSI_DE is a signal that goes low when data is valid. The diagram is labeled MSv48847V2.
Figure 403: Data enable waveform diagram in transmit mode (CKPOL=1). The diagram shows three signals over time: PSSI_PDCK (clock), PSSI_D[15:0] (data), and PSSI_DE (data enable). PSSI_PDCK is a square wave. PSSI_D[15:0] is a 16-bit bus with data segments (shaded) and high-impedance segments (white). PSSI_DE is a signal that goes low when data is valid. 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 RDPOL control bit (bit 6 of PSSI_CR). PSSI_RDY is active low when RDPOL is cleared to 0, and high when RDPOL 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 404. Ready in receive mode waveform diagram (CKPOL=0)

Figure 404. 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 during active periods. PSSI_DE is active (low) during data transfer periods. PSSI_RDY is active (low) when the receiver is ready to accept more data. The diagram includes break symbols (//) to indicate time gaps between signal transitions. A small label 'MSv48848V2' is in the bottom right corner of the diagram area.
Figure 404. 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 during active periods. PSSI_DE is active (low) during data transfer periods. PSSI_RDY is active (low) when the receiver is ready to accept more data. The diagram includes break symbols (//) to indicate time gaps between signal transitions. A small label 'MSv48848V2' is in the bottom right corner of the diagram area.

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 405. Bidirectional PSSI_DE/PSSI_RDY waveform

Figure 405: 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 is a low-active signal that goes low when data is being transferred and returns high when idle. There are break symbols (double slashes) on the lines to indicate time gaps.
Figure 405: 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 is a low-active signal that goes low when data is being transferred and returns high when idle. There are break symbols (double slashes) on the lines to indicate time gaps.

MSV48849V2

Figure 406. Bidirectional PSSI_DE/PSSI_RDY connection diagram

Figure 406: Bidirectional PSSI_DE/PSSI_RDY connection diagram. This block diagram shows a 'PSSI' block on the left and a 'Master transmitter' block on the right. They are connected by three lines: PSSI_D[15:0] (data bus), PSSI_PDCK (clock), and a combined line for PSSI_DE and PSSI_RDY. The PSSI_DE and PSSI_RDY line is shown with a pull-up resistor connected to the Master transmitter side.
Figure 406: Bidirectional PSSI_DE/PSSI_RDY connection diagram. This block diagram shows a 'PSSI' block on the left and a 'Master transmitter' block on the right. They are connected by three lines: PSSI_D[15:0] (data bus), PSSI_PDCK (clock), and a combined line for PSSI_DE and PSSI_RDY. The PSSI_DE and PSSI_RDY line is shown with a pull-up resistor connected to the Master transmitter side.

MSV48850V2

42.4 PSSI interrupts

The PSSI generates only one interrupt (IT_OVR). It is consequently equivalent to the global interrupt (pssi_it). Refer to Table 425 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 425. 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

42.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.

42.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.
rwrwrwrwrw
1514131211109876543210
Res.ENBLERes.Res.EDM[1:0]Res.RDYPOLRes.DEPOLCKPOLRes.Res.Res.Res.Res.
rwrwrwrwrwrw

Bit 31 OUTEN : Data direction selection bit

0: Receive mode: data is input synchronously with PSSI_PDCK

1: Transmit mode: data is output synchronously with PSSI_PDCK

Bit 30 DMAEN : DMA enable bit

0: DMA transfers are disabled. The user application can directly access the PSSI_DR register when DMA transfers are disabled.

1: DMA transfers are enabled (default configuration). A DMA channel in the general-purpose DMA controller must be configured to perform transfers from/to PSSI_DR.

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

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

000: PSSI_DE and PSSI_RDY both disabled

001: Only PSSI_RDY enabled

010: Only PSSI_DE enabled

011: Both PSSI_RDY and PSSI_DE alternate functions enabled

100: Both PSSI_RDY and PSSI_DE features enabled - bidirectional on PSSI_RDY pin (see Bidirectional PSSI_DE/PSSI_RDY signal on page 1702 )

101: Only PSSI_RDY function enabled, but mapped to PSSI_DE pin

110: Only PSSI_DE function enabled, but mapped to PSSI_RDY pin

111: Both PSSI_RDY and PSSI_DE features enabled - bidirectional on PSSI_DE pin (see Bidirectional PSSI_DE/PSSI_RDY signal on page 1702 )

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.

42.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 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.

42.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_R
IS
Res.
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.

42.5.4 PSSI interrupt enable register (PSSI_IER)

Address offset: 0x0C

Reset value: 0x0000 0000

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.

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_I
E
Res.
rw

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.

42.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_
MIS
Res.
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.

42.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_I
SC
Res.
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.

42.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 results 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

42.5.8 PSSI register map

Table 426. PSSI register map and reset values

OffsetRegister name313029282726252423222120191817161514131211109876543210
0x00PSSI_CROUTENDMAENRes.Res.Res.Res.Res.Res.Res.Res.Res.DERDYCFGRes.Res.Res.ENABLE[2:0]Res.Res.EDMRes.RDYPOLRes.DEPOLCKPOLRes.Res.Res.Res.Res.
Reset value01000000000
0x04PSSI_SRRes.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.RTT1BRTT4BRes.Res.
Reset value00
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.OVR_RIS
Reset value0
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.OVR_IE
Reset value0
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.OVR_MIS
Reset value0
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.OVR_ISC
Reset value0
0x18-0x24ReservedRes.
0x28PSSI_DRBYTE3[7:0]BYTE2[7:0]BYTE1[7:0]BYTE0[7:0]
Reset value00000000000000000000000000000000

Refer to Section 2.3: Memory organization for the register boundary addresses.