LimeSDR-USB hardware description: Difference between revisions

Democratising Wireless Innovation
Jump to navigation Jump to search
No edit summary
No edit summary
Line 242: Line 242:
Green – TCXO is controlled from phase detector and is locked to external reference clock
Green – TCXO is controlled from phase detector and is locked to external reference clock
|}
|}
=== Low speed interfaces ===
LimeSDR-USB board low speed interfaces are divided into FX3 and FPGA groups that are presented in Figure 3, Figure 8 and Figure 9. The latter block diagrams depict the main ICs, corresponding IC pin numbers, data buses and serial protocol addresses.
[[File:LimeSDR-USB_1v4_FX3_Low_Speed_Interfaces_BD.png|thumb|center|600px|Figure 8. FX3 low speed interfaces block diagram]]
LimeSDR-USB board peripherals are controlled via USB interface. All commands that comes from USB are firstly processed by FX3 controller. If I2C peripheral (temperature sensor, port expander, clock generator) on FX3_I2C bus must be controlled this can be done directly. FX3_I2C is also connected to FPGA.
[[File:LimeSDR-USB_1v4_FPGA_Low_Speed_Interfaces_BD.png|thumb|center|600px|Figure 9. FPGA low speed interfaces block diagram]]
There are several SPI interfaces with their slave devices:
* FX3_SPI: FX3 hardware SPI cannot be used if 32-bit GPIF interface is configured. If any slave device on this bus must be accessed then FX3 switches to 16-bit GPIF. This bus has these slave devices:
** FX3 firmware Flash
** FPGA configuration flash: using switch (IC9) flash memory is switched from FPGA to FX3_SPI BUS. Then flash content is updated and flash memory is switch back to FPGA. This is done when needs to update FPGA gateware in flash memory.
* FPGA_SPI0, FPGA_SPI1: these SPI interfaces are connected to FPGA and slave devices can be accessed by transferring data to internal FPGA NIOS CPU. This bus has these slave devices:
** RFIC (FPGA_SPI0)
** Phase detector (FPGA_SPI1)
** DAC (FPGA_SPI1)
* Internal FPGA SPI module: FPGA has its own SPI module and can be controlled as regular SPI device. By using FPGA SPI it is possible to control FPGA modes etc.
* BRDG_SPI: this is alternative SPI interface for FX3 and currently is not used.
In the table below are listed USB3.0 controller (FX3) pins, schematic signal name, FPGA interconnections and I/O standard.

Revision as of 12:59, 23 August 2017

LimeSDR-USB Board Key Features

The LimeSDR-USB development board provides a hardware platform for developing and prototyping high-performance and logic-intensive digital and RF designs using Altera’s Cyclone IV FPGA and Lime Microsystems transceiver.

The LimeSDR-USB has two different USB connector versions. LimeSDR-USB 1v4 is micro USB type B connector (socket) based, as shown in Figure 1. LimeSDR-USB 1v4s is a USB type A connector (plug) based, as shown in Figure 2.

Figure 1. LimeSDR-USB 1v4 – micro USB type B connector board


Figure 2. LimeSDR-USB 1v4s – USB type A connector board


LimeSDR-USB board features:

  • USB Interface
    • Cypress FX3 Super Speed USB 3rd generation controller
  • FPGA Features
    • Cyclone IV EP4CE40F23C8N device in 484-pin FPGA
    • 39’600 logic elements
    • 1134 Kbits embedded memory
    • 116 embedded 18x18 multipliers
    • 4 PLLs
  • FPGA Configuration
    • JTAG mode configuration
    • Active serial mode configuration
    • Possibility to update FPGA gateware by using FX3 (USB)
  • Memory Devices
    • 2x 1Gbit (64M x 16) DDR2 SDRAM
    • 4Mbit flash for FX3 firmware
    • 16Mbit flash for FPGA gateware
    • 2 x 128K (16K x 8) EEPROMs for LMS MCU firmware, LMS MCU data
    • 1 x 64K (8K x 8) EEPROM for FX3 data
  • Connections
    • microUSB3.0 (type B) connector or USB3.0 (type A) plug
    • Coaxial RF (U.FL) connectors
    • FPGA GPIO headers (0.05” pitch)
    • FPGA and FX3 JTAG connectors (0.05” pitch)
    • 6..12V DC power jack and pinheader
    • Fan connector (3.3V)
  • Clock System
    • 30.72MHz VCTCXO (precision: ±1 ppm initial, ±4 ppm stable).
    • Possibility to lock VCTCXO to external clock or tune VCTCXO by onboard DAC
    • Programmable clock generator for the FPGA reference clock input or LMS PLLs
  • Board Size 60mm x 100mm (2.36” x 3.94”)


