DETAILED DESCRIPTION
During my second year of EE&IT studies in Germany some time ago, I got hooked on digital systems development using CPLDs. Since then, I have been tinkering with different types of kits, ranging from Digilent's high-end Zybo and Nexys academic development boards, to discrete Lattice Semiconductor GAL chips. Most of these kits, however, came at a significant cost, either in the kit itself, or required accessories, such as programmers. The best "bang-for-buck" options I encountered along the way were "minimum" development boards for Xilinx and Altera parts, albeit only featuring (relatively) large Spartan-6 or Cyclone series chips, respectively. I am yet to find a "proper" low-cost minimum development board for small PLDs.
The "XCtiny" development board is my take on creating a small, low-cost board featuring a Xilinx XC2C32A CoolRunner-II series CPLD, for quick and easy prototyping on a breadboard.
Design Outline
The "XCtiny" board is mainly aimed towards hobbyists and makers with "a bit" of experience with PLDs, as it only provides a "minimum" set of peripherals to get the device going. Programming is done via a JTAG header, so an external Programming Cable is required.
My first take on the design outline for this board was:
- low per-unit cost
- small PCB size
- breakout of available I/O pins
- breadboard-compatible pin header spacing
- on-board clock source
- on-board 1.8V and 3.3V supply
- power supply via Micro-B socket or breadboard pin
- JTAG header for programming
Programmable Logic Device
The board features an XC2C32A CPLD from Xilinx. This part is available in a 5mm x 5mm QFN package, which sits nicely between the pin header rows on either side of the PCB. While the device may not fit a full softcore MCU, the amount of logic resources should be plenty for small projects.
On-Board I/O Peripherals
As the number of available I/O pins on the selected package is limited to only 21, the amount of fixed, on-board peripherals is limited to a reset button connected to the global reset input of the CPLD, an 8MHz clock source connected to the "global clock" (GCK) input 0, and a slower ~8kHz clock at GCK1.
Power Supply
The CPLD requires a core voltage of 1.8V and both I/O banks support a range of supply voltages up to 3.3V. Power supply sequencing is recommended, but can be omitted to reduce the assembly cost. Due to the supply requirements of the oscillators, I/O bank 1 will be connected to 3.3V permanently, while the I/O bank 2 supply can be configured via a jumper link. Power to the board can be supplied via either a Micro-B socket, or an external supply of up to 6V via a breadboard pin.
Clock Source
The board comes with an 8MHz oscillator attached to global clock input 0 (GCK0). To reduce the number of clock dividers taking up PLD resources, an external 10-stage clock divider IC provides a ~8kHz clock signal to GCK1.
Programming
The board provides a JTAG header for programming the CPLD. An external programming cable will be required for download, options being:
- Xilinx "DLC10" Platform Cable USB II
- Digilent XUP USB-JTAG Programming Cable
- Digilent JTAG-HS3 Programming Cable
- Low-Cost Platform Cable USB compatible programmers (DLC9G, DLC9LP, ...)
- Low-Cost USB to JTAG cables based on FTDI ICs (untested, may not work with Xilinx iMPACT)
- Home-brew, Arduino-based JTAG programmer
In addition, this board provides a 2mm pin header to connect both USB data lines to a future daughterboard (work in progress).
Breadboard Pinout
The XCtiny can be placed on a breadboard to connect peripherals for prototyping. The remaining GPIOs on both I/O banks are fanned out to .100" pin-pitch headers at either side of the PCB, with additional pins for powering the board with up to 6V via an external power supply. The CPLD I/Os are not 5V tolerant - see the CPLD I/O User Guide (Xilinx UG445).
Part Options
To optimise the BOM cost, I looked up compatible, lower-cost alternatives distributed by LCSC. For the prototype shown in the picture gallery, I opted to use the more expensive primary parts from DigiKey. The PCBs were manufactured using JLCPCB's prototyping service.
Component | Primary | Alternative |
---|---|---|
CPLD | Xilinx XC2C32A-6QFG32C (32QFN) | — |
Voltage Regulator (single) 3.3V |
Micrel MIC5504-3.3YM5 (SOT-23) | NATLINEAR LN1134A332MR (SOT-23) |
Voltage Regulator (single) 1.8V |
Micrel MIC5504-1.8YM5 (SOT-23) | NATLINEAR LN1134A182MR (SOT-23) |
Micrel MIC5365-1.8YC5 (SOT-23) | ||
Reverse Polarity Protection |
SMC Diode Solutions DSS12U (SOD-123F) | SK B5817WL (SOD-123F) |
Small Signal Schottky Diode |
ON Semiconductor BAT54HT1G (SOD-323) | Leshan Radio LBAT54HT1G (SOD-323) |
Oscillator | Microchip DSC6001CI1A-008.0000 (3.2mm x 2.5mm DFN, [1a]) | Seiko Epson Q33310F70055100 (3.2mm x 2.5mm DFN, [1b]) |
Clock Divider | Nexperia 74AHC1G4210GW (5-TSSOP, [2]) | — |
TVS | ON Semiconductor SD05T1G (single, SOD-323) | Leshan Radio LESD3Z5.0CMT1G (dual, SOD-323) |
Ferrite | Samsung CIM21J202NE (0805) | TDK MPZ2012S102AT000 (0805) |
USB Micro-B Conn. | Amphenol FCI 10118194-0001LF (Micro B, [3]) | — |
Push Button | C&K PTS645SL50SMTR92 LFS (SMT, SPST-NO, 6mm) | HYP 1TS005F-2500-5001 (SMD, SPST-NO, 6mm) |
LED | Würth Elektronik 150080RS75000 (0502/2x1.25mm, Red) | Foshan NationStar Optoelectronics FC-2012HRK-620D (0805/2x1.25mm, Red) |
Notes
|
Development Resources
All Resources needed to get set up and running with the XCtiny board, as well as further design resources, will be available from our open GitHub repository:
Low-Cost Development Setup
For a low-cost setup for designing and programming logic circuits on the XCtiny, consider using:
- Xilinx ISE Design Suite 14.7 with a WebPack license (free, with certain limitations)
- XCtiny board with an XC2C32A CPLD (assembled price tbd)
- Platform Cable USB compatible programmer "DLC9LP" (~$25)
- Make sure it comes with a USB lead, and an adapter to connect dupont/jump wires.
- USB A to USB Micro-B cable for 5V power (~$5 ?)
- Breadboard
Authors
- /
- Active Participants
Components & Releases
Fabricate
Delete release
Are you sure you want to delete this Release?
This action cannot be undone.
Unable to download from CircuitMaker
You cannot download files inside CircuitMaker.
Please, open this page in browser and download file from there.
To copy hyperlink, press Ctrl+C with selected text below:
Comments ()