![NXP Semiconductors LPC43Sxx Скачать руководство пользователя страница 478](http://html1.mh-extra.com/html/nxp-semiconductors/lpc43sxx/lpc43sxx_user-manual_1721827478.webp)
UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2015. All rights reserved.
User manual
Rev. 2.1 — 10 December 2015
478 of 1441
NXP Semiconductors
UM10503
Chapter 20: LPC43xx/LPC43Sxx Serial GPIO (SGPIO)
–
Output clock polarity can be inverted.
•
Interface
–
The register memory map supports use of ARM Store Multiple and Load Multiple
instructions. Slice functions that control the same features are mapped in
consecutive registers.
–
The bit order is optimized for MSB first. Interfaces that require LSB first should use
a software instruction (RBIT) to reverse the bit order (not supported by the ARM
Cortex-M0).
20.4.1 SGPIO-to-AHB connection
The SGPIO is connected to the multilayer matrix via an asynchronous bridge. This allows
the SGPIO to run at a clock (CLK_PERIPH_SGPIO) independent from the matrix clock
MCLK = BASE_M4_CLK. Also see
and
The bridge introduces the following access latencies:
Read latency: 4 x MCLK + 4 x CLK_PERIPH_SGPIO
Write latency: 4 x MCLK + 2 x CLK_PERIPH_SGPIO
20.4.2 Interrupts
The combined SGPIO interrupt is connected to the Cortex-M4 interrupt #31 (see
and the Cortex-M0 NVIC #19. On parts with enabled Cortex-M0 subsystem, each SGPIO
interrupt has a separate connection to the Cortex-M0 subsystem core NVIC (see
).
Interrupts are raised on the following events:
•
The input bit match interrupt is raised when the input bit is equal to the conditions set
in DATA_CAPTURE_MODE (
•
The pattern match interrupt is raised when the input data is equal to the masked
pattern (see
•
The shift clock interrupt is raised at the occurrence of a shift clock when COUNTx
equals zero (see
). This interrupt is generated at each shift bit.
•
The capture clock interrupt is raised when a slice swap occurs, that is at the
occurrence of a capture clock when POSx equals zero (see
to
Each of the interrupts can be controlled through a set of registers in one of the following
ways:
•
Disable or enable interrupts using registers CLR_EN/SET_EN.
•
Read interrupts via the register STATUS.
•
Read the interrupt mask via the register ENABLE.
•
Set interrupts via the register SET_STAT.
•
Clear interrupts via the register CLR_STATUS.