TS-7840 FPGA

From embeddedTS Manuals

The TS-7840 includes an Intel Cyclone IV FPGA. This is connected to the CPU over a x1 PCIe 2.0 lane, and provides additional perihperals and IO expansion to the system.

The onboard FPGA also permits customization such as adding quadrature encoders, PWM, additional serial ports, DMX, or other unique communication protocols. Please contact Technologic Systems if you require custom FPGA logic.

The FPGA registers are in PCIe BAR0 of 1e6d:7840, and use legacy level based interrupts for the shared peripherals.

All FPGA peripherals have drivers in our default BSP, but the FPGA registers can be manually accessed with fpga_peekpoke:

# 0x0 maps to the FPGA syscon, and register 0 of the syscon returns the FPGA revision
fpga_peekpoke 32 0x0

This will return the revision, such as 0x23.

FPGA memory map
Offset Description
0x0 FPGA Syscon
0x24 FPGA DIO Bank 0
0x40 FPGA DIO Bank 1
0x5c FPGA DIO Bank 2
0xa4 FPGA RNG
0x100 16550 #0 (COM1 RS-232)
0x108 16550 #1 (COM2 RS-232)
0x110 16550 #2 (GPS)
0x1118 16550 #3 (Nimbelink)
0x120 16550 #4 (Iridium Modem)
0x128 16550 #5 (DSL Modem Debug)
0x130 16550 #6 (Mikrobus UART)
0x138 16550 #7 (RS-485)
0x140 16550 #8 (XBEE)
0x200 SJA1000 compatible CAN controller
0x400 SPI controller
0x800 SDcore