Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Custom_table_size_100

Page properties
hiddentrue
idComments


2023-02-072.2
  • added column 'Firmware release' in 'Document Change History' table
  • changed template revision from list to table
ma
-2.1
  • Fix problem with pdf export and side scroll bar
-
-2.0
  • add fix table of content
  • add table size as macro
  • removed page initial creator
-




Overview

CPLD Device with designator U5: LCMX02-1200HC.

Feature Summary

  • JTAG
  • UART
  • I2C
  • Power
  • Boot Mode
  • Reset
  • SD
  • LED

Firmware Revision and supported PCB Revision

See Document Change History

Product Specification

Port Description

Name / opt. VHD NameDirectionPinPullup/DownBank PowerDescription

UART_TXD

in77UP3.3V

UART0 TX / Sends data to MIO13. MIO13 is connected to B2B JB1 Pin 98. ( HSS console ). In hardware is connected to FT230XQ (U12) chip pin TXD indirectly.

UART_RXDout84UP3.3V

UART0 RX / Recieves data from MIO12. MIO12  is connected to B2B JB1 Pin 100. ( HSS console ). In hardware is connected to FT230XQ (U12) chip pin RXD indirectly.

MIO12in100NONE3.3VSends data to UART_RX / In hardware is connected to B2B JB1-pin 100.
MIO13out99NONE3.3VRead data from UART_TX / In hardware is connected to B2B JB1-pin 98.
FT_B_RXout138NONE3.3VFTDI UART RX (UART1 RX) / In hardware is connected to FTDI chip U4 pin 33. (Linux console)
FT_B_TX / BDBUS0in139UP3.3VFTDI UART TX (UART1 TX) / In hardware is connected to FTDI chip U4 pin 32. (Linux console)
MIO14out105NONE3.3VReceives data from FT_B_TX of FTDI chip / In hardware is connected to B2B JB1-pin 91.
MIO15in95NONE3.3VSends data to FT_B_RX of FTDI chip / In hardware is connected to B2B JB1-pin 86.
CM0in76UP3.3V

DIP switch S2-2 / used as JTAG Selection/ If CM0 set to high (S2-2 OFF) → Access to CPLD of module otherwise access to FPGA of module.

