UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
369 of 1269
NXP Semiconductors
UM10503
Chapter 18: LPC43xx Serial GPIO (SGPIO)
The shift clock controls the rate at which data is shifted through the chain. The bit shift
increment is set by register parallel_mode to be 1, 2, 4 or 8 bits. Shifts of more than 1 are
used in multi-lane modes.
The shift clock can originate from an external source (see
) or be generated
locally.The shift clock can be qualified by an external pin or other slice. The local clock is
made from a 12-bit down counter COUNT running at the SGPIO_CLOCK. The count
duration can be preset with register PRESET. When COUNT reaches zero, it is loaded
with PRESET.
The shift clock frequency is therefore equal to:
frequency(shift_clock) = frequency(SGPIO_CLK) / (1).
Each time COUNT reaches zero the register shifts right; loading bit REG[31] with data
captured from DIN and loading DOUT with bit REG[0]. Thus COUNT controls the serial
data rate. When several slices are used to create an interface port the phase between the
different slices can be controlled by using different initial COUNT value.
A second down counter (POS) controls when parallel data is loaded to and stored from
the chain. The POS counter consists of an 8-bit counter that is decremented when
COUNT equals zero. When POS reaches zero it is loaded with the PRESET_POS value.
Slice data is exchanged using a double buffering scheme. When POS reaches zero the
slice register REG content is swapped with the slice buffer REG_SS content. This gives
the CPU more time to process the REG_SS buffer content. PRESET_POS can be used to
indicate word boundaries for words that are not a multiple of 32 bit. A PRESET_POS
value of zero will cause a REG swap with REG_SS after every shift clock.
Fig 37. Basic operation of one slice
31
din
30
.
.
0
1
dout
31
30
.
.
0
1
REG
PRESET
12b COUNTer
-1
8b POS counter
SGPIO_
CLOCK
TC
POS
TC
POS
TC
shift_clk
a
a
POS_PRESET
-1
external clock
REG_SS
dout from
other slices
self loop
concat _
order
concat _
enable
in multi-lane modes
output multiple MSBs
in multi- lane modes
input multiple LSBs
qualifier
0