LimeSDR-USB board overview

LimeSDR-USB board version 1.4 picture with highlighted major connections presented in Figure 3. There are three connector types – data and debugging (USB3.0, FPGA GPIO and JTAG), power (DC jack and external supply pinheader) and high frequency (RF and reference clock).

Figure 3. LimeSDR-USB 1v4 Development Board Connectors


Board components description listed in the Table 1 and Table 2.

Table 1. Board components
Featured Devices
Board reference Type Description
IC1 FPRF Field programmable RF transceiver, LMS7002M
IC8 FPGA Altera Cyclone IV, EP4CE40F23C8N 484-BGA
IC13 USB 3.0 microcontroller Cypress FX3 Super Speed USB 3rd generation controller, CYUSB3014
Miscellaneous devices onboard
IC9 IC Quad SPDT switch, TS3A5018PW
IC6 IC Temperature sensor, LM75
IC19 IC SPI to I²C bridge, SC18IS602BIPW (not mounted)
IC17 IC I²C port expander with 4 push-pull outputs and 4 inputs, MAX7322ATE+
Configuration, Status and Setup Components
IC9 IC Quad SPDT switch, TS3A5018PW
R51, R52, R53, R54, R56, R57, R59, R60 0 Ohm resistor FPGA (IC31) MSEL[3:0]. Default mode: Active Serial Standard configuration
R115, R116, R117 10 kOhm resistor USB3.0 microcontroller (IC13) boot configuration (PMODE0[2:0]) resistors. Default mode: SPI boot, On Failure - USB Boot
R125, R127, R128 10 kOhm resistor USB3.0 microcontroller (IC13) crystal/clock frequency selection (FSLC[2:0]) resistors. Default mode: 19.2MHz crystal
J16 JTAG chain pin header USB3.0 (IC6) microcontroller’s debugging pin header, 0.05” pitch
J17, R122 Pin header USB3.0 microcontroller boot source (Flash memory or USB), 0.05” pitch jumper or 0402 0R resistor. In normal operation jumper or resistor must be placed.
SW1 Push-button USB3.0 microcontroller reset button
J11 JTAG chain pin header FPGA programming pin header for Altera USB-Blaster download cable, 0.05” pitch
LEDS1 Red-green status LEDs User defined FPGA indication LED1 (near board edge if SMD; on the bottom if through-hole), User defined FPGA indication LED2 (farther board edge if SMD; on the top if through-hole)
LEDS2 Red-green status LEDs FX3 (USB) status indication LED (near board edge if SMD; on the bottom if through-hole), board power indication LED (farther board edge if SMD; on the top if through-hole)
General User Input/Output
J12 Pin header 8 FPGA GPIOs, 0.05” pitch
J13, J14 Pin header 3.3V fan connection pin headers, 0.1” and 0.05” pitch respectively


Table 2. Board components
Memory Devices
Board reference Type Description
IC11, IC12 DDR2 memory 1Gbit (64M x 16) DDR2 SDRAM with a 16-bit data bus
IC2, IC3 EEPROM 128K (16K x 8) EEPROM, LMS7002 MCU firmware, LMS7002M data
IC18 EEPROM 64K (8K x 8) EEPROM, connected to main I2C bus
IC10 Flash memory 16Mbit Flash for FPGA configuration
IC15 Flash memory 4Mbit Flash for FX3 firmware
Communication Ports
J15 USB3.0 connector microUSB3.0 (type B) connector or USB3.0 (type A) plug
Clock Circuitry
XO1, XO2 VCTCXO 30.72MHz voltage-controlled crystal oscillator
IC24 IC Programmable clock generator for the FPGA reference clock input and RF boards
IC23 IC ADF4002 phase detector
IC22 IC DAC for TCXO (XT4) frequency tuning
J19 U.FL connector Reference clock input
J18 U.FL connector Reference clock output
Power Supply
J20 DC input jack External 6V..12V DC power supply
J21 Pin header External 6V..12V DC power supply and main internal power rail