CM1in75UP3.3VDIP switch S2-1 / Used to change PGOOD pin state /If CM1 set to high (S2-1 OFF) → PGOOD = '1' otherwise '0'
EN1out81UP3.3VB2B Power Enable / In firmware  EN1 is connected to 3.3V permanently.
FLED_1inout28NONE3.3V LED (D3-red) / Shows the status of PGOOD or shows the FT_B_TX (UART1 RXD).
FLED_2inout27NONE3.3VLED (D4-green) / Shows the status of PGOOD or shows the FT_B_RX (UART1 TXD).
ULED1out117NONE3.3VLED (D1-red) / Shows the status of CM0 or shows the UART_RXD (UART0 RX).
ULED2out115NONE3.3VLED (D2-green) / Shows the status of CM0 or shows the UART_TXD (UART0 TX).
PHY_LED1 out86DOWN3.3V Shows the status of NOSEQ and MIO0 signals.
PHY_LED1R out92NONE3.3V Shows the status of NOSEQ and MIO0 signals.
PHY_LED2 out85NONE3.3VShows the status of NOSEQ and MIO0 signals.
PHY_LED2R out91NONE3.3V Shows the status of NOSEQ and MIO0 signals.   
JTAGEN---120---3.3VEnable JTAG access to CPLD for Firmware update (zero: normal IOs, one: CPLD JTAG access). Selectable over S2-3
M_TCKin131NONE3.3VJTAG from/to FTDI
M_TDIin136NONE3.3VJTAG from/to FTDI
M_TDOout137NONE3.3VJTAG from/to FTDI
M_TMSin130NONE3.3VJTAG from/to FTDI
TCK_Bout1NONE3.3VJTAG from/to Module
TDI_Bout3NONE3.3VJTAG from/to Module
TDO_B / C_TDOin2UP3.3VJTAG from/to Module
TMS_Bout4NONE3.3VJTAG from/to Module
MIO0in94UP3.3VThis pin is connected to DIP swith S2-4 and B2B JB1 Pin 88. This signal is forwarded to MODE signal in firmware.
MIO9 out96NONE3.3V SD_CD signal is directed to this signal in firmware, if PGOOD = '1'. / In hardware is connected to B2B JB1 pin 92.
MODEout83NONE3.3VDip switch S2-4 (MIO0) is connected to MODE pin. This pin in hardware is connected to  B2B JB1 pin 31.
NOSEQ inout78UP3.3VNOSEQ can be set or reset by i2c interface in linux console, if an i2c interface is prepared already in linux. 
PGOOD inout82UP3.3VPGOOD can be set or reset via CM1 ( dip switch S2-1). In hardware is connected to B2B JB1 pin 29.
PROGMODEout104UP3.3VEnable B2B Module JTAG access to CPLD for Firmware update
RESINout119NONE3.3VModule Reset pin on B2B JB2 pin 17.
S1in114UP3.3VPush Button / Used as module Reset. In hardware is connected to S1 reset pushbutton.
SDA / MIO11inout97UP3.3VI2C Data
SCL /MIO10in98UP3.3VI2C Clock
X0inout39NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X1inout38NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X2inout40NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X3inout41NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X4inout42NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X5inout43NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X6inout44NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X7inout45NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X8inout47NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X9inout48NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X10inout49NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X11inout50NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X12inout52NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X13inout54NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X14inout55NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X15inout56NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X16inout59NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
X17inout60NONE3.3VThis port can be read or written via GPIO_input register and GPIO_output register respectively.
BCBUS0in122NONE3.3Vcurrently_not_used
BCBUS1in121NONE3.3Vcurrently_not_used
BDBUS2in133NONE3.3Vcurrently_not_used
BDBUS3in132NONE3.3Vcurrently_not_used
BDBUS4in128NONE3.3Vcurrently_not_used
BDBUS5in127NONE3.3Vcurrently_not_used
BDBUS6in126NONE3.3Vcurrently_not_used
BDBUS7in125NONE3.3Vcurrently_not_used
ADBUS4in143NONE3.3Vcurrently_not_used
ADBUS7in142NONE3.3Vcurrently_not_used
ACBUS4in141NONE3.3Vcurrently_not_used
ACBUS5in140NONE3.3Vcurrently_not_used
USB_OCin73NONE3.3VThis port can be read via GPIO_input register.

E_SD_CMD

in110NONE3.3Vcurrently_not_used

E_SD_SCLK

in109NONE3.3Vcurrently_not_used

E_SD_DAT0

in106NONE3.3Vcurrently_not_used

E_SD_DAT1

in107NONE3.3Vcurrently_not_used

E_SD_DAT2

in112NONE3.3Vcurrently_not_used

E_SD_DAT3

in111NONE3.3Vcurrently_not_used
SD_SEL out113NONE3.3VSet to GND / currently_not_used

SD_CD

in93UP3.3VThis port is forwarded to PHY_LED2 LED. If SD card is plugged , PHY_LED2 is on. This port forwarded to MIO9 too, if PGOOD = '1'.
DUMMYout74NONE3.3VNo Connect 

Functional Description

Dip Switch

DIP Switch S2
S2-1S2-2S2-3S2-4Description
CM1CM0JTAGENMIO0JTAGEN set carrier board CPLD into the chain for firmware update.

JTAG

JTAG signals routed directly through the CPLD to module in B2B connector.

TEB2000 CPLD can be selected with JTAGEN (DIP switch S2-3). Access between CPLD of the TEB2000 board and the plugged module same as TEM0007 can be multiplexed via JTAGEN (S2-3).  Logical one is for accessing to CPLD of TEB2000 (OFF) and  logical zero is for the module (ON).

Access to FPGA of the plugged module or its CPLD  can be switched with PROGMODE which is driven by CM0 (DIP switch S2-2). CM1 and CM0 are pulled up in CPLD internally.

S2-2S2-3CM0 (PROGMODE) (S2-2)JTAGEN (S2-3)Description
OFFOFF11Access to TEB2000 CPLD
OFFON10Access to CPLD of B2B Module
ONOFF01Access to TEB2000 CPLD
ONON00Access to FPGA of B2B Module

EN1

EN1 is set to one in firmware permanently.

NOSEQ

NOSEQ pulled up to 3.3V. NOSEQ can be set or reset by i2c interface in linux console, if an i2c interface is already prepared for the i2c interface in linux. 

