HSTX_CTRL

Peripheral Memory Blocks

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

Registers

CSR

BIT3

BIT4

BIT5

BIT6

BIT7

EXPAND_SHIFT

EXPAND_TMDS

BIT0

BIT1

BIT2


CSR


address_offset : 0x0 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

CSR CSR read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 EN EXPAND_EN COUPLED_MODE COUPLED_SEL SHIFT N_SHIFTS CLKPHASE CLKDIV

EN : When EN is 1, the HSTX will shift out data as it appears in the FIFO. As long as there is data, the HSTX shift register will shift once per clock cycle, and the frequency of popping from the FIFO is determined by the ratio of SHIFT and SHIFT_THRESH. When EN is 0, the FIFO is not popped. The shift counter and clock generator are also reset to their initial state for as long as EN is low. Note the initial phase of the clock generator can be configured by the CLKPHASE field. Once the HSTX is enabled again, and data is pushed to the FIFO, the generated clock's first rising edge will be one half-period after the first data is launched.
bits : 0 - 0 (1 bit)
access : read-write

EXPAND_EN : Enable the command expander. When 0, raw FIFO data is passed directly to the output shift register. When 1, the command expander can perform simple operations such as run length decoding on data between the FIFO and the shift register. Do not change CXPD_EN whilst EN is set. It's safe to set CXPD_EN simultaneously with setting EN.
bits : 1 - 1 (1 bit)
access : read-write

COUPLED_MODE : Enable the PIO-to-HSTX 1:1 connection. The HSTX must be clocked *directly* from the system clock (not just from some other clock source of the same frequency) for this synchronous interface to function correctly. When COUPLED_MODE is set, BITx_SEL_P and SEL_N indices 24 through 31 will select bits from the 8-bit PIO-to-HSTX path, rather than shifter bits. Indices of 0 through 23 will still index the shift register as normal. The PIO outputs connected to the PIO-to-HSTX bus are those same outputs that would appear on the HSTX-capable pins if those pins' FUNCSELs were set to PIO instead of HSTX. For example, if HSTX is on GPIOs 12 through 19, then PIO outputs 12 through 19 are connected to the HSTX when coupled mode is engaged.
bits : 4 - 4 (1 bit)
access : read-write

COUPLED_SEL : Select which PIO to use for coupled mode operation.
bits : 5 - 6 (2 bit)
access : read-write

SHIFT : How many bits to right-rotate the shift register by each cycle. The use of a rotate rather than a shift allows left shifts to be emulated, by subtracting the left-shift amount from 32. It also allows data to be repeated, when the product of SHIFT and N_SHIFTS is greater than 32.
bits : 8 - 12 (5 bit)
access : read-write

N_SHIFTS : Number of times to shift the shift register before refilling it from the FIFO. (A count of how many times it has been shifted, *not* the total shift distance.) A register value of 0 means shift 32 times.
bits : 16 - 20 (5 bit)
access : read-write

CLKPHASE : Set the initial phase of the generated clock. A CLKPHASE of 0 means the clock is initially low, and the first rising edge occurs after one half period of the generated clock (i.e. CLKDIV/2 cycles of clk_hstx). Incrementing CLKPHASE by 1 will advance the initial clock phase by one half clk_hstx period. For example, if CLKDIV=2 and CLKPHASE=1: * The clock will be initially low * The first rising edge will be 0.5 clk_hstx cycles after asserting first data * The first falling edge will be 1.5 clk_hstx cycles after asserting first data This configuration would be suitable for serialising at a bit rate of clk_hstx with a centre-aligned DDR clock. When the HSTX is halted by clearing CSR_EN, the clock generator will return to its initial phase as configured by the CLKPHASE field. Note CLKPHASE must be strictly less than double the value of CLKDIV (one full period), else its operation is undefined.
bits : 24 - 27 (4 bit)
access : read-write

CLKDIV : Clock period of the generated clock, measured in HSTX clock cycles. Can be odd or even. The generated clock advances only on cycles where the shift register shifts. For example, a clkdiv of 5 would generate a complete output clock period for every 5 HSTX clocks (or every 10 half-clocks). A CLKDIV value of 0 is mapped to a period of 16 HSTX clock cycles.
bits : 28 - 31 (4 bit)
access : read-write


