Renesas f641x_dig Design Specification

F641x Digital

Design Specification Rev.0.13

 

All information contained in these materials, including products and product specifications, represents information on the product at the time of publication and is subject to change by Renesas Electronics Corp. without notice. Please review the latest information published by Renesas Electronics Corp. through various means, including the Renesas Electronics Corp. website (http://www.renesas.com).

 

Preface

Readers

This specification presents the design specification of the digital part of the F641x device and is intended for users who want to understand the concept, features and its functionality.

Organization

This specification describes the following sections:

·       General Outline

·       SPI Core & Commands

·       Register Map

·       ADC Controller & Interface

·       Look-up Tables

·       TRX Control

·       DAC Control

·       External Pin Configuration

·       OTP Memory

·       Process Corner Monitor

·       Design for Testability

·       Typical Applications

·       Theory of Operation

·       Implementation

Numeric notation

Binary: 2'bxxxx or xxxB

Decimal: xxxx

Hexadecimal xxxxH or 0x xxxx

Numeric prefixes or suffixes

Representing powers of 2 (address space, memory capacity):

K (kilo): 2^10 = 1024

M (mega): 2^20 = 1024^2 = 1,048,576

G (giga): 2^30 = 1024^3 = 1,073,741,824

B (byte): 2^3 bits = 8 bits

b (bit) 2^0 bit = 1 bit

Representing powers of 10 (gate and memory bit count):

k (kilo) 10^3 = 1000

Register contents

X, x = don’t care

Diagrams

Block diagrams do not necessarily show the exact wiring in hardware but the functional structure. Timing diagrams are for functional explanation purposes only, without any relevance to the real hardware implementation.

 

General Outline

Reset Mechanism

Requirements: IO_21, IO_39, REG_4

The following reset mechanisms are used in F641X:

·       Power-on Reset

A power-on reset (POR) is initiated by a logic low on the porb input port. The POR resets all F641X digital blocks.

·       Hardware Reset

A hardware reset is initiated by a logic low on the rstb input port. The functionality is the same as for a power-on reset.

·       Software Reset

A software reset is initiated when CTRL_CFG[5] (RESET) is set to 1. After reset, CTRL_CFG[5] is cleared (set to 0) automatically. The functionality is the same as for a power-on or hardware reset event with the following exceptions:

o    Scan and IO test mode are not disabled.

o    SPI communication is not reset.

o    The programmable chip address stored in the 8-bit shift register is not initialized to its default value.

 

SPI Core & Commands

Introduction

Thought is to remove all intelligence from other blocks and do all the processing in the SPI core (spi_core) to keep it centralized. This should also help to reduce routing and help with synthesis optimization. spi_core sends out the final control signals, rather than sending out SPI states and several low-level controls. Due to this reason, the control configuration, LUT pointer registers and address shift registers were included in this block.

Figure 1 shows the external signals and connections of the SPI interface when SPIB/LVDS is tied low (single-ended) and high (differential signaling).

Figure 1: SPI external signals and connections

Requirements: SPI_2, SPI_61, SPI_63, SPI_47, SPI_64

The SPI core supports a 4-pin protocol, using spi_clk, spi_csb, spi_miso_out/spi_miso_oe, and spi_mosi_in. After a reset, the SPI data output enable signal (spi_miso_oe) is set to 0 and the data output (SDO) tri-stated accordingly. Data in signals (spi_mosi_in) are sampled on the rising edge of the serial clock (spi_clk) with the chip select (spi_csb) signal asserted. The sampling edge is fixed and cannot be changed. Data sampling is stopped when spi_csb signal is deasserted. Data out signals (spi_miso_out) are driven on opposite (falling) edge than sampling edge. This behavior is also fixed and cannot be changed.

Figure 2: SPI timing diagram

 

Electrical Data/Timing

This section provides the timing requirements and switching characteristics of the external pins of the SPI Interface.

Figure 3: SPI timing requirements

Requirements: SPI_7, SPI_56, SPI_57, SPI_58, SPI_76

With reference to Figure 3, Table 1 shows the timing characteristics of the SPI Interface, unless otherwise noted.

Table 1: SPI AC characteristics

No.

Parameter

Description

Condition

Min.

Max.

Unit

f(SCLK)

SCLK clock frequency

Read operation and address progamming.

50

MHz

Write operation.

100

MHz

1

tp(SCLK)

SCLK period (cycle time)

Read operation and address progamming.

20

ns

Write operation.

10

ns

2

tph(SCLK)

SCLK pulse width high

Read operation and address progamming.

9

ns

Write operation.

4

ns

3

tpl(SCLK)

SCLK pulse width low

Read operation and address progamming.

9

ns

Write operation.

4

ns

4

tsu(CSB)

CSB falling edge to SCLK rising edge setup time

Read operation and address progamming.

10

ns

Write operation.

5

ns

5

tsu(SDI)

SDI (input data) setup time

Read/Write operation and address programming.

2

ns

6

th(SDI)

SDI (input data) hold time

Read/Write operation and address programming.

4

ns

7

th(CSB)

SCLK rising edge to CSB rising edge hold time

Read operation and address progamming.

10

ns

Write operation.

5

ns

8

tod(SDO)

SDO (output data) delay time (*1)

Read/Write operation and address programming.

5

ns

9

tozd(SDO)

SDO (output data) tri-state to driven delay time (*1)

Read/Write operation and address programming.

5

ns

10

tiag(CSB)

Inter-access gap (minimum CSB high time)

Read operation and address progamming.

20

ns

Write operation.

10

ns

Notes:

1.       SDO loaded with TBD load capacitance for SDO timing specifications.

 

Addressing

Requirements: SPI_25

The serial protocol allows for F641X devices to be selected or addressed using either external pins or an internal, programmable register. The selection of either the external or internal chip address is controlled by CTRL_CFG[11] (SHIFTREG_ADDR_EN). By default, the external chip address is selected. This is shown in the Figure 4.

Figure 4: SPI addressing overview

Requirements: SPI_26, SPI_23, SPI_69

The chip address is derived from the address input (addr_in[4:0]) pins when CTRL_CFG[11] is set to 0. When spib_lvds is set to 0, F641X Digital supports 5 address input signals (add_in[4:0]) for setting the chip address, whereas the lower 4 bits are derived from the external address pins (ADD[3:0]) and the MSB is considered tied LOW, resulting in add_in[4:0] = { 1'b0, ADD[3:0] }. When spib_lvds is set to 1, addr_in[3:2] input signals are ignored and set to 2'b00 for further processing (address comparison).

Requirements: SPI_24, SPI_27, SPI_31, SPI_35

Alternatively to using the external pins (ADD[3:0]), an internal, programmable 8-bit chip address stored in a shift register can be used when CTRL_CFG[11] is set to 1. The shift register is placed between address pin add_in[0] (input) and add_in_1_data (output), and is only reset by power-on (porb) or hardware (rstb) signal. When programming is initiated, the ADD1 I/O-buffer is configured to output mode by driving the add_in_1_oe signal high. This way, and as shown and described in section 'Single-Ended SPI and Internal, Programmable Chip Address', multiple devices can be connected to each other and programmed sequentially.

Requirements: SPI_28, SPI_33, SPI_32, SPI_34, SPI_29

Programming of the internal chip address is enabled by setting CTRL_CFG[10] (SHIFTREG_ADDR_PROG) to 1, and it is started by asserting spi_csb (driven low), followed by clock (spi_clk) and input data (spi_mosi) carrying the address bits, which are to be sent with MSB first. Without releasing spi_csb an 8-bit data stream is sent to add_in[0]. Data currently stored in the MSB of the 8-bit shift register is pushed out on add_in_1_data. Programming is terminated by deasserting spi_csb (driven high) after the last address bit was sent. This is shown in the timing diagram appended below for a single device.

Figure 5: SPI addressing single device programming timing diagram

Requirements: SPI_30, SPI_36, SPI_103

When programming is terminated, then CTRL_CFG[10] (SHIFTREG_ADDR_PROG) is cleared (set to 0) automatically, and CTRL_CFG[11] (SHIFTREG_ADDR_EN) is set to 1 to indicate that the internal chip address is used. Writing 0 to CTRL_CFG[10] (SHIFTREG_ADDR_PROG) has no effect. CTRL_CFG[11] (SHIFTREG_ADDR_EN) can only be cleared (set to 0) by power-on (porb) or hardware (rstb) reset signal.

Figure 6 shows part of a sequence of ADD0 input and ADD1 output values of a device, whose internal chip address is (re-)programmed from 0xA5 to 0x5A. All devices are connected to each other with the ADD0 input of the current device to the ADD1 output of the previous device.

Figure 6: SPI addressing multiple device programming timing diagram

 

Commands

Overview

Requirements: SPI_1

The following SPI commands are supported:

·       Local Register Read - LCL_REG_RD

·       Local Register Write - LCL_REG_WR

·       Global Register Write - GBL_REG_WR

·       Local LUT Read - LCL_LUT_RD

·       Local LUT Write - LCL_LUT_WR

·       Global LUT Write - GBL_LUT_WR

·       Local Fast Beam Steering - LCL_FBS

·       Global Fast Beam Steering - GBL_FBS

 

Local Register Read - LCL_REG_RD

Requirements: SPI_78, SPI_74, SPI_3

Local Register Read (LCL_REG_RD) is a 32-bit (4 bytes) SPI command bounded by the chip select (spi_csb) signal that reads the registers of the device. When there is a LCL_REG_RD command to a buffered registers, the content of the active register is read.

Requirements: SPI_80, SPI_4

The Chip Address given in byte1 selects the device to be accessed. If the Chip Address does not match the (pre-configured) chip address, the access will be ignored.

Requirements: SPI_5

Continuous read access and address roll-back is supported. Sending another 16 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the register address, and data are transmitted accordingly. When reaching the register address 0xFF, the next access targets address 0x0.

Requirements: SPI_4, SPI_78, SPI_79, SPI_80, SPI_81, SPI_5

The following tables show the LCL_REG_RD frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

Chip Address

Register Address

0

0

0

ADD4

ADD3

ADD2

ADD1

ADD0

A7

A6

A5

A4

A3

A2

A1

A0

SPI protocol mode

Hardware device address to select chip to be accessed by SPI command.

8-bit (start) address of internal register(s) to access. Continuous read and address roll back is supported.

 

byte3

byte4

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Register Read Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. Data from the consecutive register is read every 16 clock cycles at the end until the CSB is set to high again.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local Register Read, Mode = 3'b000.

[4:0]

Chip Address

Hardware device address to select chip to be accessed by SPI command.

2

[7:0]

Register Address

8-bit (start) address of internal register(s) to access. In case of continuous read, the address is automatically incremented.

3

[7:0]

Data byte 1
Register Read Data[15:8]

Master sends out the spi_clk pulses and read data is received on the SDO (MISO) line.

4

[7:0]

Data byte 2
Register Read Data[7:0]

Notes:

·       Chip Address:

Although F641x supports only 4-bit physical address, the digital block supports 5-bit chip address. The top bit is hard coded to 0 on-chip. This design also supports programming the chip-address using shift register blocks, where the chip can be assigned a 5-bit address.

·       Auto Burst Mode:

The Local Register Read SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 16 clocks with the chip select signal asserted after the initial command fetches the next registers content. After register address 0xFF, data from register address 0x0 is sent. In auto burst mode, the command length becomes 4 + n*2 bytes.

·       Register Read Data:

When there is an access to a buffered register, the content of the active register is read.

Use cases:

1.       Read register contents from chip address 0x5 and register address 0x2A.

a.   SPI command: 0x05_2A_**_**

b.   Comment: During the last two bytes, the data will be sent on the SDO (MISO) line by the chip.

2.       Reading registers 0x40-0x43 from chip address 0xA.

a.   SPI command: 0x0A_40_**_**_**_**_**_**_**_**

b.   Comment: Registers 0x40, 0x41, 0x42, and 0x43 are read in sequence.

 

Local Register Write - LCL_REG_WR

Requirements: SPI_83

Local Register Write (LCL_REG_WR) is basically a 40-bit (5 bytes) SPI command bounded by the chip select (spi_csb) signal that writes data to registers of the device. When there is a LCL_REG_WR command to a buffered registers, it depends on the RF Load settings in byte3 if the content of the active register is updated, too.

Requirements: SPI_80, SPI_4

The Chip Address given in byte1 selects the device to be accessed. If the Chip Address does not match the (pre-configured) chip address, the access will be ignored.

Requirements: SPI_8, SPI_9, SPI_10, SPI_65

When the TX RF Load (TRL) bit in byte3 is set to 1, data of the TXVn and TXHn Set (TXVn/TXHn_SET, n = 1..4) buffer registers are transferred to the TXVn_SET and TXHn_SET active registers respectively. When the RX RF Load (RRL) bit is set to 1, data of the RXVn and RXHn Set (RXVn/RXHn_SET, n = 1..4) buffer registers are transferred to the RXVn_SET and RXHn_SET active registers respectively. A data transfer from the buffer to the active registers is initiated even if the chip address given in byte1 does not match the (pre-configured) chip address. When none of the RF Load bits are set to 1, then no data transfer from buffer to active registers occurs. Note that this behavior is independent of the CTRL_CFG[0] (TRX_CONT_MODE) setting.

Requirements: SPI_67, REG_95

When the TX DAC Load (TAL) bit in byte3 is set to 1, all DACs configured as 'PA' in the PA_LNA_DAC_CFG1 register are set according to DAC_ONn (n = 1..10) register values if all of the following conditions are met:

·       the DACs are enabled in the PA_LNA_DAC_CFG3 register.

·       Standby mode is disabled, meaning that neither SW_TRX[10] (STANDBY) is set to 1 nor the external stdby pin is driven high.

·       CTRL_CFG[0] (TRX_CONT_MODE) is set to 0 (SPI control).

·       the operating mode is set to 'TX'.

·       CTRL_CFG[6] (TAL_RAL_EN) is set to 1.

Setting the TAL bit to 0 switches all PA DACs to the PA DAC OFF state, meaning that the outputs are set according to PA_DAC_OFF register value.

Requirements: SPI_68, REG_95

When the RX DAC Load (RAL) bit in byte3 is set to 1, all DACs configured as 'LNA' in the PA_LNA_DAC_CFG1 register are set according to DAC_ONn (n = 1..10) register values if all of the following conditions are met:

·       the DACs are enabled in the PA_LNA_DAC_CFG3 register.

·       Standby mode is disabled, meaning that neither SW_TRX[10] (STANDBY) is set to 1 nor the external stdby pin is driven high.

·       CTRL_CFG[0] (TRX_CONT_MODE) is set to 0 (SPI control).

·       the operating mode is set to 'RX'.

·       CTRL_CFG[6] (TAL_RAL_EN) is set to 1.

Setting the RAL bit to 0 switches all LNA DACs to the LNA DAC OFF state, meaning that the outputs are set according to LNA_DAC_OFF register value.

Requirements: SPI_84, REG_99

Enabling and disabling of DACs is done even if the chip address given in byte1 does not match the (pre-configured) chip address. DAC_STATUS[13:12] ({ TAL, RAL }) bits hold the status of the DAC Load bits set in the last command.

Requirements: SPI_62

Data shall be committed in halfwords as the sixteen data bit of a data field. If the write access is not an even multiple of 16 clocks, the trailing data bits are not committed. There is an exception when { PSS, GAS } = 2b'10 or { PSS, GAS } = 2b'10 in byte3. In this case data shall be committed in bytes as the eight data bit of a data field. If the write access is not an even multiple of 8 clocks, the trailing data bits are not committed.

Requirements: SPI_11

When both Phase and Gain Set bits are set to 0 ({ PSS, GAS } = 2b'00) in byte3, then 16-bit data shall be provided in byte4 and byte5 as well as in all subsequent halfwords (if any). With this configuration (setting) it is expected that data are written to registers other than TXVn/TXHn/RXVn/RXHn_SET (n = 1..4). When writing to TXVn_SET/TXHn_SET/RXVn_SET/RXHn_SET registers with this setting, proper device operation is not guaranteed anymore.

Requirements: SPI_12, SPI_13

When Phase Set bit is set to 1 and Gain Set bit is set to 0 ({ PSS, GAS } = 2b'10), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 8-bit data shall be provided in byte4 and all subsequent bytes (if any) corresponding to TX_PHASE_CTRL and RX_PHASE_CTRL bit fields respectively. When Phase Set bit is set to 0 and Gain Set bit is set to 1 ({ PSS, GAS } = 2b'01), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 8-bit data shall be provided in byte4 and all subsequent bytes (if any) corresponding to TX_GAIN_CTRL and RX_GAIN_CTRL bit fields respectively. When writing to a register other then then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) with any of these settings, proper device operation is not guaranteed anymore.

Requirements: SPI_75

When both Phase and Gain Set bits are set to 1 ({ PSS, GAS } = 2b'11), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 16-bit data shall be provided in byte4 and byte5 as well as in all subsequent halfwords (if any).

Requirements: SPI_104, SPI_105

When the Cyclic Redundancy Check (CRC) error detection feature is enabled - refer to section Cyclic Redundancy Check for more information - { NB1, NB0 } define the number of write data bytes that are transmitted. When CRC is disabled these bits are ignored.

Requirements: SPI_5

Continuous read access and address roll-back is supported. Sending another 16 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the register address, and data are received accordingly. When reaching the register address 0xFF, the next access targets address 0x0.

Requirements: SPI_83, SPI_82, SPI_80, SPI_81, SPI_4, SPI_8, SPI_9, SPI_10, SPI_65, SPI_67, SPI_68, SPI_62, SPI_11, SPI_14, SPI_12, SPI_13, SPI_75, SPI_104

The following tables show the LCL_REG_WR frame structures.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

Chip Address

Register Address

0

0

1

ADD4

ADD3

ADD2

ADD1

ADD0

A7

A6

A5

A4

A3

A2

A1

A0

SPI protocol mode

Hardware device address to select chip to be accessed by SPI command.

8-bit (start) address of internal register(s) to access. Continuous read and address roll back is supported.

 

byte3

7

6

5

4

3

2

1

0

RF Load

DAC Load

Phase/Gain Set

Data Bytes

TRL

RRL

TAL

RAL

PSS

GAS

NB1

NB0

Controls data update to RF channels.

Controls data update to DACs.

Controls gain and phase set.

Defines the number of write data bytes.

 

Option 1: When { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11.

byte4

byte5

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Register Write Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. The user can keep providing additional 16-bit data streams and they would be uploaded to sequential registers.

 

Option 2: When { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10.

byte4

7

6

5

4

3

2

1

0

Register Write Data

D15

D14

D13

D12

D11

D10

D9

D8

8-bit data. The user can keep providing additional 8-bit data streams and they would be uploaded to the sequential registers.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local Register Write, Mode = 3'b001.

[4:0]

Chip Address

Hardware device address to select chip to be accessed by SPI command.

2

[7:0]

Register Address

8-bit (start) address of internal register(s) to access. In case of continuous read, the address is automatically incremented.

3

[7:6]

RF Load

These bits trigger data update of all the RF channels for all chips on the SPI bus at once regardless of the chip address:
TRL=1 latches TXVn and TXHn Set (TXVn/TXHn_SET , n=1..4) buffer register values to active registers.
RRL=1 latches RXVn and RXHn Set (RXVn/RXHn_SET, n=1..4) buffer register values to active registers.
If TRL=0 and RRL=0, the latching does not occur. The same applies when TRL=1 and RRL=1.

[5:4]

DAC Load

These bits trigger data update of all DACs for all the chips on the SPI bus at once regardless of the chip address:
TAL=1: Enables all PA DACs.
RAL=1: Enables all LNA DACs.
Setting a bit to 0 disables the associated DACs.

[3:2]

Phase/Gain Set

These bits ({ PSS, GAS }) enable 8-bit phase and/or gain set for consecutive addresses:
2'b00: The data is 16-bit, and consecutive phase/gain data is not expect. The register other than TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) to be written.
2'b10: The data is phase data and consecutive 8-bit of phase to be loaded to phase bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.
2'b10: The data is gain data and consecutive 8-bit of gain to be loaded to gain bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.
2'b11: The data is 16-bit and includes both phase and gain data to be loaded to phase and gain bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.

[1:0]

Data Bytes

When the Cyclic Redundancy Check (CRC) error detection feature is enabled, these bits ({ NB1, NB0 }) define the number of write data bytes that are transmitted:
2'b00: 2 bytes when{ PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 1 byte.
2'b01: 8 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 4 bytes.
2'b10: 16 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 8 bytes.
2'b11: 32 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 16 bytes.

 

Option 1: When { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11.

4+2n

[7:0]

Data byte 1+2n
Register Write Data[15:8]

16-bit data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected register.

5+2n

[7:0]

Data byte 2+2n
Register Write Data[7:0]

 

Option 2: When { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10.

4+n

[7:0]

Data byte 1+n
Register Write Data[15:8]

8-bit data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected register.

Notes:

·       Bytes: n = 0, 1, 2, 3 …

·       Chip Address:

Although F641x supports only 4-bit physical address, the digital block supports 5-bit chip address. The top bit is hard coded to 0 on-chip. This design also supports programming the chip-address using shift register blocks, where the chip can be assigned a 5-bit address.

Requirements: SPI_5

·       Auto Burst Mode:

The Local Register Write SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 16 (when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11) or 8 (when { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10) clocks with the chip select signal asserted after the initial command writes data to the next registers. After register address 0xFF, data from register address 0x0 are written. In auto burst mode, the command length becomes 4 + n*2 bytes.

Requirements: SPI_74

·       Register Write Data:

When there is an access to a buffered register, it depends on the RF Load settings if the data is written to the active register, too.

Use cases:

1.       Write 0x1234 to register 0x06 for chip 0x1A.

a.   SPI command: 0x3A_06_00_1234

b.   Comment: As this register is not buffered, it is updated even without setting any RF Load bit in the SPI command.

 

Global Register Write - GBL_REG_WR

Requirements: SPI_83

Global Register Write (GBL_REG_WR) is basically a 40-bit (5 bytes) SPI command bounded by the chip select (spi_csb) signal that writes data to registers of the device. When there is a GBL_REG_WR command to a buffered registers, it depends on the RF Load settings in byte3 if the content of the active register is updated, too.

Requirements: SPI_6, SPI_86

When the Sub-array Enable (SE) bit in byte1 is set to 1, the command is only executed when the Sub-array Index given in the same byte matches the Sub-array Index (SA_INDEX) of the device in the CHIP_INFO register. When SE is set to 0, the command is executed for all devices.

Requirements: SPI_8, SPI_9, SPI_10, SPI_65

When the TX RF Load (TRL) bit in byte3 is set to 1, data of the TXVn and TXHn Set (TXVn/TXHn_SET, n = 1..4) buffer registers are transferred to the TXVn_SET and TXHn_SET active registers respectively. When the RX RF Load (RRL) bit is set to 1, data of the RXVn and RXHn Set (RXVn/RXHn_SET, n = 1..4) buffer registers are transferred to the RXVn_SET and RXHn_SET active registers respectively. A data transfer from the buffer to the active registers is initiated even if the Sub-array Index given in byte1 does not match the Sub-array Index (SA_INDEX) of the device in the CHIP_INFO register. When none of the RF Load bits are set to 1, then no data transfer from buffer to active registers occurs. Note that this behavior is independent of the CTRL_CFG[0] (TRX_CONT_MODE) setting.

Requirements: SPI_67, REG_95

When the TX DAC Load (TAL) bit in byte3 is set to 1, all DACs configured as 'PA' in the PA_LNA_DAC_CFG1 register are set according to DAC_ONn (n = 1..10) register values if all of the following conditions are met:

·       the DACs are enabled in the PA_LNA_DAC_CFG3 register.

·       Standby mode is disabled, meaning that neither SW_TRX[10] (STANDBY) is set to 1 nor the external stdby pin is driven high.

·       CTRL_CFG[0] (TRX_CONT_MODE) is set to 0 (SPI control).

·       the operating mode is set to 'TX'.

·       CTRL_CFG[6] (TAL_RAL_EN) is set to 1.

Setting the TAL bit to 0 switches all PA DACs to the PA DAC OFF state, meaning that the outputs are set according to PA_DAC_OFF register value.

Requirements: SPI_68, REG_95

When the RX DAC Load (RAL) bit in byte3 is set to 1, all DACs configured as 'LNA' in the PA_LNA_DAC_CFG1 register are set according to DAC_ONn (n = 1..10) register values if all of the following conditions are met:

·       the DACs are enabled in the PA_LNA_DAC_CFG3 register.

·       Standby mode is disabled, meaning that neither SW_TRX[10] (STANDBY) is set to 1 nor the external stdby pin is driven high.

·       CTRL_CFG[0] (TRX_CONT_MODE) is set to 0 (SPI control).

·       the operating mode is set to 'RX'.

·       CTRL_CFG[6] (TAL_RAL_EN) is set to 1.

Setting the RAL bit to 0 switches all LNA DACs to the LNA DAC OFF state, meaning that the outputs are set according to LNA_DAC_OFF register value.

Requirements: SPI_84, REG_99

Enabling and disabling of DACs is done even if the Sub-array Index given in byte1 does not match the Sub-array Index (SA_INDEX) of the device in the CHIP_INFO register. DAC_STATUS[13:12] ({ TAL, RAL }) bits hold the status of the DAC Load bits set in the last command.

Requirements: SPI_62

Data shall be committed in halfwords as the sixteen data bit of a data field. If the write access is not an even multiple of 16 clocks, the trailing data bits are not committed. There is an exception when { PSS, GAS } = 2b'10 or { PSS, GAS } = 2b'10 in byte3. In this case data shall be committed in bytes as the eight data bit of a data field. If the write access is not an even multiple of 8 clocks, the trailing data bits are not committed.

Requirements: SPI_11

When both Phase and Gain Set bits are set to 0 ({ PSS, GAS } = 2b'00) in byte3, then 16-bit data shall be provided in byte4 and byte5 as well as in all subsequent halfwords (if any). With this configuration (setting) it is expected that data are written to registers other than TXVn/TXHn/RXVn/RXHn_SET (n = 1..4). When writing to TXVn_SET/TXHn_SET/RXVn_SET/RXHn_SET registers with this setting, proper device operation is not guaranteed anymore.

Requirements: SPI_12, SPI_13

When Phase Set bit is set to 1 and Gain Set bit is set to 0 ({ PSS, GAS } = 2b'10), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 8-bit data shall be provided in byte4 and all subsequent bytes (if any) corresponding to TX_PHASE_CTRL and RX_PHASE_CTRL bit fields respectively. When Phase Set bit is set to 0 and Gain Set bit is set to 1 ({ PSS, GAS } = 2b'01), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 8-bit data shall be provided in byte4 and all subsequent bytes (if any) corresponding to TX_GAIN_CTRL and RX_GAIN_CTRL bit fields respectively. When writing to a register other then then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) with any of these settings, proper device operation is not guaranteed anymore.

Requirements: SPI_75

When both Phase and Gain Set bits are set to 1 ({ PSS, GAS } = 2b'11), then TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers shall be addressed and 16-bit data shall be provided in byte4 and byte5 as well as in all subsequent halfwords (if any).

Requirements: SPI_104, SPI_105

When the Cyclic Redundancy Check (CRC) error detection feature is enabled - refer to section Cyclic Redundancy Check for more information - { NB1, NB0 } define the number of write data bytes that are transmitted. When CRC is disabled these bits are ignored.

Requirements: SPI_5

Continuous read access and address roll-back is supported. Sending another 16 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the register address, and data are received accordingly. When reaching the register address 0xFF, the next access targets address 0x0.

Requirements: SPI_83, SPI_85, SPI_80, SPI_6, SPI_86, SPI_8, SPI_9, SPI_10, SPI_65, SPI_67, SPI_68, SPI_62, SPI_11, SPI_14,SPI_12, SPI_13, SPI_75, SPI_104

The following tables show the GBL_REG_WR frame structures.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

SA Enable

Sub-array Index

Register Address

0

1

0

SE

SA3

SA2

SA1

SA0

A7

A6

A5

A4

A3

A2

A1

A0

SPI protocol mode

Sub-array enable

Sub-array index info for each chip is stored in CHIP_INFO register.

8-bit (start) address of internal register(s) to access. Continuous read and address roll back is supported.

 

byte3

7

6

5

4

3

2

1

0

RF Load

DAC Load

Phase/Gain Set

Data Bytes

TRL

RRL

TAL

RAL

PSS

GAS

NB1

NB0

Controls data update to RF channels.

Controls data update to DACs.

Controls gain and phase set.

Defines the number of write data bytes.

 

Option 1: When { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11.

byte4

byte5

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Register Write Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. The user can keep providing additional 16-bit data streams and they would be uploaded to the sequential registers.

 

Option 2: When { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10.

byte4

7

6

5

4

3

2

1

0

Register Write Data

D15

D14

D13

D12

D11

D10

D9

D8

8-bit data. The user can keep providing additional 8-bit data streams and they would be uploaded to the sequential registers.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Global Register Write, Mode = 3'b010.

[4]

Sub-array Enable

SE=0: Command is executed on all devices.
SE=1: Command is executed on devices with matching sub-array index.

[3:0]

Sub-array Index

Hardware device address to select chip to be accessed by SPI command.

2

[7:0]

Register Address

8-bit (start) address of internal register(s) to access. In case of continuous read, the address is automatically incremented.

3

[7:6]

RF Load

These bits trigger data update of all the RF channels for all chips on the SPI bus at once regardless of the chip address:
TRL=1 latches TXVn and TXHn Set (TXVn/TXHn_SET , n=1..4) buffer register values to active registers.
RRL=1 latches RXVn and RXHn Set (RXVn/RXHn_SET, n=1..4) buffer register values to active registers.
If TRL=0 and RRL=0, the latching does not occur. The same applies when TRL=1 and RRL=1.

[5:4]

DAC Load

These bits trigger data update of all DACs for all the chips on the SPI bus at once regardless of the chip address:
TAL=1: Enables all PA DACs.
RAL=1: Enables all LNA DACs.
Setting a bit to 0 disables the associated DACs.

[3:2]

Phase/Gain Set

These bits ({ PSS, GAS }) enable 8-bit phase and/or gain set for consecutive addresses:
2'b00: The data is 16-bit, and consecutive phase/gain data is not expect. The register other than TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) to be written.
2'b10: The data is phase data and consecutive 8-bit of phase to be loaded to phase bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.
2'b10: The data is gain data and consecutive 8-bit of gain to be loaded to gain bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.
2'b11: The data is 16-bit and includes both phase and gain data to be loaded to phase and gain bits of TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers.

[1:0]

Data Bytes

When the Cyclic Redundancy Check (CRC) error detection feature is enabled, these bits ({ NB1, NB0 }) define the number of write data bytes that are transmitted:
2'b00: 2 bytes when{ PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 1 byte.
2'b01: 8 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 4 bytes.
2'b10: 16 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 8 bytes.
2'b11: 32 bytes when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11. Otherwise, 16 bytes.

 

Option 1: When { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11.

4+2n

[7:0]

Data byte 1+2n
Register Write Data[15:8]

Data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected register.

5+2n

[7:0]

Data byte 2+2n
Register Write Data[7:0]

 

Option 2: When { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10.

4+n

[7:0]

Data byte 1+n
Register Write Data[15:8]

Data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected register.

Notes:

·       Bytes: n = 0, 1, 2, 3 …

Requirements: SPI_5

·       Auto Burst Mode:

The Global Register Write SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 16 (when { PSS, GAS } = 2b'00 or { PSS, GAS } = 2b'11) or 8 (when { PSS, GAS } = 2b'01 or { PSS, GAS } = 2b'10) clocks with the chip select signal asserted after the initial command writes data to the next registers. After register address 0xFF, data from register address 0x0 are written. In auto burst mode, the command length becomes 4 + n*2 bytes.

Requirements: SPI_74

·       Register Write Data:

When there is an access to a buffered register, it depends on the RF Load settings if the data is written to the active register, too.

Use cases:

1.       Write 0x1234 to register 0x06 for chip with sub-array index 0xA.

a.   SPI command: 0xAA_06_00_1234

b.   Comment: As this register is not buffered, it is updated even without setting any RF Load bit in the SPI command.

 

Local LUT Read - LCL_LUT_RD

Requirements: SPI_87

Local LUT Read (LCL_LUT_RD) is a 40-bit (5 bytes) SPI command bounded by the chip select (spi_csb) signal that reads data from the look-up tables (LUTs) of the device.

Requirements: SPI_80, SPI_4

The Chip Address given in byte1 selects the device to be accessed. If the Chip Address does not match the (pre-configured) chip address, the access will be ignored.

Requirements: SPI_66, SPI_15, SPI_16

There is a LUT with 128 entries at 64-bit per direction (TX/RX) and polarization (H/V) including four (4) channels at 16-bit per entry. When any of the LUT Pointer (TXV, TXH, RXV or RXH) bit in byte2 is set to 1, access to the associated LUT is enabled. Each LUT location information is completely read with 64 clock pulses (16 bits x 4 channels). When more than one LUT Pointer bit is set to 1, the LUTs are accessed in the following order: TXV -> TXH -> RXV -> RXH.

In general, a complete 64-bit LUT entry including all 4 channels is read with a single read access, starting with channel #1 and followed by channel #2 to #4. In this case the channel select bits ({ CH1, CH0 }) in byte2 must be set to 2'b00. However, if data of a particular channel of a single entry shall only be read, the channel select bits can be set according to the required channel number.

Requirements: SPI_89, SPI_17

The LUT Address given in byte3 provides the 7-bit address of the LUT to access. Continuous read access and address roll-back is supported. Sending another 64 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the LUT address, and data are transmitted accordingly. When reaching the LUT address 0x7F, the next access targets address 0x0.

Requirements: SPI_87, SPI_88, SPI_4, SPI_80, SPI_15, SPI_89, SPI_87

The following tables show the LCL_LUT_RD frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

Chip Address

LUT Pointer

Reserved

Channel Select

0

1

1

ADD4

ADD3

ADD2

ADD1

ADD0

TXV

TXH

RXV

RXH

0

0

CH1

CH0

SPI protocol mode.

Hardware device address to select chip to be accessed by SPI command.

TX/RX LUT for vertical and horizontal polarization.

For future use.

4 channels at 16-bit per entry.

 

byte3

7

6

5

4

3

2

1

0

LUT Address

Reserved

LA6

LA5

LA4

LA3

LA2

LA1

LA0

0

7-bit address of look-up tables to access. Continuous read and address roll back is supported.

For future use.

 

byte4

byte5

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

LUT Read Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. Data from the consecutive look-up table location is read every 64 clock cycles at the end until the CSB is set to high again. 4 x 16-bit in each look-up table location.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local LUT Read, Mode = 3'b011.

[4:0]

Chip Address

Hardware device address to select chip to be accessed by SPI command.

2

[7:4]

LUT Pointer

User can choose to read TXV, TXH, RXV and RXH by setting
TXV=1 for loading TXV LUT data.
TXH=1 for loading TXH LUT data.
RXV=1 for loading RXV LUT data.
RXH=1 for loading RXH LUT data.

[3:2]

Reserved

For future use.

[1:0]

Channel Select

These bits ({ CH1, CH0 }) select the channel when a particular channel of a single entry shall be read:
2'b00: Channel #1.
2'b01: Channel #2.
2'b10: Channel #3.
2'b11: Channel #4.
In general, { CH1, CH0 } shall be set to 2'b00.

3

[7:1]

LUT Address

7-bit address of look-up tables to access.

[0]

Reserved

For future use.

4

[7:0]

Data byte 1
LUT Read Data[15:8]

Master sends out the spi_clk pulses and read data is received on the SDO (MISO) line.

5

[7:0]

Data byte 2
LUT Read Data[7:0]

Notes:

·       Chip Address:

Although F641x supports only 4-bit physical address, the digital block supports 5-bit chip address. The top bit is hard coded to 0 on-chip. This design also supports programming the chip-address using shift register blocks, where the chip can be assigned a 5-bit address.

·       Auto Burst Mode:

The Local LUT Read SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 64 clocks with the chip select signal asserted after the initial command fetches the content of the next LUT address. After LUT address 0x7F, data from LUT address 0x0 is sent. In auto burst mode, the command length becomes 5 + n*2 bytes.

Use cases:

1.       Read 4 channels data of TXV LUT address 0x74 from chip with address 0x0A.

a.   SPI command: 0x6A_80_E8_**_**_**_**_**_**_**_**

b.   Comment: 64 clock cycles when reading only from TXV LUT address 0x74.

 

Local LUT Write - LCL_LUT_WR

Requirements: SPI_91

Local LUT Write (LCL_LUT_WR) is a 40-bit (5 bytes) SPI command bounded by the chip select (spi_csb) signal that writes data to the look-up tables (LUTs) of the device.

Requirements: SPI_80, SPI_4

The Chip Address given in byte1 selects the device to be accessed. If the Chip Address does not match the (pre-configured) chip address, the access will be ignored.

Requirements: SPI_66, SPI_15, SPI_16

There is a LUT with 128 entries at 64-bit per direction (TX/RX) and polarization (H/V) including four (4) channels at 16-bit per entry. When any of the LUT Pointer (TXV, TXH, RXV or RXH) bit in byte2 is set to 1, access to the associated LUT is enabled. Each LUT location information is completely written with 64 clock pulses (16 bits x 4 channels). When more than one LUT Pointer bit is set to 1, the LUTs are accessed in the following order: TXV -> TXH -> RXV -> RXH.

In general, a complete 64-bit LUT entry including all 4 channels is written with a single write access, starting with channel #1 and followed by channel #2 to #4. In this case the channel select bits ({ CH1, CH0 }) in byte2 must be set to 2'b00. However, if data of a particular channel of a single entry shall only be written, the channel select bits can be set according to the required channel number.

Requirements: SPI_89, SPI_17

The LUT Address given in byte3 provides the 7-bit address of the LUT to access. Continuous write access and address roll-back is supported. Sending another 64 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the LUT address, and data are received accordingly. When reaching the LUT address 0x7F, the next access targets address 0x0.

Requirements: SPI_91, SPI_90, SPI_4, SPI_80, SPI_15, SPI_89

The following tables show the LCL_LUT_WR frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

Chip Address

LUT Pointer

Reserved

Channel Select

1

0

0

ADD4

ADD3

ADD2

ADD1

ADD0

TXV

TXH

RXV

RXH

0

0

CH1

CH0

SPI protocol mode

Hardware device address to select chip to be accessed by SPI command.

TX/RX LUT for vertical and horizontal polarization.

For future use.

4 channels at 16-bit per entry.

 

byte3

7

6

5

4

3

2

1

0

LUT Address

Reserved

LA6

LA5

LA4

LA3

LA2

LA1

LA0

0

7-bit address of look-up tables to access. Continuous read and address roll back is supported.

For future use.

 

byte4

byte5

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

LUT Write Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. The user can keep providing additional 16-bit data streams and they would be uploaded to the associated channel of the selected LUT.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local LUT Write, Mode = 3'b100.

[4:0]

Chip Address

Hardware device address to select chip to be accessed by SPI command.

2

[7:4]

LUT Pointer

User can choose to write TXV, TXH, RXV and RXH by setting
TXV=1 for loading TXV LUT data.
TXH=1 for loading TXH LUT data.
RXV=1 for loading RXV LUT data.
RXH=1 for loading RXH LUT data.

[3:2]

Reserved

For future use.

[1:0]

Channel Select

These bits ({ CH1, CH0 }) select the channel when a particular channel of a single entry shall be written:
2'b00: Channel #1.
2'b01: Channel #2.
2'b10: Channel #3.
2'b11: Channel #4.
In general, { CH1, CH0 } shall be set to 2'b00.

3

[7:1]

LUT Address

7-bit address of look-up tables to access.

[0]

Reserved

For future use.

4

[7:0]

Data byte 1
LUT Write Data[15:8]

Data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected LUT.

5

[7:0]

Data byte 2
LUT Write Data[7:0]

Notes:

·       Chip Address:

Although F641x supports only 4-bit physical address, the digital block supports 5-bit chip address. The top bit is hard coded to 0 on-chip. This design also supports programming the chip-address using shift register blocks, where the chip can be assigned a 5-bit address.

·       Auto Burst Mode:

The Local LUT Write SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 64 clocks with the chip select signal asserted after the initial command fetches the content of the next LUT address. After LUT address 0x7F, data from LUT address 0x0 is sent. In auto burst mode, the command length becomes 5 + n*2 bytes.

Use cases:

1.       Write 4 channels data (0x1234_5678_9ABC_DEF1) of TXV LUT address 0x74 to chip with address 0x0A.

a.   SPI command: 0x8A_80_E8_1234_5678_9ABC_DEF1

b.   Comment: 64 clock cycles when writing only to TXV LUT address 0x74.

 

Global LUT Write - GBL_LUT_WR

Requirements: SPI_91

Global LUT Write (GBL_LUT_WR) is a 40-bit (5 bytes) SPI command bounded by the chip select (spi_csb) signal that writes data to the look-up tables (LUTs) of the device.

Requirements: SPI_6, SPI_86

When the Sub-array Enable (SE) bit in byte1 is set to 1, the command is only executed when the Sub-array Index given in the same byte matches the Sub-array Index (SA_INDEX) of the device in the CHIP_INFO register. When SE is set to 0, the command is executed for all devices.

Requirements: SPI_66, SPI_15, SPI_16

There is a LUT with 128 entries at 64-bit per direction (TX/RX) and polarization (H/V) including four (4) channels at 16-bit per entry. When any of the LUT Pointer (TXV, TXH, RXV or RXH) bit in byte2 is set to 1, access to the associated LUT is enabled. Each LUT location information is completely written with 64 clock pulses (16 bits x 4 channels). When more than one LUT Pointer bit is set to 1, the LUTs are accessed in the following order: TXV -> TXH -> RXV -> RXH.

In general, a complete 64-bit LUT entry including all 4 channels is written with a single write access, starting with channel #1 and followed by channel #2 to #4. In this case the channel select bits ({ CH1, CH0 }) in byte2 must be set to 2'b00. However, if data of a particular channel of a single entry shall only be written, the channel select bits can be set according to the required channel number.

Requirements: SPI_89, SPI_17

The LUT Address given in byte3 provides the 7-bit address of the LUT to access. Continuous write access and address roll-back is supported. Sending another 64 clock (spi_clk) cycles with the chip select (spi_csb) signal asserted after the initial command increases the LUT address, and data are received accordingly. When reaching the LUT address 0x7F, the next access targets address 0x0.

Requirements: SPI_91, SPI_92, SPI_6, SPI_86, SPI_15, SPI_89

The following tables show the LCL_LUT_WR frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

SA Enable

Sub-array Index

LUT Pointer

Reserved

Channel Select

1

0

1

SE

SA3

SA2

SA1

SA0

TXV

TXH

RXV

RXH

0

0

CH1

CH0

SPI protocol mode

Sub-array enable

Sub-array index info for each chip is stored in CHIP_INFO register.

TX/RX LUT for vertical and horizontal polarization.

For future use.

4 channels at 16-bit per entry.

 

byte3

7

6

5

4

3

2

1

0

LUT Address

Reserved

LA6

LA5

LA4

LA3

LA2

LA1

LA0

0

7-bit address of look-up tables to access. Continuous read and address roll back is supported.

For future use.

 

byte4

byte5

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

LUT Write Data

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

D0

16-bit data. The user can keep providing additional 16-bit data streams and they would be uploaded to the associated channel of the selected LUT.

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local LUT Write, Mode = 3'b100.

[4]

Sub-array Enable

SE=0: Command is executed on all devices.
SE=1: Command is executed on devices with matching sub-array index.

[3:0]

Sub-array Index

Hardware device address to select chip to be accessed by SPI command.

2

[7:4]

LUT Pointer

User can choose to read TXV, TXH, RXV and RXH by setting
TXV=1 for loading TXV LUT data.
TXH=1 for loading TXH LUT data.
RXV=1 for loading RXV LUT data.
RXH=1 for loading RXH LUT data.

[3:2]

Reserved

For future use.

[1:0]

Channel Select

These bits ({ CH1, CH0 }) select the channel when a particular channel of a single entry shall be written:
2'b00: Channel #1.
2'b01: Channel #2.
2'b10: Channel #3.
2'b11: Channel #4.
In general, { CH1, CH0 } shall be set to 2'b00.

3

[7:1]

LUT Address

7-bit address of look-up tables to access.

[0]

Reserved

For future use.

4

[7:0]

Data byte 1
LUT Write Data[15:8]

Data sent by the SPI master on the MOSI line, and received on spi_mosi_in, will be stored in the selected LUT.

5

[7:0]

Data byte 2
LUT Write Data[7:0]

Notes:

·       Auto Burst Mode:

The Global LUT Write SPI command provides auto burst mode. Sending another n times (n=1, 2, 3...) 64 clocks with the chip select signal asserted after the initial command fetches the content of the next LUT address. After LUT address 0x7F, data from LUT address 0x0 is sent. In auto burst mode, the command length becomes 5 + n*2 bytes.

Use cases:

1.       Write 4 channels data (0x1234_5678_9ABC_DEF1) of TXV LUT address 0x74 to chip with sub-array index 0xA.

a.   SPI command: 0xBA_80_E8_1234_5678_9ABC_DEF1

b.   Comment: 64 clock cycles when writing only to TXV LUT address 0x74.

 

Local Fast Beam Steering - LCL_FBS

Requirements: SPI_93

Local Fast Beam Steering (LCL_FBS) is basically a 24-bit (3 bytes) SPI command bounded by the chip select (spi_csb) signal and one of the ways to fetch data stored in the LUTs and impress them to the desired channels. There is an exception when both the vertical and horizontal LUT pointer are set, which results in a 4-byte command.

Requirements: SPI_80, SPI_4, SPI_72

The Chip Address given in byte1 selects the device to be accessed. If the Chip Address does not match the (pre-configured) chip address, the access will be ignored. The Chip Address is increased by 1 internally after each data byte that has been transferred when { PVER, PHOR } is not equal to 2'b00 or every second data byte when { PVER, PHOR } is equal to 2'b00.

Requirements: SPI_51, SPI_52

The LUT Enable (V_POL_EN, H_POL_EN) bits in byte2 select which polarization will be ON (enabled, powered-up) or OFF (disabled, powered-down). When a LCL_FBS command is issued, the SW_TRX[9:8] bits are updated with the value of the associated LUT Enable bit when latching occurs.

Requirements: SPI_53

The LUT Pointer (PVER, PHOR) bits in byte2 select the pointer for each polarization. When { PVER, PHOR } = 2b'11, the same LUT address is set for both polarizations. When { PVER, PHOR } = 2b'10, the vertical LUT address is only set. When { PVER, PHOR } = 2b'01, the horizontal LUT address is only set. When { PVER, PHOR } = 2b'00, the vertical LUT pointer is set with the first LUT address and the horizontal LUT pointer with the second address. In this mode data have a width of 16-bits (8 bits for vertical and 8 bits for horizontal).

Requirements: SPI_20, SPI_97, SPI_98, SPI_70, SPI_107

The Global Latch Enable (GLEN) bit in byte2 selects if the latching is done locally (GLEN=0) or globally (GLEN=1). When GLEN is 0 and { PVER, PHOR } is not equal to 2'b00, data are latched (effective) at the end of each byte. When GLEN is 0 and { PVER, PHOR } is equal to 2'b00, data are latched (effective) at the end of every second byte. Otherwise (GLEN=1), data will be latched after the last data byte that has been transferred with the TRX/GL bit set to 1 in byte3 ({ PVER, PHOR } is not equal to 2'b00) or byte4 ({ PVER, PHOR } is equal to 2'b00). That provides a possibility to keep sending 8-bit data for different V- and H-channels when TRX/GLis set to 0. However, if the TRX/GL bit is not set in any data byte that has been transferred, latching does not occur.

Requirements: SPI_21, SPI_106, SPI_71

When GLEN is 0, and { PVER, PHOR } is not equal to 2b'00, then the operation mode is set with the TRX/GL bit in byte3. When GLEN is 0, and { PVER, PHOR } is equal to 2b'00, then the operation mode is set with the Tx/Rx/GL (TRX/GL) bit in byte4. The Tx/Rx/GL (TRX/GL) bit in byte3 will be ignored in this case. Otherwise (GLEN=1), the operation mode is set with the TRX bit in byte2.

Requirements: SPI_22

When CTRL_CFG[0] (TRX_CONT_MODE) bit is set to 1 (SPI control), the SW_TRX[7] (TRX) bit is updated with the value of the

·       Tx/Rx (TRX) bit provided in byte3 if GLEN is 0 and {PVER, PHOR} is not equal to 2b'00.

·       Tx/Rx (TRX) bit provided in byte4 if GLEN is 0 and {PVER, PHOR} is equal to 2b'00.

·       TRX bit in byte2 if GLEN is 1.

Requirements: SPI_55

When a LCL_FBS command is issued, and CTRL_CFG[0] (TRX_CONT_MODE) bit is set to 0 (external pin configuration), then the operation mode shall remain unchanged independently of the setting in the TRX/GL (GLEN=0) or TRX (GLEN=1) bit to avoid that there is a conflict between the TRX setting in the LCL_FBS command and the external TR pin.

Requirements: SPI_95, SPI_18

The LUT Address given in byte3 or any following byte provides the 7-bit address of the LUT to access. When any LUT Pointer (PVER, PHOR) bit is set to 1, data from the LUT Address is copied to all four (4) TX/RX Set buffer registers of the selected polarization. There is no provision to load selected channels.

Requirements: REG_25, REG_27, REG_29, REG_31

When the horizontal LUT pointer (PHOR) is set to 1, the LUT Address that has been accessed is stored in the HLUT_INFO[14:8] bit fields for TX and in HLUT_INFO[6:0] for RX operation mode. When the vertical LUT pointer (PVER) is set to 1, the corresponding bit fields of the VLUT_INFO register are updated with the LUT Address.

Requirements: SPI_93, SPI_94

The following tables show the LCL_FBS frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

Chip Address

LUT Enable

LUT Pointer

Reserved

Global Latch Enable

TRX

Reserved

1

1

0

ADD4

ADD3

ADD2

ADD1

ADD0

V_POL_EN

H_POL_EN

PVER

PHOR

0

GLEN

TRX

0

SPI protocol mode

Hardware device address to select chip to be accessed by SPI command.

Vertical/Horizontal LUT enable

Vertical/Horizontal LUT pointer

For future use.

Local/
Global
latch

TX/RX select

For future use.

 

Option 1: When { PVER, PHOR } = 2b'11 or { PVER, PHOR } = 2b'10 or { PVER, PHOR } = 2b'01.

byte3+n

7

6

5

4

3

2

1

0

LUT Address

TX/RX/GL

LA6

LA5

LA4

LA3

LA2

LA1

LA0

TRX/GL

7-bit address of look-up tables to access.

TX/RX or GL

 

Option 2: When { PVER, PHOR } = 2b'00.

byte3+2n

byte4+2n

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

LUT Address

Reserved

LUT Address

TX/RX/GL

LA6

LA5

LA4

LA3

LA2

LA1

LA0

0

LA6

LA5

LA4

LA3

LA2

LA1

LA0

TRX/GL

7-bit address of look-up tables to access
(vertical polarization).

For future use.

7-bit address of look-up tables to access
(horizontal polarization).

TX/RX or GL

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local Fast Beam Steering, Mode = 3'b110.

[4:0]

Chip Address

Hardware device address to select chip to be accessed by SPI command.

2

[7:6]

LUT Enable

Selects which polarization is ON (enabled, powered-up):
- V_POL_EN=H_POL_EN=1 enables both polarizations.
- V_POL_EN=1, H_POL_EN=0, enables only vertical polarization.
- V_POL_EN=0, H_POL_EN=1, enables only horizontal polarization.
- V_POL_EN=0, H_POL_EN=0, both polarizations are OFF (disabled).

[5:4]

LUT Pointer

Selects the pointer for each polarization (user can change the pointer of the inactive polarization):
- PVER=PHOR=1, sets the same LUT address for both polarizations.
- PVER=1, PHOR=0, sets only the vertical LUT address.
- PVER=0, PHOR=1, sets only the horizontal LUT address.
- PVER=PHOR=0, the vertical LUT pointer is set with the first LUT address and horizontal with the second.

[3]

Reserved

For future use.

[2]

Global Latch Enable

Selects if the latching will be done locally (GLEN=0) or globally (GLEN=1).

[1]

TRX

Selects the direction when latching is done globally (GLEN=1):
1: TX
0: RX
When latching is done locally (GLEN=0), this bit does not have any meaning (Reserved).

[0]

Reserved

For future use.

 

Option 1: When { PVER, PHOR } = 2b'11 or { PVER, PHOR } = 2b'10 or { PVER, PHOR } = 2b'01.

3+n

[7:1]

LUT Address

(n+1)-th 7-bit address of look-up tables to access.

[0]

TX/RX/GL

When latching is done locally (GLEN=0), selects the direction:
1: TX
0: RX
When latching is done globally (GLEN=1), determines the time when latching occurs:
1: Data are latched.
0: Data are not latched.

 

Option 2: When { PVER, PHOR } = 2b'00.

3+2n

[7:1]

LUT Address

(n+1)-th 7-bit address of vertical look-up tables to access (vertical polarization).

[0]

Reserved

For future use.

4+2n

[7:1]

LUT Address

(n+1)-th 7-bit address of horizontal look-up tables to access (horizontal polarization).

[0]

TX/RX/GL

When latching is done locally (GLEN=0), selects the direction:
1: TX
0: RX
When latching is done globally (GLEN=1), determines the time when latching occurs:
1: Data are latched.
0: Data are not latched.

Notes:

·       Bytes: n = 0, 1, 2, 3 …

·       Chip Address:

Although F641x supports only 4-bit physical address, the digital block supports 5-bit chip address. The top bit is hard coded to 0 on-chip. This design also supports programming the chip-address using shift register blocks, where the chip can be assigned a 5-bit address.

Use cases:

1.       Fetch 4 channels data of vertical polarization locally from LUT address 0x74 from chip with address 0x0A and switch to TX-mode with some delay.

a.   SPI command: 0xCA_A8_E9

b.   Comment: V_POL_EN=1, H_POL_EN=0, PVER=1, PHOR=0, DACS=1, GLEN=0, TRX=1.

2.       Fetch 4 channels data of vertical and horizontal polarization locally from LUT address 0x74 from chip with address 0x0A and switch to RX-mode with some delay.

a.   SPI command: 0xCA_F8_E8

b.   Comment: V_POL_EN=1, H_POL_EN=1, PVER=1, PHOR=1, DACS=1, GLEN=0, TRX=0.

 

Global Fast Beam Steering - GBL_FBS

Requirements: SPI_93

Global Fast Beam Steering (GBL_FBS) is basically a 24-bit (3 bytes) SPI command bounded by the chip select (spi_csb) signal and one of the ways to fetch data stored in the LUTs and impress them to the desired channels. There is an exception when both the vertical and horizontal LUT pointer are set, which results in a 4-byte command.

Requirements: SPI_6, SPI_86, SPI_73

When the Sub-array Enable (SE) bit in byte1 is set to 1, the command is only executed when the Sub-array Index given in the same byte matches the Sub-array Index (SA_INDEX) of the device in the CHIP_INFO register. When SE is set to 0, the command is executed for all devices. The Sub-array Index is increased by 1 internally after each data byte that has been transferred when { PVER, PHOR } is not equal to 2'b00 or every second data byte when { PVER, PHOR } is equal to 2'b00. When reaching the sub-array index 0xF, the next access targets Sub-array Index 0x0.

Requirements: SPI_51, SPI_52

The LUT Enable (V_POL_EN, H_POL_EN) bits in byte2 select which polarization will be ON (enabled, powered-up) or OFF (disabled, powered-down). When a LCL_FBS command is issued, the SW_TRX[9:8] bits are updated with the value of the associated LUT Enable bit when latching occurs.

Requirements: SPI_53

The LUT Pointer (PVER, PHOR) bits in byte2 select the pointer for each polarization. When { PVER, PHOR } = 2b'11, the same LUT address is set for both polarizations. When { PVER, PHOR } = 2b'10, the vertical LUT address is only set. When { PVER, PHOR } = 2b'01, the horizontal LUT address is only set. When { PVER, PHOR } = 2b'00, the vertical LUT pointer is set with the first LUT address and the horizontal LUT pointer with the second address. In this mode data have a width of 16-bits (8 bits for vertical and 8 bits for horizontal).

Requirements: SPI_20, SPI_97, SPI_98, SPI_70, SPI_107

The Global Latch Enable (GLEN) bit in byte2 selects if the latching is done locally (GLEN=0) or globally (GLEN=1). When GLEN is 0 and { PVER, PHOR } is not equal to 2'b00, data are latched (effective) at the end of each byte. When GLEN is 0 and { PVER, PHOR } is equal to 2'b00, data are latched (effective) at the end of every second byte. Otherwise (GLEN=1), data will be latched after the last data byte that has been transferred with the TRX/GL bit set to 1 in byte3 ({ PVER, PHOR } is not equal to 2'b00) or byte4 ({ PVER, PHOR } is equal to 2'b00). That provides a possibility to keep sending 8-bit data for different V- and H-channels when TRX/GLis set to 0. However, if the TRX/GL bit is not set in any data byte that has been transferred, latching does not occur.

Requirements: SPI_21, SPI_106, SPI_71

When GLEN is 0, and { PVER, PHOR } is not equal to 2b'00, then the operation mode is set with the TRX/GL bit in byte3. When GLEN is 0, and { PVER, PHOR } is equal to 2b'00, then the operation mode is set with the Tx/Rx/GL (TRX/GL) bit in byte4. The Tx/Rx/GL (TRX/GL) bit in byte3 will be ignored in this case. Otherwise (GLEN=1), the operation mode is set with the TRX bit in byte2.

Requirements: SPI_22

When CTRL_CFG[0] (TRX_CONT_MODE) bit is set to 1 (SPI control), the SW_TRX[7] (TRX) bit is updated with the value of the

·       Tx/Rx (TRX) bit provided in byte3 if GLEN is 0 and {PVER, PHOR} is not equal to 2b'00.

·       Tx/Rx (TRX) bit provided in byte4 if GLEN is 0 and {PVER, PHOR} is equal to 2b'00.

·       TRX bit in byte2 if GLEN is 1.

Requirements: SPI_55

When a GBL_FBS command is issued, and CTRL_CFG[0] (TRX_CONT_MODE) bit is set to 0 (external pin configuration), then the operation mode shall remain unchanged independently of the setting in the TRX/GL (GLEN=0) or TRX (GLEN=1) bit to avoid that there is a conflict between the TRX setting in the GBL_FBS command and the external TR pin.

Requirements: SPI_95, SPI_18

The LUT Address given in byte3 or any following byte provides the 7-bit address of the LUT to access. When any LUT Pointer (PVER, PHOR) bit is set to 1, data from the LUT Address is copied to all four (4) TX/RX Set buffer registers of the selected polarization. There is no provision to load selected channels.

Requirements: REG_25, REG_27, REG_29, REG_31

When the horizontal LUT pointer (PHOR) is set to 1, the LUT Address that has been accessed is stored in the HLUT_INFO[14:8] bit fields for TX and in HLUT_INFO[6:0] for RX operation mode. When the vertical LUT pointer (PVER) is set to 1, the corresponding bit fields of the VLUT_INFO register are updated with the LUT Address.

Requirements: SPI_93, SPI_96

The following tables show the GBL_FBS frame structure.

byte1

byte2

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Mode

SA Enable

Sub-array Index

LUT Enable

LUT Pointer

Reserved

Global Latch Enable

TRX

Reserved

1

1

0

SE

SA3

SA2

SA1

SA0

V_POL_EN

H_POL_EN

PVER

PHOR

0

GLEN

TRX

0

SPI protocol mode

Sub-array enable

Sub-array index info for each chip is stored in CHIP_INFO register.

Vertical/Horizontal LUT enable

Vertical/Horizontal LUT pointer

For future use.

Local/
Global
latch

TX/RX select

For future use.

 

Option 1: When { PVER, PHOR } = 2b'11 or { PVER, PHOR } = 2b'10 or { PVER, PHOR } = 2b'01.

byte3+n

7

6

5

4

3

2

1

0

LUT Address

TX/RX/GL

LA6

LA5

LA4

LA3

LA2

LA1

LA0

TRX/GL

7-bit address of look-up tables to access.

TX/RX or GL

 

Option 2: When { PVER, PHOR } = 2b'00.

byte3+2n

byte4+2n

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

LUT Address

Reserved

LUT Address

TX/RX/GL

LA6

LA5

LA4

LA3

LA2

LA1

LA0

0

LA6

LA5

LA4

LA3

LA2

LA1

LA0

TRX/GL

7-bit address of look-up tables to access.

For future use.

7-bit address of look-up tables to access.

TX/RX or GL

 

Byte

Bit

Description

Comment

1

[7:5]

Mode

For Local Fast Beam Steering, Mode = 3'b110.

[4]

Sub-array Enable

SE=0: Command is executed on all devices.
SE=1: Command is executed on devices with matching sub-array index.

[3:0]

Sub-array Index

Hardware device address to select chip to be accessed by SPI command.

2

[7:6]

LUT Enable

Selects which polarization is ON (enabled, powered-up):
- V_POL_EN=H_POL_EN=1 enables both polarizations.
- V_POL_EN=1, H_POL_EN=0, enables only vertical polarization.
- V_POL_EN=0, H_POL_EN=1, enables only horizontal polarization.
- V_POL_EN=0, H_POL_EN=0, both polarizations are OFF (disabled).

[5:4]

LUT Pointer

Selects the pointer for each polarization (user can change the pointer of the inactive polarization):
- PVER=PHOR=1, sets the same LUT address for both polarizations.
- PVER=1, PHOR=0, sets only the vertical LUT address.
- PVER=0, PHOR=1, sets only the horizontal LUT address.
- PVER=PHOR=0, the vertical LUT pointer is set with the first LUT address and horizontal with the second.

[3]

Reserved

For future use.

[2]

Global Latch Enable

Selects if the latching will be done locally (GLEN=0) or globally (GLEN=1).

[1]

TRX

Selects the direction when latching is done globally (GLEN=1):
1: TX
0: RX
When latching is done locally (GLEN=0), this bit does not have any meaning (Reserved).

[0]

Reserved

For future use.

 

Option 1: When { PVER, PHOR } = 2b'11 or { PVER, PHOR } = 2b'10 or { PVER, PHOR } = 2b'01.

3+n

[7:1]

LUT Address

(n+1)-th 7-bit address of look-up tables to access.

[0]

TX/RX/GL

When latching is done locally (GLEN=0), selects the direction:
1: TX
0: RX
When latching is done globally (GLEN=1), determines the time when latching occurs:
1: Data are latched.
0: Data are not latched.

 

Option 2: When { PVER, PHOR } = 2b'00.

3+2n

[7:1]

LUT Address

(n+1)-th 7-bit address of vertical look-up tables to access.

[0]

Reserved

For future use.

4+2n

[7:1]

LUT Address

(n+1)-th 7-bit address of horizontal look-up tables to access.

[0]

TX/RX/GL

When latching is done locally (GLEN=0), selects the direction:
1: TX
0: RX
When latching is done globally (GLEN=1), determines the time when latching occurs:
1: Data are latched.
0: Data are not latched.

Notes:

·       Bytes: n = 0, 1, 2, 3 …

Use cases:

The GBL_FBS command is very similar to LCL_FBS. Instead of selecting chips by the chip address, here the command is executed on all chips if SE=0, or with matching Sub-array Index if SE=1. Hence, all LCL_FBS use cases are applicable here as well.

 

Cyclic Redundancy Check

Requirements: SPI_37, SPI_42, SPI_44

The Cyclic Redundancy Check (CRC) error detection feature extends a valid LCL_REG_WR or GBL_REG_WR command by sixteen (16) clock (spi_clk) cycles. These sixteen extra cycles are needed to send two CRC bytes for that SPI frame.

Requirements: SPI_46, SPI_104

The CRC component is used to compute the CRC from the serial data stream with a maximum length (payload) of 35 bytes.The payload is dependent on the number of data bytes that are specified with the NB1 and NB0 bits, and may vary between 4 and 35 bytes. The minimum payload is calculated assuming 3 command and 1 data byte, and the maximum payload assumes 3 command and 32 data bytes. If more or less data bytes than specified in { NB1, NB0 }are transmitted in an SPI frame with CRC enabled, proper device operation is not guaranteed. A timing diagram with CRC enabled is shown in Figure 7 for { PSS, GAS } = 2b'00 and { NB1, NB0 } = 2b'00.

Figure 7: SPI frame with CRC enabled

Requirements: SPI_37, SPI_39, SPI_40, SPI_41, SPI_43, SPI_45

The CRC component is implemented as a linear feedback shift register (LFSR). The polynomial used in the CRC component is CRC-16-CCITT (0x8810, x^16 +x^12 +x^5 +1) with a seed value of 0xFFFF. This is shown in Figure 8. The polynomial is fixed and not programmable. The LFSR is initialized (set to 0xFFFF) automatically before each CRC starts. The CRC componenet does not augment a zero-length message with 16 zero bits, which is known as CRC-16-CCITT-FALSE implementation.

Figure 8: SPI 16-bit CRC computation feedback shift register

Requirements: SPI_49, SPI_50, SPI_48

If the calculated CRC does not correspond to the transmitted CRC, data are not discarded, but the CRC error flag (CTRL_CFG[8]) is asserted (set to 1). Writing 1 to the CRC error flag (CTRL_CFG[8]) clears it. Writing 0 has no meaning. It is not possible to read out the computed CRC value on completion of the bitstream.

Requirements: SPI_38

The CRC error detection feature is disabled by default and can be configured by system software through CTRL_CFG[7] (ERR_DET_EN).

 

Register Map

Introduction

Requirements: REG_1, REG_2

The registers are described in more detail in 'Register Map/Descriptions'. The following table outlines the register map. Click on the picture to see all details.

Figure 9: Register map sunmary

 

Programming Considerations

This chapter provides some programming considerations for the following registers:

·       Control Register

·       Overall Chip Configuration Register

·       Look-up Table Registers

·       BIST Register

·       TRX Switch Control Register

·       Chip ID Register

·       MBIAS Register

·       ADC Clock Control Register

·       ADC Control Register

·       Sensor Enable Register

·       Sensor Configuration Register

·       SCRATCH Register

·       TRX Setting Registers

·       TRX Spare Register

 

Control Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: SPI_28, SPI_30, SPI_36, SPI_103

Programming of the internal chip address is enabled by setting CTRL_CFG[10] (SHIFTREG_ADDR_PROG) to 1. When programming is terminated, then CTRL_CFG[10] (SHIFTREG_ADDR_PROG) is cleared (set to 0) automatically, and CTRL_CFG[11] (SHIFTREG_ADDR_EN) is set to 1 to indicate that the internal chip address is used. Writing 0 to CTRL_CFG[10] (SHIFTREG_ADDR_PROG) has no effect. CTRL_CFG[11] (SHIFTREG_ADDR_EN) can only be cleared (set to 0) by power-on (porb) or hardware (rstb) reset signal. Refer to section Addressing for more information.

Requirements: REG_61

Through CTRL_CFG[9] (IO_PROTOCOL) the status of the spib_lvds input pin can be read.

Requirements: SPI_38, SPI_49, SPI_50

When CTRL_CFG[7] (ERR_DET_EN) is set to 1, the CRC error detection feature is enabled. If the calculated CRC does not correspond to the transmitted CRC, CTRL_CFG[8] (ERR_STATUS_BIT) is asserted (set to 1). Writing 1 to CTRL_CFG[8] clears it. Writing 0 has no meaning. Refer to section Cyclic Redundancy Check for more information.

Requirements: SPI_38, SPI_49, SPI_50

When CTRL_CFG[6] (TAL_RAL_EN) is set to 1,

Requirements: REG_4

When CTRL_CFG[5] (RESET) is set to 1, a software reset event is initiated. After reset, CTRL_CFG[5] is cleared (set to 0) automatically. The functionality is the same as for a power-on or hardware reset event with the following exceptions:

·       Scan and IO test mode are not disabled.

·       SPI communication is not reset.

·       The programmable chip address stored in the 8-bit shift register is not initialized to its default value.

Requirements: REG_14, DFT_17, DFT_18

When CTRL_CFG[4] (IO_TEST) is set to 1, the IO test mode is enabled. When IO test mode is enabled, there is no access to the SPI Interface anymore. To exit IO test mode, a power-on or hardware reset event must be initiated by a minimum 20ns logic low on the porb and rstb pin respectively. Refer to section IO Test for more information.

Requirements: REG_7

When CTRL_CFG[3] (MANUAL_EN) is set to 1, the enable pin of individual channels (txvN_en, txhN_en, rxvN_en, rxhN_en) can be controlled by CH_ENS register bits. Refer to Figure 18 in section TRX Control for more information.

Requirements: REG_18, DFT_1, DFT_11, DFT_12

When CTRL_CFG[2] (SCAN_MODE) is set to 1, the scan test mode is enabled. When scan test mode is enabled, there is no access to the SPI Interface anymore. To exit scan test mode, a power-on or hardware reset event must be initiated by a minimum 20ns logic low on the porb and rstb pin respectively. Refer to section Scan Test for more information.

Requirements: REG_9, IO_5

When CTRL_CFG[1] (SYNC_TRX) is set to 1, FEMs and internal SW are controlled by SW_TRX[7] (TRX) or tr input pin (dependent on CTRL_CFG[0]). Otherwise, they are controlled by the SW_TRX[1:0] ({ TRX_BFH, TRX_BFV}) bit fields. Refer to Figure 19 in section TRX Control for more information.

Requirements: REG_11, REG_13, REG_70, REG_12

When CTRL_CFG[0] (TRX_CONT_MODE) is set to 1, which is the default value, SW_TRX[7] (TRX) controls the operation mode (1=TX, 0=RX). Otherwise, the tr input signal controls the operation mode. When CTRL_CFG[0] is set to 0, SW_TRX[7] (TRX) is overwritten with the value of the external tr input signal. This way, the state of the tr pin can be read back from this bit.

 

Overall Chip Configuration Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

The CHIP_INFO register sets the sub-array index of the chip, configures the oscillator, and starts the data transfer from OTP to registers.

Requirements: IO_2, REG_15, REG_16, IO_8

When set to 1, CHIP_INFO[5] (OSC_EN) enables the oscillator. Otherwise, and by default, the oscillator is disabled. When enabled, the oscillator clock (osc_clk) frequency may vary between 20MHz and 80MHz. CHIP_INFO[7:6] (OSC_FREQ[1:0]) selects the target oscillator frequency by driving the associated osc_freq[1:0] output signals as follows:

·       0x0: 80MHz, 0x1: 40MHz, 0x2: 20MHz, 0x3: OFF.

Requirements: REG_57, REG_51

When the oscillator gets enabled with the start of an ADC operation or start of the OTP state machine to read all data from the OTP memory to the OTP_DATAn registers, the status of CHIP_INFO[5] is updated accordingly.

Requirements: REG_17

When set to 1, CHIP_INFO[4] (OTP_FSM_START) starts the OTP state machine to read all data from the OTP memory to the OTP_DATAn registers. This bit is write-only and cleared automatically once the transfer of the OTP bits is completed. Refer to section OTP Memory for more information.

Requirements: REG_21

CHIP_INFO[3:0] (SA_INDEX[3:0]) stores the sub-array index of the chip that is used for comparison by all global SPI commands when the Sub-array Enable (SE) bit in byte1 of the respective command is set to 1. By default, CHIP_INFO[3:0] is set to 0x0. Refer to sections Global Register Write - GBL_REG_WR, Global LUT Write - GBL_LUT_WR, and Global Fast Beam Steering - GBL_FBS for more information.

 

Look-up Table Registers

Requirements: REG_24, REG_26, REG_28, REG_30, REG_71, REG_72, REG_73, REG_74, REG_75, REG_76, REG_77, REG_78, REG_69

There are three (3) different types of Look-up Table registers. These are shown in Figure 10.

·       HLUT_INFO register stores the current (active) LUT pointer (index) for horizontal TX SRAM in bit fields [14:8] (TXH_LUT_IND[6:0]) and for horizontal RX SRAM in bit fields [6:0] (RXH_LUT_IND[6:0]). Equivalent to HLUT_INFO, VLUT_INFO stores the current (active) LUT pointer (index) for vertical TX/RX SRAMs.

·       When the external pin configuration is enabled (CTRL_CFG[0]=0), HLUT_START register defines the start LUT pointer (index) for horizontal TX SRAM in bit fields [14:8] (TXH_LUT_START[6:0]) and for horizontal RX SRAM in bit fields [6:0] (RXH_LUT_START[6:0]).

Equivalent to HLUT_START, VLUT_START defines the start LUT pointer (index) for vertical TX/RX SRAMs.

By default, HLUT_START is set to 0x0 and VLUT_START is set to 0x7F, in this way covering all look-up table range.

These registers are not applicable when SPI control mode is enabled (CTRL_CFG[0]=1).

·       When the external pin configuration is enabled (CTRL_CFG[0]=0), HLUT_STOP register defines the stop LUT pointer (index) for horizontal TX SRAM in bit fields [14:8] (TXH_LUT_STOP[6:0]) and for horizontal RX SRAM in bit fields [6:0] (RXH_LUT_STOP[6:0]).

Equivalent to HLUT_STOP, VLUT_STOP defines the stop LUT pointer (index) for vertical TX/RX SRAMs.

By default, HLUT_START is set to 0x0 and VLUT_START is set to 0x7F, in this way covering all look-up table range.

These registers are not applicable when SPI control mode is enabled (CTRL_CFG[0]=1).

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the registers.

Figure 10: Look-up table registers

Requirements: REG_25, REG_27, REG_29, REG_31, REG_79, REG_80, REG_81, REG_82, REG_83

Referring to the numbering shown in Figure 10, HLUT/VLUT_INFO registers are updated when

1.       a LCL_FBS or GBL_FBS command is issued.

When the horizontal LUT pointer (PHOR) is set to 1, the LUT Address that has been accessed is stored in the HLUT_INFO[14:8] bit fields for TX and in HLUT_INFO[6:0] for RX operation mode. When the vertical LUT pointer (PVER) is set to 1, the corresponding bit fields of the VLUT_INFO register are updated with the LUT Address.

Refer to sections Local Fast Beam Steering - LCL_FBS and Global Fast Beam Steering - GBL_FBS for more information.

2.       the external pin configuration is enabled by setting CTRL_CFG[0] (TRX_CONT_MODE) to 0.

The HLUT_INFO and VLUT_INFO registers are overwritten with the values of HLUT_START and VLUT_START registers respectively.

3.       the external pin configuration is enabled and there is a 'latch TX/RX+1' or 'TX/RX+1' trigger through the external pins.

Dependent on the operation mode and enabled polarization, either HLUT_INFO [14:8] (tr=1, SW_TRX[9]=1) or VLUT_INFO[14:8] (tr=1, SW_TRX[8]) or HLUT_INFO[6:0] (tr=0, SW_TRX[9]) or VLUT_INFO[6:0] (tr=0, SW_TRX[8]) are automatically incremented by one to reflect the new active LUT index. When reaching the associated HLUT_STOP register value, HLUT_INFO is set to HLUT_START.

Refer to Figure 24 in section External Pin Configuration for more information.

 

BIST Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_85

BIST[4:3] (SRAM_SEL[1:0]) selects the look-up table (LUT) that is used for initialization, cyclic redundancy check (CRC) or embedded memory self-test (BIST).

Requirements: REG_86

When set to 1, BIST[2] (SRAM_CRC) triggers a CRC of the content of the LUT (SRAM) that is selected in BIST[4:3]. Refer to section Data Consistency Check for more information. This bit is not cleared automatically, but must be set to 0 by system software.

Requirements: REG_87

When set to 1, BIST[1] (SRAM_BIST) triggers a BIST of the LUT (SRAM) that is selected in BIST[4:3]. Refer to section Built-in Self Test for more information. This bit is not cleared automatically, but must be set to 0 by system software.

Requirements: REG_88

When set to 1, BIST[0] (SRAM_INIT) initializes the LUT (SRAM) that is selected in BIST[4:3], and sets all bits to 0. Refer to section Initialization for more information. This bit is not cleared automatically, but must be set to 0 by system software.

Requirements: REG_89, REG_90

When any of CRC or BIST or LUT (SRAM) initialization is completed, BIST[11] (SRAM_DONE) is set to 1 for the LUT (SRAM) that is selected in BIST[4:3]. If BIST[11] is already set to 1, the status remains unchanged. BIST[11] is cleared (set to 0) for the LUT (SRAM) that is selected in BIST[4:3], if BIST[2:0] is set to 3'b000.

Requirements: REG_91, REG_92

The number of errors that occured during a BIST is reported in BIST[10:8] (SRAM_ERR[2:0]) for the LUT (SRAM) that is selected in BIST[4:3]. If the number of errors exceeds 7, it is kept as 7. The BIST error counter is cleared (set to 3'b000) for the LUT (SRAM) that is selected in BIST[4:3] when BIST[1] is set to 0.

 

TRX Switch Control Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_5, REG_6

When set to 1, SW_TRX[11] (MB_EN) enables the chip reference bias. Otherwise, it is disabled. It is possible to read the SW_TRX[11] value on MBIAS[0], too.

Requirements: REG_8

When SW_TRX[10] (STANDBY) is set to 1, all transmit/receive channels and all DACs are disabled. Refer to Figure 18 in section TRX Control and Figure 22 in section DAC Control for more information.

Requirements: REG_10

When set to 1, all transmit/receive channels with horizontal (SW_TRX[9]) or vertical (SW_TRX[8]) polarization are enabled. Otherwise, they are disabled. Refer to Figure 18 in section TRX Control for more information.

Requirements: REG_11, REG_12

When CTRL_CFG[0] (TRX_CONT_MODE) is set to 1, SW_TRX[7] (TRX) selects the operation mode (1=TX, 0=RX). When CTRL_CFG[0] is set to 0, SW_TRX[7] (TRX) is overwritten with the value of the tr input signal. This way, the state of the external TR pin can be read back from this bit.

Requirements: REG_32, REG_33

The external FEM switches get enabled if the SW_TRX[4] (SW_DRV_EN_TR) bit is set to 1. Dependent on SW_TRX[6] (SW_FEM_TR_MODE) either the positive (SW_TRX[6]=0) or negative (SW_TRX[6]=1) switch is enabled. When an external FEM switch is enabled, dependent on the operation mode SW_TRX[5] (SW_DRV_TR_STATE) defines the level of the output pins. Refer to Figure 20 in section TRX Control for more information.

Requirements: REG_35, REG_36

When CTRL_CFG[1] (SYNC_TRX) is set to 0, SW_TRX[3:2] ({ TRX_EXTH, TRX_EXTV }) bits select the operation mode (1=TX, 0=RX) of the external FEM switches for vertical (SW_TRX[2]) and horizontal polarization (SW_TRX[3]). Refer to Figure 20 in section TRX Control for more information.

Requirements: REG_37, REG_38

When CTRL_CFG[1] (SYNC_TRX) is set to 0, SW_TRX[1:0] ({ TRX_BFH, TRX_BFV }) bits enable the BF switches if the operation mode is set to 'TX'. Refer to Figure 19 in section TRX Control for more information.

 

Chip ID Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: IO_9

Chip ID (CHIP_ID) register is an informational read-only register. It is possible to read the implementation-specific code given by the chip_id[15:0] input signals through the CHIP_ID register. This is shown in Figure 11.

Figure 11: CHIP_ID register input signals connections

 

MBIAS Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: IO_10

All the bits of this register are directly connected to outputs (digital to analog), and they are used to adjust master bias settings. MBIAS[0] (MB_EN) is an informational read-only bit showing the status of SW_TRX[11] (MB_EN). Setting SW_TRX[11] to 1 is required for the whole chip to be powered up.

 

ADC Clock Control Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: ADC_2, ADC_3

Based on the CLK_CFG register default settings, the ADC reference clock (adc_clk) is generated based on the following equations:

base_clk = osc_clk/(BASE_CLK_CTRL+1) = osc_clk/(11+1) = osc_clk/12

adc_clk = base_clk/[(ADC_CLK_HIGH+1)+(ADC_CLK_LOW+1)] = base_clk/[(3+1)+(0+1)] = base_clk/5 = osc_clk/60

Whereas,

T(adc_clk, high) = T(base_clk)*(ADC_CLK_HIGH+1) = T(base_clk)*(3+1) = T(base_clk)*4 = T(osc_clk)*48

T(adc_clk, low) = T(base_clk)*(ADC_CLK_LOW+1) = T(base_clk)*(0+1) = T(base_clk)*1 = T(osc_clk)*12

Requirements: OSC_1, REG_56, REG_16, ADC_1, ADC_5

This is shown in Figure 12. The oscillator gets enabled after writing 1 to any bit of the Sensor Activation 1 (ADC_SRQ1) register when ADC_CFG[10] (ADC_SEL_SOURCE) is set to 0 - refer to the section ADC Controller & Interface for more information - or setting CHIP_INFO[5] (OSC_EN) to 1. There is a wait time of 63 cycles for the oscillator clock to stabilize before adc_clk is output to the ADC with a high to low ratio of 4:1 and the ADC is enabled (adc_en signal driven high).

Figure 12: CLK_CFG register ADC clock generation

Requirements: ADC_4

Once adc_clk is available, ADC_START_DELAY determines the time (delay) in multiples of adc_clk cycles between the time the ADC is enabled and the start of aquisition phase. With the default value set to 0xF, this would be ADC_START_DELAY+1 = 15+1 = 16 ADC clock cycles.

 

ADC Control Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_52, REG_53, REG_58

When ADC_CFG[10] (ADC_SEL_SOURCE) is set to 1, the input source of the ADC is selected by ADC_CFG[15:11] (ADC_SEL[4:0]). Otherwise, and by default, it is selected by the Sensor Activation 1 (ADC_SRQ1) register.

Requirements: REG_54

ADC_CFG[9:7] (ADC_AVG[2:0]) determines the number (n) of data that are used for averaging as follows:

·       n = 1, for ADC_AVG[2:0]=0 (no averaging).

·       n = 2^ADC_AVG, for ADC_AVG[2:0]=1..6.

·       n = 64, for ADC_AVG[2:0]=7.

By default, averaing is enabled, and 64 data are used for averaging (ADC_AVG[2:0]=7).

Requirements: REG_55, REG_66

When ADC_CFG[6] (PD_DIFF_MODE) is set to 1, PDET data are stored as measured (and after averaging). Otherwise, and by default, the difference of PREF and PDET (PREF-PDET) is stored. When ADC_CFG[6] is set to 0, and the result of PREF-PDET is less than zero, 0x0 is stored.

Requirements: IO_16

All other bits, ADC_CFG[5:0], are connected straight to output signals for configuring the ADC. This is shown in Figure 13.

Figure 13: ADC_CFG register to output signals connections

 

Sensor Enable Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: IO_17, REG_59

The Sensor Enable (SENSOR_EN) register drives the enable pins (sensor_en[15:0]) for miscellaneous sensors on the chip. By default, the value of the SENSOR_EN register is 0x0 (no sensor enabled).

Requirements: REG_60, REG_64

When ADC_CFG[10] (ADC_SEL_SOURCE) is set to 0, writing 1 to any bit of the Sensor Activation 1 (ADC_SRQ1) register sets the associated bit in the SENSOR_EN register, and this way enables the selected sensor(s). Once the ADC operation of all selected channels is completed, the SENSOR_EN register is cleared (set to 0x0, all sensors disabled). Refer to section ADC Controller & Interface for more information.

When ADC_CFG[10] (ADC_SEL_SOURCE) is set to 1, the selected sensor must be enabled manually before the measurement is started by writing 1 to the associated bit in the SENSOR_EN register. Similarly, the selected sensor must be disabled by writing 0 once the ADC operation is completed.

Requirements: IO_23

The sensor bias enable (sensor_bias_en) output signal is driven high when any of SENSOR_EN[9:0] are 1.

 

Sensor Configuration Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_62, REG_67

SENSOR_CFG[13:12] (TSENS_POL_CFG[1:0]) selects the setting that is used for temperature sensor measurements. This setting is applicable independently of the mode selection in ADC_CFG[10] (ADC_SEL_SOURCE).

·       When set to 2'b00, two measurements, TSENS_POL0 and TSENS_POL1, are executed. In the first measurement d_tsens_pol is driven low, and in the second measurement it is driven high.

·       When set to 2'b01, two measurements, TSENS_POL0 and TSENS_POL1, are executed, and in both measurements d_tsens_pol is driven low.

·       When set to 2'b10, two measurements, TSENS_POL0 and TSENS_POL1, are executed, and in both measurements d_tsens_pol is driven high.

·       When set to 2'b11, the same procedure is executed as for 2'b00.

Requirements: IO_18

Besides that, all bits (SENSOR_CFG[15:0]) are connected straight to output signals for configuring the on-chip sensors. This is shown in Figure 14.

Figure 14: SENSOR_CFG register to output signals connections

 

SCRATCH Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_50

2 bytes of memory for arbitrary data storage. This data does not affect the operation of the device.

 

TRX Setting Registers

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: REG_3, IO_43, IO_44

Data written to the TXVn/TXHn/RXVn/RXHn_SET (n = 1..4) registers is initially stored in the TXVn/TXHn/RXVn/RXHn_SET buffer registers. The data update can either be done with

·       a LCL_REG_WR or GBL_REG_WR command through the SPI interface, or

·       a 'latch TX/RX+1' trigger through the external pins - refer to Figure 24 in section External Pin Configuration for more information.

Requirements: SPI_8, IO_41

Transfer of data from the TXVn/TXHn_SET buffer registers to the active registers is initiated

·       when the TX RF Load (TRL) bit in byte3 of a LCL_REG_WR or GBL_REG_WR command is set to 1.

·       when external pin configuration is enabled (CTRL_CFG[0]=0), and

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x6 or 0x9, and there is a transition on tload from 0 to 1 (rising edge).

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x3 or 0xC, and tr is set to 1, and there is a transition on rload from 0 to 1 (rising edge).

Requirements: SPI_9, IO_42

Transfer of data from the RXVn/RXHn_SET buffer registers to the active registers is initiated

·       when the RX RF Load (RRL) bit in byte3 of a LCL_REG_WR or GBL_REG_WR command is set to 1.

·       when external pin configuration is enabled (CTRL_CFG[0]=0), and

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x6 or 0x9, and there is a transition on rload pin from 0 to 1 (rising edge).

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x3 or 0xC, and tr is set to 0, and there is a transition on tload pin from 0 to 1 (rising edge).

Requirements: IO_43

Transfer of data from the active TXVn/TXHn LUT index + 1 to both TXVn/TXHn_SET buffer and active registers is initiated

·       when external pin configuration is enabled (CTRL_CFG[0]=0), and

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x4 or 0x5 or 0x7 or 0x8, and there is a transition on tload from 0 to 1 (rising edge), or

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x1 or 0x2 or 0xA or 0xB, and tr is set to 1, and there is a transition on rload from 0 to 1 (rising edge).

Requirements: IO_44

Transfer of data from the active RXVn/RXHn LUT index + 1 to both RXVn/RXHn_SET buffer and active registers is initiated

·       when external pin configuration is enabled (CTRL_CFG[0]=0), and

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x4 or 0x5 or 0x7 or 0x8, and there is a transition on rload from 0 to 1 (rising edge), or

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x1 or 0x2 or 0xA or 0xB, and tr is set to 0, and there is a transition on tload from 0 to 1 (rising edge).

Once the active registers are updated, the TX/RX outputs change to their new values.This is shown in Figure 15 taking the example of TX.

Figure 15: TX/RX register to output signal connections

Requirements: REG_63

As for the data in the TXVn/TXHn/RXVn/RXHn_OFFSET (for n = 1; n <= 4) registers, the phase offset (TX/RX_PH_OFF) is stored in twos (2s) complement format, whereas channel bias (TX/RX_CH_BIAS) and align offset (TX/RX_ALIGN_OFF) are stored as absolute values.

Requirements: REG_102, REG_103

The TXVn_SET (n=1..4) output register values are generated according to the following equations, taking TX operation mode with vertical polarization as an example. The equations for TXHn_SET, RXVn_SET, and RXHn_SET output registers are equivalent.

TXVn_SET[15:10] (output) = TXVn_SET[15:10] (buffer) +/- TXVn_OFFSET[7:4]

TXVn_SET[9:0] (output) = TXVn_SET[9:0] (buffer)

Whereas,

N = n = 1..4.

Requirements: IO_35

If the result of TXVn_SET[15:10] (buffer) + TXVn_OFFSET[7:4] is greater than 64, the overflow is ignored (in decimal it would be TXVn_SET[15:10] (buffer) + TXVn_OFFSET[7:4] - 64). The same method is applied if the result of TXHn_SET[15:10] (buffer) + TXHn_OFFSET[7:4], RXVn_SET[15:10] (buffer) + RXVn_OFFSET[7:4] (buffer) or RXHn_SET[15:10] (buffer) + RXHn_OFFSET[7:4] is greater than 64.

Requirements: IO_36

If the result of TXVn_SET[15:10] (buffer) - TXVn_OFFSET[7:4] is less than 0, than d'64 is added (in decimal it would be TXVn_SET[15:10] (buffer) - TXVn_OFFSET[7:4] + 64). The same method is applied if the result of TXHn_SET[15:10] (buffer) - TXHn_OFFSET[7:4], RXVn_SET[15:10] (buffer) + RXVn_OFFSET[7:4] or RXHn_SET[15:10] (buffer) + RXHn_OFFSET[7:4] is less than 0.

Requirements: SPI_74

When there is a LCL_REG_RD command to a TXVn/TXHn/RXVn/RXHn_SET register, the content of the active register is read.

Requirements: REG_94

[OPTIONAL] The host has the option to read from either the TXVn/TXHn/RXVn/RXHn_SET buffer, active or output register when accessing theTXVn/TXHn/RXVn/RXHn_SET registers. The TX/RX read back option is configured by the CTRL_CFG[14:13] (READBACK[1:0]) bits. By default, the host reads from the active register.

Requirements: IO_14, IO_26, IO_34, IO_15, IO_27, IO_28, IO_29

As shown in Figure 15, all TXVn/TXHn/RXVn/RXHn SET output register bits are connected straight to output signals. This applies also to the TXCOM/RXCOM_BIAS2, TXCOM/RXCOM_BIAS1, TXCOM/RXCOM_CFG, and TXCOM/RXCOM_TUNE registers values, which are used to compile the common TX/RX setting output signals, as well as for TXVn/TXHn/RXVn/RXHn_OFFSET register bits [15:8] and [3:0]:

txvN/txhN/rxvN/rxhN_set[63:0] = TXVn/TXHn/RXVn/RXHn_SET[15:0]

txvN/txhN/rxvN/rxhN_spare[4:0] = TXVn/TXHn/RXVn/RXHn_OFFSET[15:11]

txvN/txhN/rxvN/rxhN_bias[2:0] = TXVn/TXHn/RXVn/RXHn_OFFSET[10:8]

txvN/txhN/rxvN/rxhN_off[3:0] = TXVn/TXHn/RXVn/RXHn_OFFSET[3:0]

tx/rx_com[63:0] = { TXCOM/RXCOM_BIAS2[15:0], TXCOM/RXCOM_BIAS1[15:0], TXCOM/RXCOM_CFG[15:0], TXCOM/RXCOM_TUNE[15:0] }

 

TRX Spare Register

Refer to the 'Register Map/Descriptions' or click here to see a detailed description of the register.

Requirements: IO_25

The TRX Spare (TX_RX_SPARE) register drives some spare pins (spare[15:0]) for TX/RX channels. By default, the value of the TX_RX_SPARE register is 0x0.

 

ADC Controller & Interface

Requirements: REG_56, REG_84, REG_60

The ADC Controller & Interface controls the operation of a successive-approximation-register (SAR) ADC. The whole sensor measurement sequence is triggered by

·       Writing 1 to any bit of the Sensor Activation 1 (ADC_SRQ1) register when ADC_CFG[10] (ADC_SEL_SOURCE) is set to 0. This action also sets the associated bit in the SENSOR_EN register, and this way enables the selected sensor(s).

·       Any write access to the Sensor Activation 1 (ADC_SRQ1) register when ADC_CFG[10] (ADC_SEL_SOURCE) is set to 1.

Requirements: ADC_5, ADC_1

The ADC will be enabled (adc_en signal driven high), when the ADC operation has been triggered. As shown in Figure 12 there is a delay of 64 oscillator clock cycles between the trigger and the adc_en signal going high in case the oscillator is not yet up and running.

Requirements: ADC_4

Once the ADC is enabled, CLK_CFG[15:12] (ADC_START_DELAY) determines the time (delay) in multiples of ADC clock (adc_clk) cycles between the time the ADC is enabled and the start of aquisition phase (adc_sp signal driven high). This is shown in Figure 16.

Figure 16: ADC timing diagram for single input source

Requirements: ADC_11

The ADC sampling (adc_sp) output signal is driven high for three (3) adc_clk cycles after the ADC operation has been started (adc_start signal going high) to track/hold the analog input voltage (Vin). Afterwards, adc_sp is driven low again.

Requirements: ADC_12, ADC_13

A 10-bit successive-approximation register (SAR) is used to supply an approximate digital code (adc_dac_in[9:0]) of Vdac to the ADC-internal DAC. The initial value of the SAR is first set to midscale (that is, 10'b1000000000, where the MSB is set to 1).

Requirements: ADC_14, ADC_15

If Vin is greater than Vdac, the comparator output (adc_1_bit) signal is driven high, and the MSB of the successive-approximation register remains at 1. Conversely, if Vin is less than Vdac, the comparator output is driven low and the MSB of the register is cleared to 0. The SAR control logic then moves to the next bit down, forces that bit high, and does another comparison. The sequence continues all the way down to the LSB.

Requirements: ADC_7

The resulting data (adc_data[9:0]) are stored in the associated ADC_DATA_CHn (n=1..32) register, whereas n corresponds to the channel coding in ADC_CFG[15:11]+1. For example, the data for TSENS1 (ADC_CFG[15:11]=0x14) are stored in ADC_DATA_CH21.

Requirements: ADC_16, ADC_17

If TSENS1 or TSENS2 is enabled, two consecutive measurements, TSENS_POL0 and TSENS_POL1, are executed and the result is caculated as follows:

TSENS1 = 0.5 * (TSENS_POL0 + TSENS_POL1)

TSENS2 = TSENS_POL1 - TSENS_POL0

If the result of TSENS2 is less than zero, 0x0 is stored. Refer to SENSOR_CFG[13:12] (TSENS_POL_CFG[1:0]) for the value of d_tsens_pol that is used for the first (POL0) and second (POL1) measurement.

Requirements: ADC_6

When averaging is enabled (ADC_CFG[9:7]>0), then the converted data are added and divided (right-shifted) by the number of iterations. Averaging for TSENS1, TSENS2 and PDETn (when ADC_CFG[6] (PD_DIFF_MODE) is set to 0, n=1..10) is done on the inner loop. For example,

TSENS1(avg) = 0.5 * (SUM( TSENS_POL0) + SUM( TSENS_POL1)) / n.

Whereas, the number (n) of iterations is determined by ADC_CFG[9:7] (ADC_AVG[2:0]).

Requirements: ADC_8

When conversion and averaging (if enabled) of all selected sources are completed, thethe ADC_DATA_CHn[10] (DONE) bits are set to 1, whereas n corresponds to the channel coding in ADC_CFG[15:11]+1. For example, when PDET1 (ADC_CFG[15:11]=0x0) is done, ADC_DATA_CH1[10] is set to 1.

Requirements: ADC_9, REG_52, REG_53, REG_58

The selection of the input source(s) is dependent on the setting of ADC_CFG[10] (ADC_SEL_SOURCE) as follows:

·       When set to 0, the sources are selected by the Sensor Activation 1 (ADC_SRQ1) register. ADC operation is done for all selected input sources in a loop from 0 to 15.

·       When set to 1, the source is selected by ADC_CFG[15:11] (ADC_SEL[4:0]).

Requirements: ADC_18, ADC_10, REG_64

Once the ADC operation of all selected channels is completed, the ADC will be disabled (adc_en signal driven low). When ADC_CFG[10] (ADC_SEL_SOURCE) is 0, additionally

·       the SENSOR_EN register is cleared (set to 0x0, all sensors disabled)

·       CHIP_INFO[5] (OSC_EN) is cleared (set to 0, oscillator disabled)

 

Look-up Tables

Requirements: SPI_66

There is a look-up table (LUT) with 128 entries at 16-bit per direction (TX/RX), polarization (H/V) and channel (1..4), which are 128 x 2 x 2 x 4 = 2,048 entries in total.

 

Initialization

Requirements: SPI_91, REG_88, REG_85

There are two ways to initialize the LUTs:

1.       Use a Local (LCL_LUT_WR) or Global (GBL_LUT_WR) LUT Write command - refer to sections Local LUT Write - LCL_LUT_WR and Global LUT Write - GBL_LUT_WR for more information - to write specific data to the LUT(s).

2.       Writing 1 to BIST[0] (SRAM_INIT) sets all bits to 0 of the LUT that is selected by BIST[4:3] (SRAM_SEL[1:0]).

Requirements: REG_89, REG_88, REG_90

When option 2 is selected and the initialization is completed, BIST[11] (SRAM_DONE) is set to 1. BIST[0] (SRAM_INIT) is not cleared automatically, but must be set to 0 by system software. BIST[11] (SRAM_DONE) is cleared (set to 0) if BIST[2:0] ({ SRAM_CRC, SRAM_BIST, SRAM_INIT }) is set to 3'b000.

 

Built-in Self Test

Requirements: LUT_1, REG_85, REG_87

F641X Digital supports an embedded memory self-test (BIST) for all LUTs. There can only be one LUT tested at a time, which is selected by BIST[4:3] (SRAM_SEL[1:0]). Setting BIST[1] (SRAM_BIST) to 1 triggers the BIST.

Requirements: LUT_2

The BIST uses the following test algorithm:

1.       w(5), up addressing order

2.       r(5)-w(a)-r(a), up addressing order

3.       r(a)-w(5)-r(5), up addressing order

4.       r(5)-w(a)-r(a), down addressing order

5.       r(a)-w(5)-r(5), down addressing order

6.       r(5), down addressing order

Whereas,

w(5): writing 0x5555_5555_5555_5555 into an address location.

r(5): reading 0x5555_5555_5555_5555 from an address location.

w(a): writing 0xAAAA_AAAA_AAAA_AAAA into an address location.

r(a): reading 0xAAAA_AAAA_AAAA_AAAA from an address location.

up addressing order: address sequence is in ascending order from 0 to 2^7-1.

down addressing order: address sequence is in descending order from 2^7-1 to 0.

Requirements: REG_89, REG_87, REG_90

When the BIST is completed, BIST[11] (SRAM_DONE) is set to 1. BIST[1] (SRAM_BIST) is not cleared automatically, but must be set to 0 by system software. BIST[11] (SRAM_DONE) is cleared (set to 0) if BIST[2:0] ({ SRAM_CRC, SRAM_BIST, SRAM_INIT }) is set to 3'b000.

Requirements: REG_91, REG_92

The number of errors that occured during a BIST is reported in BIST[10:8] (SRAM_ERR[2:0]) as follows:

·       0: No error.

·       4: One stuck-at '1' fault at an even or one stuck-at '0' fault at an odd bit location.

·       5: One stuck-at '1' fault at an odd or one stuck-at '0' fault at an even bit location.

·       7: More than one error occurred.

The error counter is cleared (set to 3'b000) when BIST[1] (SRAM_BIST) is set to 0.

 

Data Consistency Check

Requirements: SPI_78, REG_86, REG_85

There are two ways to check data consistency in the LUTs:

1.       Use a Local LUT Read (LCL_LUT_RD) command - refer to section Local LUT Read - LCL_LUT_RD for more information - to read specific data from the LUT(s).

2.       Writing 1 to BIST[2] (SRAM_CRC) triggers a cyclic redundancy check (CRC) of the content of the LUT (SRAM) that is selected in BIST[4:3] (SRAM_SEL[1:0]).

Requirements: LUT_3, LUT_4, LUT_5, LUT_6

The CRC component is implemented as a linear feedback shift register (LFSR). The polynomial used in the CRC component is CRC-16-CCITT (0x8810, x^16 +x^12 +x^5 +1) with a seed value of 0xFFFF. This is shown in Figure 17. The polynomial is fixed and not programmable. The LFSR is initialized (set to 0xFFFF) automatically before each CRC starts. The CRC componenet does not augment a zero-length message with 16 zero bits, which is known as CRC-16-CCITT-FALSE implementation.

Figure 17: LUT 16-bit CRC computation feedback shift register

The single data bit (crc_bit_in) that is used as an input to the 16-bit CRC computation feedback shift register is compiled from the LUT data (sram_rdata[63:0]) as follows:

for ch = 1 to 4

for i = 0 to 15

crc_bit_in = sram_rdata[16*ch-1-i]

i = i + 1

ch = ch + 1

Requirements: REG_89, REG_93, REG_65

When the CRC is completed, BIST[11] (SRAM_DONE) is set to 1 and the computed CRC value is shown in the SRAM CRC Result (CRC_RESULT) register for the LUT (SRAM) that is selected in BIST[4:3] (SRAM_SEL[1:0]). The default value of the CRC_RESULT register is 0xFFFF.

Requirements: REG_86, REG_90

BIST[2] (SRAM_CRC) is not cleared automatically, but must be set to 0 by system software. BIST[11] (SRAM_DONE) is cleared (set to 0) if BIST[2:0] ({ SRAM_CRC, SRAM_BIST, SRAM_INIT }) is set to 3'b000.

 

TRX Control

Introduction

Refer to section TRX Setting Registers and Figure 15 for setting up the TX/RX channels.

Requirements: IO_4, IO_7, REG_7, REG_11, REG_39, REG_40

The TX/RX channels get enabled if all of the following conditions are met:

·       Standby mode is disabled, meaning that neither SW_TRX[10] (STANDBY) is set to 1 nor the external stdby pin is driven high.

·       The associated polarization is enabled, meaning that SW_TRX[8] (V_POL_EN) is set to 1 for channels with vertical and SW_TRX[9] (H_POL_EN) is set to 1 for channels with horizontal polarization.

·       The associated operation mode is selected by either SW_TRX[7] (TRX) when CTRL_CFG[0] (TRX_CONT_MODE) is set to 1 or external TR pin otherwise.

·       Individual channels are enabled if they are controlled by CH_ENS register bits, and CTRL_CFG[3] (MANUAL_EN) is set to 1 accordingly. Otherwise (CTRL_CFG[3]=0), this requirement can be ignored.

If any of the above mentioned conditions is not met, the channels are disabled. This is shown in Figure 18 taking the example of vertical TX channel enable signals. This is approximate conceptual diagram shown for illustration purpose only.

Figure 18: TX/RX channel enable signal connections

Requirements: IO_5, REG_11, REG_13, REG_9, REG_37, REG_38

The BF switches get enabled if the operation mode is set to 'TX'. The selection of the operation mode is done with the

·       SW_TRX[1:0] ({ TRX_BFH, TRX_BFV }) bits when CTRL_CFG[1] (SYNC_TRX) is set to 0.

·       SW_TRX[7] (TRX) bit when both CTRL_CFG[1] (SYNC_TRX) and CTRL_CFG[0] (TRX_CONT_MODE) are set to 1 .

·       external tr pin when CTRL_CFG[1] (SYNC_TRX) is set to 1 and CTRL_CFG[0] (TRX_CONT_MODE) is set to 0.

This is shown in Figure 19. This is approximate conceptual diagram shown for illustration purpose only.

Figure 19: BF switch enable signal connections

Requirements: IO_6, REG_32

The external FEM switches get enabled if the SW_TRX[4] (SW_DRV_EN_TR) bit is set to 1. Dependent on SW_TRX[6] (SW_FEM_TR_MODE) either the positive (SW_TRX[6]=0) or negative (SW_TRX[6]=1) switch is enabled, and the drvenp and drvenn output signal is driven high respectively. This is shown in Figure 20. This is approximate conceptual diagram shown for illustration purpose only.

Figure 20: External FEM switch pin control signal connections

Requirements: REG_33

When an external FEM switch is enabled, dependent on the operation mode SW_TRX[5] (SW_DRV_TR_STATE) defines the level of the output pins as follows:

TRX

SW_TRX[5]

swcXy

1 (TX)

0

GND

1 (TX)

1

High/Low

0 (RX)

0

High/Low

0 (RX)

1

GND

Requirements: REG_11, REG_13, REG_35, REG_36

The selection of the operation mode (column 'TRX' in above table) is done with the

·       SW_TRX[3:2] ({ TRX_EXTH, TRX_EXTV }) bits when CTRL_CFG[1] (SYNC_TRX) is set to 0.

·       SW_TRX[7] (TRX) bit when both CTRL_CFG[1] (SYNC_TRX) and CTRL_CFG[0] (TRX_CONT_MODE) are set to 1 .

·       external tr pin when CTRL_CFG[1] (SYNC_TRX) is set to 1 and CTRL_CFG[0] (TRX_CONT_MODE) is set to 0.

 

Electrical Data/Timing

This section provides the timing requirements and switching characteristics of the external control signals, tr, tload, rload, and stdby.

Figure 21: External control signals timing requirements

Requirements: IO_47, IO_48

With reference to Figure 21, Table 2 shows the timing characteristics of the external control signals, unless otherwise noted.

Table 2: External control pins AC characteristics

No.

Parameter

Description

Condition

Min.

Max.

Unit

1

tph

Pulse width high

125

ns

2

tpl

Pulse width low

125

ns

3

tod

TX/RX channel output signals delay time

20

ns

 

DAC Control

The DAC output signal generation is shown in Figure 22. This is approximate conceptual diagram shown for illustration purpose only.

Figure 22: DAC output signals generation

Requirements: REG_96, REG_97, REG_101

When DAC n (n=1..10) is enabled, the DAC_ONn register provide the DAC input value for ON-mode. When it is disabled, dependent on the setting in the PA_LNA_DAC_CFG1 register either the DAC_PA_OFF (PA_LNA_CONTROL[n-1]=1) or DAC_LNA_OFF (PA_LNA_CONTROL[n-1]=0) register provides the DAC input value for OFF-mode.

Requirements: DAC_1, IO_7, IO_11

DAC n (n=1..10) gets disabled, and the dacN_en (N=n) output signals driven low, if any of the following conditions occur:

·       Standby mode is enabled, meaning that either SW_TRX[10] (STANDBY) is set to 1 or the external stdby pin is driven high.

·       the associated PA_LNA_ENn bit in the PA_LNA_DAC_CFG3 register is set to 0.

Requirements: DAC_2, IO_12, REG_95

If DAC n (n=1..10) is not disabled by any of the above mentioned conditions, it gets enabled and the dacN_en (N=n) output signal is driven high, if any of the following conditions is met:

·       When CTRL_CFG[0] (TRX_CONT_MODE) is set to 1 (SPI control), and

o    SW_TRX[7] (TRX) and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 1, and

§    CTRL_CFG[6] (TAL_RAL_EN) is set to 0, or

§    CTRL_CFG[6] (TAL_RAL_EN) is set to 1 and the TX DAC Load (TAL) bit in byte3 of a LCL_REG_WR or GBL_REG_WR command was set to 1.

o    SW_TRX[7] (TRX) and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 0 and

§    CTRL_CFG[6] (TAL_RAL_EN) is set to 0, or

§    CTRL_CFG[6] (TAL_RAL_EN) is set to 1 and the RX DAC Load (RAL) bit in byte3 of a LCL_REG_WR or GBL_REG_WR command was set to 1.

·       When CTRL_CFG[0] (TRX_CONT_MODE) is set to 0 (external pin control), and

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to either 0x1 or 0x2 or 0x3, and

§    tr and tload and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 1, or

§    tr and and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 0, and rload is set to 1.

o    PIN_CFG[6:2] (EXT_PIN_MODE[4:0]) is set to a value between 0x7 up to and including 0xC, and

§    tr and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 1, or

§    tr and PA_LNA_DAC_CFG1[n-1] (PA_LNA_CONTRL[n-1]) are set to 0.

Requirements: REG_98, REG_100

Otherwise, DAC n (n=1..10) is disabled. The DAC_STATUS[n-1] (DAC_STATE[n-1]) bit holds the status (ON/OFF-mode) of DAC n. The bit is read as 1 if the DAC is enabled (ON), and it is read as 0 if it is disabled (OFF). DAC_STATUS[15:14] ({ TX_DAC_EN, RX_DAC_EN }) bits hold the enable status of the DACs configured as 'PA' (TX_DAC_EN) and 'LNA' (RX_DAC_EN) in the PA_LNA_DAC_CFG1 register respectively. The respective bit is read as 1 if the DACs are enabled (ON), and it is read as 0 if they are disabled (OFF).

Requirements: IO_20, IO_40, IO_30, IO_31, IO_32, IO_33, IO_38

As shown in Figure 22, other DAC control signals are directly driven by register bits, such as

·       the value of PA_LNA_DAC_CFG1[15:10] register bits is output on dac_buff_ctrl[5:0] signals.

·       the value of PA_LNA_DAC_CFG2 register bits is output on dac_vh_ctrl[15:0] signals.

·       the value of PA_LNA_DAC_CFG4[15:12] (LNA_DAC_RES_CONTROL[3:0]) is output on dac_lna_res[3:0] signals.

·       the value of PA_LNA_DAC_CFG4[11:8] (PA_DAC_RES_CONTROL[3:0]) is output on dac_lna_res[3:0] signals.

·       the value of PA_LNA_DAC_CFG4[7:4] (LNA_DAC_REF_VOLTAGE[3:0]) is output on dac_lna_res[3:0] signals.

·       the value of PA_LNA_DAC_CFG4[3:0] (PA_DAC_REF_VOLTAGE[3:0]) is output on dac_lna_res[3:0] signals.

·       the value of DAC_BIAS_CTRL register is output on dac_bias_ctrl[15:0] signals.

 

External Pin Configuration

Requirements: REG_22, IO_22

For F641x, the value of the TX/RX Set registers and the DAC state can be modified by external tr, tload, and rload pins. Updates are triggered by either rising edge or logical change, and the action taken is dependent on the pin configuration selected in PIN_CFG[6:2] (EXT_PIN_MODE[4:0]).

Requirements: REG_13, REG_79

External pin configuration is enabled by setting CTRL_CFG[0] (TRX_CONT_MODE) to 0. This operation also overwrites the values of the HLUT_INFO and VLUT_INFO registers with the values of HLUT_START and VLUT_START registers respectively.

Figure 23 shows the underlying flowcharts for configurations 1-3 and 10-12 on the left side as well as for configurations 4-9 on the right side. Circles filled with light blue color are operating points. Circles filled with light brown color are transition states, and you must return to the previous operating point before changing to another operating point. Circles connected to an arrow indicate that an action is triggered with this transition. This, in return means that an arrow without a connected circle does not trigger any action.

Figure 23: External pin configuration flowcharts

Requirements: DAC_2

Table 3 lists the DAC states for the different operation points dependent on the selected pin configuration. Refer to the DAC output signal generation shown in Figure 22 for more information.

Table 3: External pin configuration operation points and DAC states

EXT_PIN_MODE [4:0]

Operation points ({ tr, tload, rload })

000

001

010

011

100

101

110

111

0

PA=OFF, LNA=OFF

1-3

PA=OFF LNA=OFF

PA=OFF LNA=ON

PA=OFF LNA=OFF

PA=OFF LNA=ON

PA=OFF LNA=OFF

PA=OFF LNA=OFF

PA=ON LNA=OFF

PA=ON LNA=OFF

4-6

PA=OFF, LNA=OFF

N/A

PA=OFF, LNA=OFF

N/A

7-9

PA=OFF, LNA=ON

N/A

PA=ON, LNA=OFF

N/A

10-12

PA=OFF LNA=ON

PA=OFF LNA=ON

PA=OFF LNA=ON

PA=OFF LNA=ON

PA=ON LNA=OFF

PA=ON LNA=OFF

PA=ON LNA=OFF

PA=ON LNA=OFF

13-31

PA=OFF, LNA=OFF

Requirements: IO_41, IO_42, IO_43, IO_44, IO_45, IO_46, REG_80, REG_81, REG_82, REG_83

Table 4 lists the actions that are triggered by transitions (rising edge) on external pins according to Figure 23. Refer to section TRX Setting Registers for more information.

Table 4: External pin configuration actions triggered by transitions

EXT_PIN_MODE [4:0]

Actions triggered by transition

2

3

4

5

0

N/A

1

Latch RX+1

Latch TX+1

N/A

N/A

2

Latch RX+1, TX+1

Latch TX+1, RX+1

N/A

N/A

3

Latch RX buffer

Latch TX buffer

N/A

N/A

4

Latch TX+1

Latch RX+1

Latch TX+1

Latch RX+1

5

Latch TX+1, RX+1

Latch RX+1, TX+1

Latch TX+1, RX+1

Latch RX+1, TX+1

6

Latch TX buffer

Latch RX buffer

Latch TX buffer

Latch RX buffer

7

Latch TX+1

Latch RX+1

Latch TX+1

Latch RX+1

8

Latch TX+1, RX+1

Latch RX+1, TX+1

Latch TX+1, RX+1

Latch RX+1, TX+1

9

Latch TX buffer

Latch RX buffer

Latch TX buffer

Latch RX buffer

10

Latch RX+1

Latch TX+1

N/A

N/A

11

Latch RX+1, TX+1

Latch TX+1, RX+1

N/A

N/A

12

Latch RX buffer

Latch TX buffer

N/A

N/A

13-31

N/A

Notes:

1.       Latch TX/RX+1: Increases the active LUT index by 1 and copies the data stored at this pointer (location) to the associated

a.   TXVn/RXVn_SET (n=1..4) buffer and active registers if SW_TRX[8] (V_POL_EN) is set to 1 (channels with vertical polarization are enabled).

b.   TXHn/RXHn_SET (n=1..4) buffer and active registers if SW_TRX[9] (H_POL_EN) is set to 1 (channels with horizontal polarization are enabled).

This is shown in Figure 24.

Dependent on the operation mode and enabled polarization, either HLUT_INFO [14:8] (tr=1, SW_TRX[9]=1) or VLUT_INFO[14:8] (tr=1, SW_TRX[8]) or HLUT_INFO[6:0] (tr=0, SW_TRX[9]) or VLUT_INFO[6:0] (tr=0, SW_TRX[8]) are automatically incremented by one to reflect the new active LUT index. When reaching the associated HLUT_STOP register value, HLUT_INFO is set to HLUT_START.

Figure 24: External pin configuration triggered action latch TX/RX+1

2.       TX/RX+1: Increases the active LUT index by 1 and copies the data stored at this pointer (location) to the associated

a.   TXVn/RXVn_SET (n=1..4) buffer registers if SW_TRX[8] (V_POL_EN) is set to 1 (channels with vertical polarization are enabled).

b.   TXHn/RXHn_SET (n=1..4) buffer registers if SW_TRX[9] (H_POL_EN) is set to 1 (channels with horizontal polarization are enabled).

Leaves the content of TXVn/TXHn/RXVn/RXHn_SET active registers unchanged. This is shown in Figure 25.

Dependent on the operation mode and enabled polarization, either HLUT_INFO [14:8] (tr=1, SW_TRX[9]=1) or VLUT_INFO[14:8] (tr=1, SW_TRX[8]) or HLUT_INFO[6:0] (tr=0, SW_TRX[9]) or VLUT_INFO[6:0] (tr=0, SW_TRX[8]) are automatically incremented by one to reflect the new active LUT index. When reaching the associated HLUT_STOP register value, HLUT_INFO is set to HLUT_START.

Figure 25: External pin configuration triggered action TX/RX+1

3.       Latch TX/RX buffer: Copies the content of the

a.   TXVn/RXVn_SET (n=1..4) buffer to active registers if SW_TRX[8] (V_POL_EN) is set to 1 (channels with vertical polarization are enabled).

b.   TXHn/RXHn_SET (n=1..4) buffer to active registers if SW_TRX[9] (H_POL_EN) is set to 1 (channels with horizontal polarization are enabled).

Leaves the active LUT index unchanged (0xN). This is shown in Figure 26.

Figure 26: External pin configuration triggered action latch TX/RX buffer

 

OTP Memory

F641x features an OTP memory that contains 128b of one time electrically programmed fuses (e-fuses).

Requirements: REG_45

There are two ways to read data from OTP memory:

1.       Using the OTP state machine. This option requires the oscillator clock to run.

2.       Set all OTP control signals manually through OTP_CFG register bits.

Programming is always done by setting the OTP control signals manually through OTP_CFG register bits.

 

OTP State Machine

Requirements: REG_17, REG_41, REG_42, REG_49

When set to 1, CHIP_INFO[4] (OTP_FSM_START) starts the OTP state machine to read all data from the OTP memory to the OTP_DATAn (n=1..8) registers. There is no error detection when reading data from the OTP memory. CHIP_INFO[4] is write-only and cleared automatically once the transfer of the OTP bits is completed. The status of CHIP_INFO[4] is mirrored in OTP_CFG[15]. After a power-on or hardware reset, the OTP_DATAn registers are cleared to 0x0.

Requirements: OSC_1

The oscillator gets enabled (osc_en going high) after writing 1 to CHIP_INFO[4]. There is a wait time of 63 cycles for the oscillator clock to stabilize before the OTP state machine is triggered (osc_clk_enable going high) and the OTP memory is enabled (otp_en going high). With the assertion of the read signal (otp_read going high), the 8 fuses of the selected bank (otp_bank_sel) are read, and the data output of the fuse module (otp_din) is captured in otp_data[n], whereas OTP_DATAn = { otp_data[n], otp_data[n-1] }. After all data are read, OTP memory and oscillator are disabled one after another. This is shown in Figure 27.

Figure 27: OTP Memory FSM read access

 

OTP_CFG Register Settings

Reading Fuses

Requirements: REG_44

With this sequence, a read of 8 bits is done simultaneously. The status of the selected fuses (otp_din[7:0]) is latched when OTP_CFG[13] (OTP_DIN_LATCH) is set to 1, whereas OTP_DATAn = { otp_data[n], otp_data[n-1] }.

Requirements: REG_46

The read current level is being selected by two bits OTP_CFG[3:2] (OTP_CUR[1:0]). These bits are used for examining the robustness of the read. The purpose of these two bits is to ensure a robust read over temperature and voltage range even when the test is done in a single voltage and at a room temperature. In normal operation OTP_CUR[1:0]=2'b01. If a burned fuse is measured one would like to perform a measurement in a lower current to ensure that the fuse is being read as a burned one even with the lower current. In this case OTP_CUR[1:0]=2'b00 will be selected as a robustness of the read test. This function ensures that there is enough margin for avoiding the need to test the module over the whole temperature range. When a “non-burned” fuse is read, one would like to perform a test with a higher current to ensure that the fuse is read as an un-burned fuse with higher current. In this case OTP_CUR[1:0]=2'b10 is selected as a robustness read test.

When reading from the OTP memory, the OTP_CFG register bits must be set according to the sequence shown in Figure 28, at the same time respecting the timing requirements set forth in Table 5. Even though there are no concrete timing requirements, OTP power-on reset (OTP_POR) and program enable (OTP_PROG) must be set before the OTP memory is enabled (OTP_EN set to 1).

Figure 28: OTP memory register read access (option 1)

With reference to Figure 28, Table 5 shows the timing characteristics of the OTP memory for read access, unless otherwise noted.

Table 5: OTP memory read AC characteristics

No.

Parameter

Description

Min.

Max.

Unit

1

Ten_rd

OTP_EN to OTP_READ setup time

1

us

2

Ts_rd_setup

OTP_CUR to OTP_READ setup time

1

us

3

Tbs_rd_set

OTP_WR_ADDRESS to OTP_READ setup time

50

ns

4

Tdout_delay

OTP_READ to otp_din delay

400

ns

5

Tread_min_width

OTP_READ minimum high pulse width

500

ns

6

Tread_bs_hold

OTP_READ to OTP_WR_ADDRESS hold time

10

ns

7

Tread_dis

OTP_READ to OTP_READ min delay

1

us

Another option for reading data from the OTP memory is shown in Figure 29. The OTP_READ is continuously asserted (set to 1) for the whole read access, and only OTP_RW_ACCESS is changing its value. The timing characteristics specified in Table 5 are applicable for this option, too.

Figure 29: OTP memory register read access (option 2)

 

Programming Fuses

With this sequence, a selected fuse is being burned. The selection of the fuse is done by the following register bits:

·       OTP_CFG[12:10] (OTP_WR_BIT[2:0]) selects one out of 16 8-bit banks.

·       OTP_CFG[9:6] (OTP_RW_ADDRESS[3:0]) selects the bit within the bank to be burned.

When programming the OTP memory, the OTP_CFG register bits must be set according to the sequence shown in Figure 30, at the same time respecting the timing requirements set forth in Table 6. Even though there are no concrete timing requirements, OTP power-on reset (OTP_POR) and enable (OTP_EN) must be set before or at the same time OTP read (OTP_READ) is set to 0.

Figure 30: OTP memory register programming

With reference to Figure 30, Table 6 shows the timing characteristics of the OTP memory for programming, unless otherwise noted.

Table 6: OTP memory write AC characteristics

No.

Parameter

Description

Min.

Max.

Unit

1

Trd_prog_setup

OTP_READ to OTP_PROG setup time

50

ns

2

Tsels

OTP_RW_ADDRESS to OTP_PROG setup time

50

ns

3

Tburn

OTP_PROG minimum high pulse width, programming interval

20

us

4

Tselh

OTP_PROG to OTP_RW_ADDRESS hold time

20

ns

5

Tpr_pr_delay

OTP_PROG to OTP_PROG setup time

1

us

6

Trd_prog_hold

OTP_READ to OTP_PROG hold time

1

us

 

Process Corner Monitor

Requirements: IO_24

F641x does not include a process corner monitor (PCM) module. All signals associated to PCM (pcm_*) are not used, and therefore output signals are tied low and input signals left unconnected.

 

Design for Testability

The F641X provides the following Design for Testability (DFT) features to enable and facilitate device tests as well as system level debugging:

·       Scan Test

·       IO Test

 

Scan Test

Requirements: DFT_2, DFT_3, DFT_4, DFT_5, DFT_6, DFT_7

Scan Test structures are inserted into the Digital Subsystem. The test structures contain the following features:

·       Controllability features are added to all inputs that don’t go directly to FFs.

·       All outputs to the Analog Subsystem are forced to benign state during Scan Test.

·       Observability FFs are added to all outputs that don’t come directly from a FF.

·       The shift mode frequency is 20MHz.

·       All scan clocks are switched off in normal mode (root clock gating).

·       The (target) stuck-at fault coverage is 98.0%.

Requirements: DFT_10

The following external pins are shared in Scan Test mode:

·       spi_csb is an input pin and works as low active scan reset.

·       add_in[2] is an input pin and works as high active scan enable.

·       spi_clk is an input pin and works as scan clock.

·       spi_mosi_in is an input pin and works as scan data 0 in.

·       spi_miso_out is an output pin and works as scan data 0 out.

·       add_in[0] is an input pin and works as scan data 1 in.

·       add_in[1] is an output pin and works as scan data 1 out.

Requirements: DFT_9

The following FFs are excluded from the scan chain:

·       CTRL_CFG[2] (SCAN_MODE) register bit.

Requirements: DFT_1, DFT_11, DFT_12

Scan test is enabled by setting CTRL_CFG[2] (SCAN_MODE) to 1. When scan test mode is enabled, there is no access to the SPI Interface anymore. To exit scan test mode, a power-on or hardware reset event must be initiated by a minimum 20ns logic low on the porb and rstb pin respectively.

 

IO Test

Overview

Requirements: DFT_13, DFT_15

IO test structures are inserted into the Digital Subsystem for spi_csb, spi_clk, spi_mosi_in, spi_mosi_out, add_in[3:0], tr, tload, rload and stdby. rstb is excluded from the IO test, because any input low value will issue a hardware reset.

Requirements: DFT_14

The test structures are used for testing and characterizing the following features:

·       General input and output functional operation.

·       Input and output voltage levels.

·       Input leakage current.

Requirements: DFT_16, DFT_17, DFT_18

IO test is enabled by setting CTRL_CFG[4] (IO_TEST) to 1. When IO test mode is enabled, there is no access to the SPI Interface anymore. To exit IO test mode, a power-on or hardware reset event must be initiated by a minimum 20ns logic low on the porb and rstb pin respectively.

 

Functional Description

This section describes some of the operations or implementation-defined features of the IO test. The topics in this section are:

·       Input Characteristics

·       Output Characteristics

 

Input Characteristics

For testing the input characteristics of the single-ended IO buffers, all input pins of the SPI interface (spi_csb, spi_clk, spi_mosi_in, add_in[4:0]) and control pins (tr, tload, rload, stdby) are OR-ed and output on spi_miso_out. This is shown in Figure 31.

Make sure that only one input pin is driven at a time and single-ended signaling (spib_lvds=0) is selected.

Figure 31: IO test input characteristics

For testing the input characteristics of the LVDS buffers, the setup shown in Figure 31 can be reused. This is shown in Figure 32 taking the SPI clock as an example. Make sure that except SCLK and ADD3 all other input pins are driven low and differential signaling (spib_lvds=1) is selected.

Figure 32: IO test LVDS buffer

 

Output Characteristics

The SPI data output (spi_miso_out) pin can be tested when testing the input characteristics.

The address output (add_in_1_data) pin can be tested when the internal chip address is programmed. Refer to section Addressing for more information.

 

Typical Applications

Introduction

This chapter covers three typical application examples that are targeted for F641X:

·       Single-Ended SPI and External Chip Address

·       Differential SPI and External Chip Address

·       Single-Ended SPI and Internal, Programmable Chip Address

 

Note      Configuring the device for differential SPI and internal, programmable chip address is not considered a use case.

 

Single-Ended SPI and External Chip Address

There is a maximum of 16 devices that are all connected to the same control signals (TR, TLOAD, RLOAD, RSTB, STBY) and a common, single-ended SPI bus. This is shown in the figure appended below. This is approximate conceptual diagram shown for illustration purpose only.

Single-ended SPI on the device is enabled when the SPIB/LVDS is set to 0. By default, external chip address setting on ADD0..3 is selected, and each chip gets a unique address ranging from 0 to 15. All devices are expected to work either in TX or RX mode.

Figure 33: Single-ended SPI and external chip address setting

 

Differential SPI and External Chip Address

There is a maximum of 4 devices that are all connected to the same control signals (TR, TLOAD, RLOAD, RSTB, STBY) and a common SPI bus. To increase the frequency for write operations, clock (SCLK) and data input (SDI) signals are layed out as differential signals, whereas the negative traces are connected to ADD3 and ADD2 respectively. Using ADD3..2 for differential SPI signaling reduces the number of external chip address pins to two (ADD1..0), and hence a maximum of 4 devices can only be addressed. This is shown in the figure appended below. This is approximate conceptual diagram shown for illustration purpose only.

Differential SPI on the device is enabled when the SPIB/LVDS is set to 1. By default, external chip address setting on ADD0..1 is selected, and each chip gets a unique address ranging from 0 to 3. All devices are expected to work either in TX or RX mode.

Figure 34: Differential SPI and external chip address setting

 

Single-Ended SPI and Internal, Programmable Chip Address

There is a maximum of 32 devices that are all connected to the same control signals (TR, TLOAD, RLOAD, RSTB, STBY) and a common, single-ended SPI bus. For programming the internal chip address, ADD0 of the first device (#1) is connected to SDI. ADD0 of all other devices (#2..n) is connected to ADD1 of the previous device (#1..n-1). ADD3..2 input pins are not used in this mode and can be set to any value. An example with 16 devices is shown in the figure appended below. This is approximate conceptual diagram shown for illustration purpose only.

Single-ended SPI on the device is enabled when the SPIB/LVDS is set to 0. For enabling and programming the internal chip address, refer to section Addressing. All devices are expected to work either in TX or RX mode.

Figure 35: Single-ended SPI and internal, programmable chip address setting

 

Theory of Operation

Sensor Measurements

 

Implementation

Technology

Requirements: TECH_1, TECH_2, TECH_3

F641X is developed based on Jazz Semiconductor SBC18HX process. Features of the SBC18HX technology are:

·       Core voltage: 1.8V +/- 10%

·       Junction temperature: -40degC to +125degC.

 

Interface/Signal Descriptions

Requirements: IO_1

Refer to 'Interface/Signal Description' in the left navigation menu for information about the interfaces and signals of the Renesas f641x_dig.

 

SPI Timing Constraints

SPI timing constraints are derived from the block diagram shown in Figure 36. This is approximate conceptual diagram shown for illustration purpose only.

Figure 36: SPI timing paths

 

Input Delay

Requirements: SPI_59

The SPI master drives data (MOSI) on the falling edge of SCLK. MOSI and SCLK shall be synchronized as much as possible, and MOSI output delay [tod(MOSI)] should be less than 1ns. The board delay is assumed to be 1ns for SCLK [tld(SCLK)] and 2ns for MOSI [tld(MOSI)] (considering a board delay skew between SCLK and MOSI of 1ns). F641X input buffer delay for both SCLK [tio(SCLK)] and SDI [tio(SDI)] is less than 1ns. Data is captured on the rising edge of SCLK. This is shown in Figure 37.

Figure 37: SPI input timing

With reference to Figure 3 and Table 1 the SDI (input data) setup time tsu(SDI) is specified as follows:

tsu(SDI) = tpl(SCLK) - tod(MOSI) - [tld(MOSI) - tld(SCLK)] - [tio(SDI) - tio(SCLK)] = 4ns - 1ns - [2ns - 1ns] - [1ns - 1ns] = 2ns

 

Output Delay

Requirements: SPI_60

F641X drives data (SDO) on the falling edge of SCLK. With a board delay of 1ns for SCLK [tld(SCLK)] and SDO [tld(SDO)] each, the data (MOSI) setup time [tsu(MOSI)] at the SPI master is 2ns. This is shown in Figure 38.

Figure 38: SPI output timing

With reference to Figure 3 and Table 1 the SDO (output data) delay time tod(SDO) is specified as follows:

tod(SDO) = tpl(SCLK) - tld(SCLK) - tld(SDO) - tsu(MISO) = 9ns - 1ns - 1ns - 2ns = 5ns

Whereas,

tod(spi_miso_out) = tod(SDO) - tio(SCLK) - tio(SDO) = 5ns - 1ns - 1ns = 3ns

 

History, Change Log

This section tracks the significant documentation changes that occur during this release. It does not indicate minor changes that were made for readability, formatting, and so on. It only indicates changes to requirements, functionality, features, and major rewrites.

Revision: 0.13 - July 31 2023

·       Information about channel select bits added for all LUT-commands.

·       Register map modified.

Revision: 0.12 - July 21, 2023

·       Figure 'External FEM switch pin control signal connections' corrected.

·       CRC-information added wrt. SPI_45 and LUT_6.

·       Sections 'Chip ID Register' and 'General Outline' and 'Implementation' and 'MBIAS' added.

·       (Target) stuck-at fault coverage added.

·       Description of TXVn/TXHn/RXVn/RXHn_SET active registers corrected, and TXVn/TXHn/RXVn/RXHn_SET output registers introduced.

Revision: 0.11 - July 10, 2023

·       Sections 'Electrical Data/Timing' for TRX Control and 'OTP Memory' and 'Sensor Enable Register' and 'SCRATCH Register' and 'Process Corner Monitor' added.

·       Description of 'TX/RX+1' corrected.

·       Descriptions modified for H/VLUT_INFO updates when external pin configuration is enabled.

·       CHIP_INFO[4] description added to section 'Overall Chip Configuration Register'.

Revision: 0.10 - July 4, 2023

·       add_in[4] added to IO test and dependency on spib_lvds considered.

·       SPI interface signals and connections added.

·       Information added about LVDS buffer test.

·       Sections 'External Pin Configuration' and 'Overall Chip Configuration Register' and 'Look-up Table Register' added.

·       Information added for a transfer of data from buffer to active register when external pin configuration is enabled.

·       Information added for a transfer of data from LUT to buffer and active register when external pin configuration is enabled.

·       Generation of txvN_set[15:0], txhN_set[15:0], rxvN_set[15:0], rxhN_set[15:0] output signals modified.

·       Information added about H/VLUT_INFO registers for LCL/GBL_FBS commands.

Revision: 0.09 - June 23, 2023

·       Sections 'TX/RX Registers' and 'TX/RX Channel Control' and 'TRX Switch Control Register' added.

·       Information added for CTRL_CFG register.

·       Information about TAL/RAL operation modified.

·       Information about BIST error counter corrected.

·       Information added for DAC control.

·       Information added about external pins that are shared in Scan Test mode, and excluded FFs.

Revision: 0.08 - June 19, 2023

·       Wording wrt. the selection of ADC input source(s) modified.

·       Information related to SPI_54 and SPI_100 removed.

·       Reference to SPI_47 added in SPI Core & Commands/Introduction.

·       Section 'Cyclic Redundancy Check' added for within section 'SPI Core & Commands'.

·       Information related to REG_65 added to section 'Look-up Tables/Data Consistency Check'.

·       Wording wrt. SW_TRX[9:8] bits in a LCL_FBS or GBL_FBS command modified.

·       Sections 'Control Register' and 'Design for Testability' added.

·       Description of byte3+… and byte4+… in a LCL_FBS and GBL_FBS corrected.

·       Register map updated.

·       Information modified related to SPI_67..68, SPI_101, ADC_8, SPI_21..22, SPI_55, SPI_70.

Revision: 0.07 - June 12, 2023

·       Sections 'BIST Register', 'Look-up Tables' and 'Theory of Operation' added.

·       Information related to SPI_36 added to SPI addressing.

·       Averaging method modified: outer -> inner loop.

Revision: 0.06 - June 6, 2023

·       Description about enabling the oscillator corrected in section 'ADC Clock Control Register'.

·       Further information added to section 'ADC Controller & Interface'.

·       SENSOR_CFG register information added.

Revision: 0.05 - May 26, 2023

·       Modifications made corresponding to the changes of SPI_10.

·       Information added according to SPI_101 for LCL/GBL_REG_WR that setting both DAC Load bits (TAL and RAL) to 1 is prohibited.

·       Information added according to SPI_103 that CTRL_CFG[11] (SHIFTREG_ADDR_EN) can only be cleared (set to 0) by power-on (porb) or hardware (rstb) reset signal.

·       CLK_CFG and ADC_CFG register information added.

·       ADC Controller & Interface information added.

Revision: 0.04 - May 23, 2023

·       Connection details added for differential SPI application example.

·       Number of devices increased to 32 in single-ended SPI and internal, programmable chip address setting application example.

·       SPI Electrical Data/Timing added.

·       Register map updated.

Revision: 0.03 - May 16, 2023

·       Register Map added.

·       Behavior of RF Load bits in LCL/GBL_REG_WR commands modified according to the update of requirements SPI_8..9.

·       TXVn_SET and TXHn_SET (n=1..4) replaced for TXn_SET (n=1..8) in LCL/GBL_REG_WR commands. The same applies for RXn_SET.

·       Typical application examples added.

·       SPI addressing added.

Revision: 0.02 - May 10, 2023

·       Preface and Global Fast Beam Steering (GBL_FBS) added.

·       Link to Technical Requirement Specification added in navigation menu.

Revision: 0.01 - May 8, 2023

First release.