LimeSDR-USB board version 1.4 picture with highlighted top components are presented in Figure 4.

Figure 4. LimeSDR-USB Development Board Top Components


LimeSDR-USB board version 1.4 picture with highlighted bottom components is presented in Figure 5.

Figure 5. LimeSDR-USB Development Board Bottom Components


LimeSDR-USB board architecture

The heart of the LimeSDR-USB board is Altera Cyclone IV FPGA. Its main function is to transfer digital data between the PC through a USB3.0 connector. The block diagram for LimeSDR-USB board is presented in the Figure 6.

Figure 6. LimeSDR-USB Development Board Block Diagram


LMS7002M based connectivity

The interface and control signals are described below:

  • Digital Interface Signals: LMS7002 is using data bus LMS_DIQ1_D[11:0] and LMS_DIQ2_D[11:0], LMS_ENABLE_IQSEL1 and LMS_ENABLE_IQSEL2, LMS_FCLK1 and LMS_FCLK2, LMS_MCLK1 and LMS_MCLK2 signals to transfer data to/from FPGA. Indexes 1 and 2 indicate transceiver digital data PORT-1 or PORT-2. Any of these ports can be used to transmit or receive data. By default, PORT-1 is selected as transmit port and PORT-2 is selected as receiver port. The FCLK# is input clock and MCLK# is output clock for LMS7002M transceiver. TXNRX signals sets ports directions. For LMS7002M interface timing details refer to LMS7002M transceiver datasheet.
  • LMS Control Signals: these signals are used for optional functionality:
    • LMS_RXEN, LMS_TXEN – receiver and transmitter enable/disable signals connected to FPGA Bank 8 (VDIO_LMS_FPGA; 2.5V).
    • LMS_RESET – LMS7002M reset connected to FPGA Bank 7 (VDIO_LMS_FPGA; 2.5V).
  • SPI Interface: LMS7002M transceiver is configured via 4-wire SPI interface; FPGA_SPI0_SCLK, FPGA_SPI0_MOSI, FPGA_SPI0_MISO, FPGA_SPI0_LMS_SS. The SPI interface controlled from FPGA Bank 8 (VDIO_LMS_FPGA; 2.5V).
  • Main I2C Interface: used to control external clock synthesizer, port expander, temperature sensor, EEPROM, I2C-SPI bridge on LimeSDR-USB board. The signals FX3_I2C_SCL, FX3_I2C_SDA connected to FX3. Also these I2C lines are connected via 0R resistors to FPGA Bank 8 (VCC3P3; 3.3V) lines FPGA_I2C_SCL, FPGA_I2C_SDA.
  • LMS I2C Interface: can be used for LMS EEPROM content modifying or for debug purposes. The signals LMS_I2C_SCL, LMS_I2C_DATA connected to FPGA Bank 8 (VDIO_LMS_FPGA; 2.5V).


SDRAM

LimeSDR-USB board has two 128MB (16bit bus) DDR2 SDRAM ICs (AS4C64M16D2-25BCN) connected to double data rate pins on Cyclone IV 1.8V Bank 2, Bank 3 and Bank 4. RAM chips are connected to separate memory controllers so RAM chips works in dual channel mode. The memory can be used for data manipulation at high date rates between transceiver and FPGA.


USB 3.0 controller