BIT3

Data control register for output bit 3
address_offset : 0x10 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT3 BIT3 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT4

Data control register for output bit 4
address_offset : 0x14 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT4 BIT4 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT5

Data control register for output bit 5
address_offset : 0x18 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT5 BIT5 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT6

Data control register for output bit 6
address_offset : 0x1C Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT6 BIT6 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT7

Data control register for output bit 7
address_offset : 0x20 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT7 BIT7 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


EXPAND_SHIFT

Configure the optional shifter inside the command expander
address_offset : 0x24 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

EXPAND_SHIFT EXPAND_SHIFT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAW_SHIFT RAW_N_SHIFTS ENC_SHIFT ENC_N_SHIFTS

RAW_SHIFT : How many bits to right-rotate the shift register by each time data is pushed to the output shifter, when the current command is a raw data command.
bits : 0 - 4 (5 bit)
access : read-write

RAW_N_SHIFTS : Number of times to consume from the shift register before refilling it from the FIFO, when the current command is a raw data command. A register value of 0 means shift 32 times.
bits : 8 - 12 (5 bit)
access : read-write

ENC_SHIFT : How many bits to right-rotate the shift register by each time data is pushed to the output shifter, when the current command is an encoded data command (e.g. TMDS).
bits : 16 - 20 (5 bit)
access : read-write

ENC_N_SHIFTS : Number of times to consume from the shift register before refilling it from the FIFO, when the current command is an encoded data command (e.g. TMDS). A register value of 0 means shift 32 times.
bits : 24 - 28 (5 bit)
access : read-write


EXPAND_TMDS

Configure the optional TMDS encoder inside the command expander
address_offset : 0x28 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

EXPAND_TMDS EXPAND_TMDS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 L0_ROT L0_NBITS L1_ROT L1_NBITS L2_ROT L2_NBITS

L0_ROT : Right-rotate applied to the current shifter data before the lane 0 TMDS encoder.
bits : 0 - 4 (5 bit)
access : read-write

L0_NBITS : Number of valid data bits for the lane 0 TMDS encoder, starting from bit 7 of the rotated data. Field values of 0 -> 7 encode counts of 1 -> 8 bits.
bits : 5 - 7 (3 bit)
access : read-write

L1_ROT : Right-rotate applied to the current shifter data before the lane 1 TMDS encoder.
bits : 8 - 12 (5 bit)
access : read-write

L1_NBITS : Number of valid data bits for the lane 1 TMDS encoder, starting from bit 7 of the rotated data. Field values of 0 -> 7 encode counts of 1 -> 8 bits.
bits : 13 - 15 (3 bit)
access : read-write

L2_ROT : Right-rotate applied to the current shifter data before the lane 2 TMDS encoder.
bits : 16 - 20 (5 bit)
access : read-write

L2_NBITS : Number of valid data bits for the lane 2 TMDS encoder, starting from bit 7 of the rotated data. Field values of 0 -> 7 encode counts of 1 -> 8 bits.
bits : 21 - 23 (3 bit)
access : read-write


BIT0

Data control register for output bit 0
address_offset : 0x4 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT0 BIT0 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT1

Data control register for output bit 1
address_offset : 0x8 Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT1 BIT1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 bit)
access : read-write


BIT2

Data control register for output bit 2
address_offset : 0xC Bytes (0x0)
size : 32 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

BIT2 BIT2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SEL_P SEL_N INV CLK

SEL_P : Shift register data bit select for the first half of the HSTX clock cycle
bits : 0 - 4 (5 bit)
access : read-write

SEL_N : Shift register data bit select for the second half of the HSTX clock cycle
bits : 8 - 12 (5 bit)
access : read-write

INV : Invert this data output (logical NOT)
bits : 16 - 16 (1 bit)
access : read-write

CLK : Connect this output to the generated clock, rather than the data shift register. SEL_P and SEL_N are ignored if this bit is set, but INV can still be set to generate an antiphase clock.
bits : 17 - 17 (1 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.