NOSEQConnected toRelated command in linux consoleDescription
'0'GPIO_output[16]
i2cset -y <related bus> 0x20 0x02 0x00
It is depends on the linux design. For example → i2cset -y 0 0x20 0x02 0x00
'1'GPIO_output[16]
i2cset -y <related bus> 0x20 0x02 0x01
It is depends on the linux design. For example → i2cset -y 0 0x20 0x02 0x01


To read the NOSEQ status, GPIO_input[16] must be read like the following instruction: 


i2cget -y <related bus> 0x20 0x02

For example --> i2cget -y 0 0x20 0x02

Note that the bus number depends on the linux design and can be varied for different designs.

PGOOD

PGOOD pulled up to 3.3V in CPLD internally. PGOOD pin can be set or reset by user. If CM1 set to high (S2-1 OFF) , PGOOD will be set to high otherwise PGOOD is set to low.

PGOODConditionDescription
'0'

CM1 = '0'

Dip switch S2-1 ON
'1'CM1 = '1'Dip switch S2-1 OFF

MODE

This pin can be controlled with dip switch S2-4 (MIO0).

MODEConditionDescription
'0'MIO0 = '0'Dip switch S2-4 ON
'1'MIO0 = '1'Dip switch S2-4 OFF

Reset

There is two reset switchs on the board (S1 and S6). The S6 is a soft reset button (SRST) that is not directed to CPLD chip. The S1 signal is connected to CPLD chip and is used in firmware code to create a reset signal. RESIN signal is the output reset signal of the CPLD and  is driven by S1 push button. The S1 push button is debounced.

SignalDesignatorConnected toActive LevelDescription
SRSTS6B2B JB2 pin 56Active lowThis signal is not used in CPLD firmware.
S1S1CPLD chip pin 114Active lowThis signal is used in CPLD firmware.
PinCPLD PinConnected toDescription
RESIN119B2B JB2 Pin 17Active-low

Boot Mode

For plugged Polarfire SoC module same as TEM0007 the boot mode can not be selected via MODE and PGOOD pins, because polarfire SoC boot mode can be selected  only via HSS design for TEM0007.

UART 

MIO14 is driven by BDBUS0 (FTDI RX). BDBUS1 (FTDI TX) is driven by MIO15 . MIO13 is driven by UART_TXD. UART_RXD is driven by MIO12.

UART 0  (HSS Console)
CPLD UART Input PinCPLD PinConnected toCPLD UART Output PinCPLD PinConnected toDescription
MIO12100B2B-JB1-100UART_RXD84U8-Pin 11
UART_TXD77U8-Pin 13MIO1399B2B-JB1-98
UART 1 (Linux Console)
CPLD UART Input PinCPLD PinConnected toCPLD UART Output PinCPLD PinConnected toDescription
FT_B_TX139FTDI Chip U4 Pin 32MIO14105B2B-JB1-91
MIO1595B2B-JB1-86FT_B_RX138FTDI Chip U4 Pin 33


Scroll Title
title-alignmentcenter
titleUART

draw.io Diagram
bordertrue
diagramNameTEB2000_UART_Blockdiagramm
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1071
revision5


SD

SD selection (SD_SEL) is set to GND (SD Card slot). MIO9 is switched to SD_CD (Card Detect) and its status depends on SD_CD .

On-board LEDs

LEDDesignatorLED StatusConditionDescription
ULED1 (Red)D1Fast blink redAccess to CPLD of module ( CM0 = '1') → S2-2 = OFF
Connected to UART1_RX Otherwise
ULED2 (Green)D2Fast blink greenAccess to CPLD of module ( CM0 = '1') → S2-2 = OFF
Connected to UART1_TX Otherwise
FLED_1 (Red)D3Fast blink redPGOOD = '0' ( CM1 = '0' ) → S2-1 = ON
Connected to UART0_RX Otherwise
FLED_2 (Green)D4Fast blink greenPGOOD = '0' ( CM1 = '0' ) → S2-1 = ON
Connected to UART0_TX Otherwise
LED

Designator

LED StatusConditionDescription
PHY_LED1 (Green LED Anode, Yellow LED Cathode) /

PHY_LED1R (Green LED Cathode, Yellow LED Anode)

J14B