Software controls LimeSDR-USB board via the USB3 microcontroller (CYUSB3014 (FX3)). The data transfer to/from the board, SPI communication, FPGA configuration is done via the USB3 controller. The controller signals description showed below:

  • FX3_DQ[31:0] – FX3 32-bit GPIF data interface is connected to Cyclone IV 1.8V Bank 5.
  • FX3_CTL[8:0], [12:11] – FX3 GPIF interface control signals.
  • FX3_PCLK – GPIF interface clock. Clock from FX3 is fed to FPGA.
  • FX3_SPI interface is used to program FX3 firmware flash or FPGA configuration flash memory.
  • FX3 I2C bus is connected to the main I2C bus.
  • PMODE[2:0] – boot options, by default boot from SPI and USB boot is enabled. If J17 jumper is present or R122 is soldered FX3 will boot from IC8 flash memory if correct firmware exists.
  • SW1 – resets FX3
  • J16 – FX3 JTAG programming/debugging pin header.


Indication LEDs

LimeSDR-USB board comes with four dual colour (red and green (RG)) indication LEDs. These LEDs can be SMD or 3mm TH with dedicated right angle plastic holders. By default, dual colour SMD LEDs are populated and through hole LEDs are unpopulated. If required, the user can fit dual colour TH LEDs.

Figure 7. LimeSDR-USB indication LEDs


Each LED has it is own function. Most of LEDs are connected to FPGA and their function can be changed. Default LEDs functions and other information are listed in the table below.

Table 3. Default functions of LEDs
Board reference Schematic name Board label Type Description
LED8, LEDS2.2 GND, VCC3P3 PWR Power status LED is hardwired to VCC3P3 power rail. Steady green light indicates presence of 3.3v.
LED2, LEDS2.1 FX3_LED_R, FX3_LED_G FX3 USB activity USB3.0 (FX3) controller, slave FIFO (GPIF) interface module and NIOS CPU activity indication:

Green – idle, Red – busy.

LED1, LEDS1.1 FPGA_LED1_G, FPGA_LED1_R FPGA1 Clock status Blinking indicates presence of TCXO clock.

Colour indicates status of FPGA PLLs that are used for LMS digital interface clocking: Green – both PLLs are locked; Red/Green – at least one PLL is not locked.

LED7, LEDS1.2 FPGA_LED2_G, FPGA_LED2_R FPGA2 TCXO control mode No light – TCXO is controlled from DAC

Red – TCXO is controlled from phase detector and is not locked to external reference clock Green – TCXO is controlled from phase detector and is locked to external reference clock


Low speed interfaces

LimeSDR-USB board low speed interfaces are divided into FX3 and FPGA groups that are presented in Figure 3, Figure 8 and Figure 9. The latter block diagrams depict the main ICs, corresponding IC pin numbers, data buses and serial protocol addresses.

Figure 8. FX3 low speed interfaces block diagram

LimeSDR-USB board peripherals are controlled via USB interface. All commands that comes from USB are firstly processed by FX3 controller. If I2C peripheral (temperature sensor, port expander, clock generator) on FX3_I2C bus must be controlled this can be done directly. FX3_I2C is also connected to FPGA.

Figure 9. FPGA low speed interfaces block diagram

There are several SPI interfaces with their slave devices:

  • FX3_SPI: FX3 hardware SPI cannot be used if 32-bit GPIF interface is configured. If any slave device on this bus must be accessed then FX3 switches to 16-bit GPIF. This bus has these slave devices:
    • FX3 firmware Flash
    • FPGA configuration flash: using switch (IC9) flash memory is switched from FPGA to FX3_SPI BUS. Then flash content is updated and flash memory is switch back to FPGA. This is done when needs to update FPGA gateware in flash memory.
  • FPGA_SPI0, FPGA_SPI1: these SPI interfaces are connected to FPGA and slave devices can be accessed by transferring data to internal FPGA NIOS CPU. This bus has these slave devices:
    • RFIC (FPGA_SPI0)
    • Phase detector (FPGA_SPI1)
    • DAC (FPGA_SPI1)
  • Internal FPGA SPI module: FPGA has its own SPI module and can be controlled as regular SPI device. By using FPGA SPI it is possible to control FPGA modes etc.
  • BRDG_SPI: this is alternative SPI interface for FX3 and currently is not used.

In the table below are listed USB3.0 controller (FX3) pins, schematic signal name, FPGA interconnections and I/O standard.