Friday, August 14, 2020

Making a small CPLD learning board with XC9536

XC9536 is a minimum CPLD of the XC9500 CPLD series. It come with 36 macro-cells with 800 available gates. This device is also available in 44-pin PLCC package, easily plug into the socket. Within the 44-pin package, there are 34 input output pins.  The flash technology allow us to program it up to 10,000 cycles via JTAG interface.

I make a small single sided development board for my personal use with some basic input output devices. However, this board could fit both XC9536 and XC9572 with a 44-pin PLCC package.

Making a small CPLD learning board with XC9536
XC9536 SPI and Arduino Test Codes

These are all available building block on this board:

  1. A regulated +5 V DC supply
  2. A single digit common cathode SSD
  3. A clock source fed by NE555 clocks at 60 Hz.
  4. Two tactile switches
  5. Four slide switches
  6. Eight LEDs
Making a small CPLD learning board with XC9536
A pre-etching PCB made with dry film process.

Making a small CPLD learning board with XC9536
The component side is marked with top silk to identify the list of soldering components.
The white legend is made from a UV solder mask ink I bought from E Bay. The components
holes is very hard to drill due to the hardness of the fiber FR-4 material. I use a CNC drill bit
to make it done.

Making a small CPLD learning board with XC9536
The PCB material is fiber FR-4 material. I made my own silk screen and photo-resist
process at home with some simple DIY equipment.





Making a small CPLD learning board with XC9536
A finished DIY PCB I made at home. I use photo sensitive dry film to make the PCB track.
The green solder mask is made from a UV photo sensitive solder mask ink I bought on-line
from E bay. The ink cost around 7 US dollars per 100 grams. 




Listing below is the design project.


Making a small CPLD learning board with XC9536
Main Sheet


Making a small CPLD learning board with XC9536
Sheet 2 contains the oscillator for the digital circuit.




Making a small CPLD learning board with XC9536
A finished PCB

Making a small CPLD learning board with XC9536
A 3D Model Of This Design

Making a small CPLD learning board with XC9536
A Fully Tested Board



Design file could be download here.


To burn the XC9536 flash, it requires a JTAG cable. With a desktop PC parallel port we can make a simple JTAG cable using a dozen of components. I post a post about JTAG cable on another WordPress site.

Using a double side PCB ordered from a PCB fab, could save a lot of time laminating a DIY PCB. It also reduce the jumper wires placement on the PCB. Ordering a PCB from an online PCB fab service is now cost a little. I modified this PCB to a double sides version. It will look more professional and more robust. Click here to download a newer modified version of this board. I share this project in PCB way website with link below.

PCB from=From pcbway

I put the image of this PCB from the Gerber file viewer.

Making a small CPLD learning board with XC9536
Components side from Gerber Viewer




Making a small CPLD learning board with XC9536
The Solder Side


VHDL Code:

  1. XC9536 LED Blinking Using VHDL
  2. XC9536 Switch And LED Interfacing With Delay Using VHDL
  3. XC9536 CPLD Ring Counter Example Using VHDL
  4. XC9536 CPLD LED Chasing Using VHDL
  5. XC9536 CPLD Binary To Hexadecimal Conversion Using VHDL
  6. XC9536 CPLD 7-Segment Up Down Counter Using VHDL
  7. XC9536 CPLD 8-Bit Serial In Parallel Out Shift Registers using VHDL
  8. XC9536 CPLD Simple Three-Digit Multiplexing Display Using VHDL
  9. XC9536 Counter with Two-Digit Multiplexing Display Using VHDL
  10. XC9536 Three Digits Counter Using VHDL
  11. XC9536 SPI Two-Digit Multiplexing Display Driver
  12. XC9536 CPLD HD44780 8-Bit LCD Interfacing Example Using VHDL

Github Source Code: XC9536 CPLD Prototype Board VHDL Source Code

No comments:

Post a Comment

Labels

ADC (10) Analog (14) Arduino (12) Atmega16 (19) Audio (2) AVR (20) Charger (1) Cortex-M0 (1) Counter (10) CPLD (25) Digital I/O (22) Display (34) EEPROM (2) Environment Sensor (1) esp8266 (2) Experiment Board (10) I2C (4) Interrupt (7) LCD (1) LDmicro (29) measurement and instrumentation (7) Microchip Studio (3) MikroC (1) One-Shot (3) OpAmp (1) PCB (31) PIC16 Microcontrollers (16) PIC16F877A (2) PIC16F887 MikroC (22) PLC (35) PWM (11) Regulator (1) RTC (2) Sensor (8) Shift Registers (5) SPI (5) Timer (34) UART (2) ultra-sonic sensor (1) USB (1) VHDL (21) xc8 (1) XC95108 (9) XC9536 (15) XC9572 (1) Xilinx (23) Xilinx ISE (22)