Fast blink yellowNOSEQ = '0' and MIO0 = '0'
In Linux console enter: i2cset -y 0 0x20 0x02 0x00 and S2-4 = ON*
Slow blink yellowNOSEQ = '0' and MIO0 = '1'
In Linux console enter: i2cset -y 0 0x20 0x02 0x00 and S2-4 = OFF*
Fast blink yellow green NOSEQ = '1' and MIO0 = '0'
In Linux console enter: i2cset -y 0 0x20 0x02 0x01 and S2-4 = ON*
Slow blink yellow greenNOSEQ = '1' and MIO0 = '1'
In Linux console enter: i2cset -y 0 0x20 0x02 0x01 and S2-4 = OFF*

PHY_LED2 (Green LED Cathode, Yellow LED Anode) /

PHY_LED2R (Green LED Anode, Yellow LED Cathode)





J14CONSD card plugged (SD_CD = '0')
OFFOtherwise

*Note: The related bus number of I2C can be varied and it depends on the Linux design. For example the bus number is 0 here.

I2C to GPIO

I2C to GPIO is a subsystem in firmware of CPLD that provides an i2c interface that writes received data to GPIO_output 8 bit registers or reads  8 bit GPIO_input registers and send read data to i2c bus. 

Scroll Title
title-alignmentcenter
titleI2C to GPIO

draw.io Diagram
bordertrue
diagramNameTEB2000_I2C_to_GPIO_Blockdiagramm
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth1071
revision3

I2C bus is connected to MIO10 ( SCL signal) and MIO11 (SDA signal). MIO10 to MIO15 are direct connection between CPLD of TEB2000 and FPGA on the module (for example TEM0007) through B2B connector. If in FPGA design exists  no i2c interface for MIO10 and MIO11, this block will be unused. More information about MIO10 to MIO15 are shown in the following table for TEM0007 modules and TEB2000 carrier board:

B2B PinB2B JB1-96B2B JB1-94B2B JB1-100B2B JB1-98B2B JB1-91B2B JB1-86
Carrier boardLabel / Firmware functionLabel / Firmware functionLabel / Firmware functionLabel / Firmware functionLabel / Firmware functionLabel / Firmware functionDescription
TEB2000MIO10 / I2C-SCLMIO11 / I2C-SDAMIO12 / UART0_RXMIO13 / UART0_TXMIO14 / UART1-TXMIO15 / UART1-RXMIO10 and MIO11 are used in CPLD firmware as I2C SCL and SDA  respectively.
B2B PinB2B JM1-95B2B JM1-93B2B JM1-99B2B JM1-97B2B JM1-92B2B JM1-85
Module Label / Chip pinLabel / Chip pinLabel / Chip pinLabel / Chip pinLabel / Chip pinLabel / Chip pinDescription
TEM0007I2C_CON_SCL / A3I2C_CON_SDA / E3UART_CON_TX / C2UART_CON_RX / D3UART_RX / H2UART_TX / H5MIO10 and MIO11 are already set in test_design of TEM0007 as SCL and SDA respectively.

I2C to GPIO registers access methods

I2C to GPIO subsystem has 4 output and 4 input 8 bit registers. These registers can be written or read in linux  as shown in the following tables:

GPIO input registerAddressRead command in Linux*Description
GPIO_input[7:0]0x00
i2cget -y 0 0x20 0x00
0x20 is device address. ( I2C to GPIO address).
GPIO_input[15:8]0x01
i2cget -y 0 0x20 0x01
0x20 is device address. ( I2C to GPIO address).
GPIO_input[23:16]0x02
i2cget -y 0 0x20 0x02
0x20 is device address. ( I2C to GPIO address).
GPIO_input[31:24]0x03
i2cget -y 0 0x20 0x03
0x20 is device address. ( I2C to GPIO address).
GPIO output registerAddressWrite command in Linux*Description
GPIO_output[7:0]0x00
i2cset -y 0 0x20 0x00 <8bit data>
0x20 is device address. ( I2C to GPIO address). 0x00 is register address.
GPIO_output[15:8]0x01
i2cset -y 0 0x20 0x01 <8bit data>
0x20 is device address. ( I2C to GPIO address). 0x01 is register address.
GPIO_output[23:16]0x02
i2cset -y 0 0x20 0x02 <8bit data>
0x20 is device address. ( I2C to GPIO address). 0x02 is register address.
GPIO_output[31:24]0x03
i2cset -y 0 0x20 0x03 <8bit data>
0x20 is device address. ( I2C to GPIO address). 0x03 is register address.

*The related bus number can be varied with Linux design. For example the bus number is 0 here.

I2C to GPIO registers

GPIO input registers

The following port or signals can be read via GPIO_input[ ] registers. 

GPIO_input[7:0] (address 0x00)
GPIO input bitPort/SignalDescription
0CPLD_REVISION [0]*
1CPLD_REVISION [1]*
2CPLD_REVISION [2]*
3CPLD_REVISION [3]*
4CPLD_REVISION [4]*
5CPLD_REVISION [5]*
6CPLD_REVISION [6]*
7CPLD_REVISION [7]*

*Note: CPLD_REVISION[7:0] = Firmware version

GPIO_input[15:8] (address 0x01)
GPIO input bitPort/SignalDescription
8X0
9X1
10X2
11X3
12X4
13X5
14X6
15X7
GPIO_input[23:16] (address 0x02)
GPIO input bit Port/SignalDescription
16NOSEQ
17X8
18X9
19X10
20X11
21X12
22X13
23X14
GPIO_input[31:24] (address 0x03)
GPIO input bitPort/SignalDescription
24X15
25X16
26X17
27CM0
28CM1
29PGOOD
30S1
31USB_OC
GPIO output registers

 The following port or signals can be written via GPIO_output[ ] registers.

GPIO_output[7:0] (address 0x00)
GPIO output bitPort/SignalDescription
0Reserved
1Reserved
2Reserved
3Reserved
4Reserved
5Reserved
6Reserved
7Reserved
GPIO_output[15:8] (address 0x01)
GPIO output bitPort/SignalDescription
8X0
9X1
10X2
11X3
12X4
13X5
14X6
15X7
GPIO_output[23:16] (address 0x02)
GPIO output bitPort/SignalDescription
16NOSEQ
17X8
18X9
19X10
20X11
21X12
22X13
23X14
GPIO_output[31:24] (address 0x03)
GPIO output bitPort/SignalDescription
24X15
25X16
26X17
27Reserved
28Reserved
29Reserved
30Reserved
31Reserved

Appx. A: Change History and Legal Notices

Revision Changes

  • REV01
    • I2C port added.

    • I2C to GPIO component added.

    • NOSEQ can be changed via I2C port.

    • UART1 port added. This board has two UART ports. (UART0 and UART1)

    • New construction for UART0 and UART1 serial interfaces

    • Generic parameter CPLD_REVISION added.

    • JTAG timing correction

    • LED states and related ports/signals are changed. --> SD_CD, NOSEQ, MIO0, PGOOD, CM0 and CM1

    • New mapping for related ports/signals to GPIO_input and GPIO_output registers

    • New Ports are defined according to the schematic or revision 1

Document Change History

To get content of older revision  got to "Change History"  of this page and select older document revision number.

Page properties
hiddentrue
idComments
  • Note this list must be only updated, if the document is online on public doc!
  • It's semi automatically, so do following
    • Add new row below first

    • Copy "Page Information Macro(date)" Macro-Preview, Metadata Version number, Author Name and description to the empty row. Important Revision number must be the same as the Wiki document revision number Update Metadata = "Page Information Macro (current-version)" Preview+1 and add Author and change description. --> this point is will be deleted on newer pdf export template

    • Metadata is only used of compatibility of older exports


DateDocument RevisionCPLD Firmware RevisionSupported PCB RevisionAuthorsDescription

Page info
modified-date
modified-date
dateFormatyyyy-MM-dd

Page info
infoTypeCurrent version
prefixv.
typeFlat

REV01

REV01 

Page info
modified-user
modified-user

  • REV01 release
  • Firmware release (SC-PGM-TEB2000-001_CARRIER-00x01_20240418.zip.zip

Appx. B: Legal Notices

Include Page
IN:Legal Notices
IN:Legal Notices




Scroll Only


HTML
<style>
.wiki-content .columnLayout .cell.aside {
width: 0%;
}</style>



Scroll pdf ignore


Custom_fix_page_content

Table of contents

Table of Contents
outlinetrue