complex programmable logic gadgets (CPLDs) contain the building blocks for numerous 7400-serries logic ICs. total circuits can be designed on a PC as well as then uploaded to a CPLD for immediate implementation. A microcontroller linked to a CPLD is like a microcontroller paired with a reprogrammable circuit card as well as a completely stocked electronics store.
At very first we weren’t sure of the wide charm as well as application of CPLDs in hobbyist projects, however we’ve been convinced. A custom logic gadget can get rid of days of reading datasheets, discovering the perfect logic IC combination, as well as then waiting on chips to arrive. Circuit boards are easier with CPLDs since a single chip with programmable pin placement can replace 100s of private logic ICs. Circuit errors can be corrected by uploading a new design, rather than etching as well as stuffing a new circuit board. CPLDs are fast, with reaction times starting at 100MHz. in spite of their extreme versatility, CPLDs are a mature innovation with chips starting at $1.
We’ve got a home-etchable, self programming advancement board to get you started. Don’t worry, this board has a serial port interface for working with the CPLD, as well as doesn’t need a separate (usually parallel port) JTAG programmer.
Intro to CPLDs
When to utilize a CPLD
Consider utilizing a CPLD when a style requires more than one 7400 series logic ICs. A CPLD will be cheaper, faster, as well as can be programmed with your perfect pin-out configuration for easier PCBs.
Use a CPLD in tricky styles that may need a number of iterations. It’s easier to style a new circuit in software application as well as upload it to the CPLD than it is to design, etch, as well as stuff a new circuit board.
For maximum speed as well as immediate response, select a CPLD. The difference in speed is amazing; CPLDs begin at a 100MHz, while microcontrollers respond to interrupts at a few MHz. CPLD styles type circuits that react to outside stimulus, reactions happen almost instantaneously. A microcontroller executes code to react to events, even interrupt routines have comparatively high latency.
CPLD vs FPGA
FPGAs are much better understood than CPLDs, however they share many characteristics. This analogy isn’t perfect, however we like it: where FPGAs are a reprogrammable processor core, a CPLD is a reprogrammable circuit card or breadboard. FPGAs replace microcontrollers, memory, as well as other components. CPLDs take in logic ICs, as well as work well with a microcontroller.
Manufacturers
Altera as well as Xilinx, the biggest CPLD manufacturers, are much better understood for their FPGAs. Lattice Semiconductor is one more big CPLD manufacturer with less neighborhood following. Atmel makes pin-compatible versions of old industry-standard CPLDs.
If you plan to work at 5volts, your choices are limited. Xilinx XC9500 CPLDs are still offered as new old stock, however expense four times more than newer 3.3volt equivalents. Atmel’s ATF1502 series works at 5volts, however they don’t offer a free advancement environment.
At 3.3volts there’s more options, however new CPLDs progressively have a core that runs at 2.5volts, 1.8volts, or lower. The Altera MAXII as well as the Xilinx XC9500XL series are most likely the most prominent 3.3volt CPLDs. Xilinx likewise makes the CoolrunnerII CPLD, however it only is available in a TQFP bundle as well as needs a separate 1.8volt supply for the core.
Packages
Most manufacturers offer one or two CPLDs in a hobbyist friendly PLCC 44 package, though this is starting to disappear. PLCC is an SOIC-sized surface install chip with pins on all four sides. PLCC44 sockets are commonly offered in through-hole as well as SMD versions. Unfortunately, newer CPLD households are starting to get rid of the PLCC bundle as well as offer only 44 pin as well as larger TQFP chips, such as Xilinx’s CoolrunnerII.
Development environments
Most manufacturers offer a free advancement atmosphere that supports style entry utilizing simple schematics, in addition to Verilog or VHDL. many won’t support the latest FPGAs in the free version, however we only requirement the CPLD parts anyway. Altera has Quartus, Xilinx has ISE, as well as Lattice has ispLever. Atmel has ProChip designer for the ATF15xx series, however they only offer a 6month trial permit — which they wouldn’t really provide us.
Programmers
The advancement board we present doesn’t requirement a separate JTAG programmer since the pic microcontroller already programs the CPLD. If you want an outside programmer, the cheapest are the parallel port programmers: Parallel cable III for Xilinx as well as BytleBlaster for Altera. affordable clones, as well as schematics, are offered at SparkFun. The OpenOCD is a generic USB JTAG programmer that will work with many CPLDs, FPGAs, as well as ARMs.
Bizim seçimimiz
We ultimately settled on the Xilinx XC9500XL series since it haD ucuz bir gelişme seti, tüm tasarım uygulamasından önce JTAG programcısını test etmek için kullanabiliriz.
Digilent’ten DO-CPLD-DK, bir XC9572XL, bir CoolRunnerii, paralel port programcısını içerir. Nu Horizons, 40 $ için bazı eski RoHS tasarımları var, ancak Kredi Geçmişi Kart İşleme Scriptlerinde Özensiz Değişken Tip Kullanımı nedeniyle, çevrimiçi olarak sipariş veremedik. Bunu telefonla yapmaya çalıştık, ancak bir web sitesi arızası sırasında bile telefonda biraz sipariş vermeyi reddetti. Sonunda, yeni Horizon’un fahiş nakliye ücretlerini de dahil ettikten sonra DIGITEY (# 122-1512-ND) tam maliyet ödemek daha ucuzdu. Ancak normalde bundan bahsetmeyecektik, ancak tahtayı satın almak için sadece iki yer ile en büyük olasılıkla deneyimimize dikkat etmeye değer.
CPLD İlerleme Kurulu
Tam boy şematik bir resim için (PNG) için hemen buraya tıklayın. PCB’nin yanı sıra PCB, Cadsoft Kartal’ın ücretsiz sürümünü kullanıyor. Bu iş için tüm veriler, makalenin sonunda bağlantılı iş arşivine dahil edilmiştir.
Devre
Bir PIC 24FJ64GA002 Mikrodenetleyici (IC1), bireyi ve ayrıca CPLD’ye programlama arayüzü sağlar. Periferik PIN SEÇİMİ işlevinin kurulu yönlendirmesini gerçekten kolaylaştırdığı için bu 4’ü çok fazla işten faydalanıyoruz. Daha fazla ayrıntı için PIC24F’ye girişimizi inceleyin. PIC, bir PC seri portuyla etkileşime girmesi gerekiyor, bu yüzden uygun fiyatlı bir maks3232 RS232 alıcı-verici ekledik. Seri arayüz bir USB-> seri adaptörü ile çalışmalıdır.
CPLD (IC3) seçeneğimiz, bir Xilinx XC9572XL (PDF), resimin yanı sıra diğer birçok bileşen arasında bağlanır. PIC arasında ve ayrıca CPLD’nin içindeki yeniden programlanabilir mantığı kullanan diğer talaşlar arasında sonsuz bir devre yelpazesi üretebiliriz. PIC, CPLD’yi bir PC seri portundan gönderilen kodla programlayacaktır, ancak JTAG pimlerini hala basit bir hata ayıklama için bir başlığa getirdik.
Bir DS1085 dijital programlanabilir osilatör (IC4), 8khz ile 133MHz arasında saat 10khz artışlarla saat frekansları üretir. Bu, daha önce kapladık DS1077’ye son derece benzerdir, ancak tüm frekanslar arasında bile adımlar vardır. DS1085’in 5 volt beslemeye (VR2) ihtiyacı var. I2C arayüzü de aynı şekilde 5volt’ta çalışır, bu yüzden onu 5VOLT toleranslı pic pimlerine bağladık. Bunun yerine 3.3Volt 66MHz 1085L’sini kullanmak ve 5volt kaynağını ortadan kaldırır.
Devrenin çoğunu güçlendirmek için ucuz bir 3.3Volt SOT223 voltaj regülatörü (VR1) kullandık. Bir yavaş 1085L 3.3Volt osilatörü kullanırsanız 5VOLT besleme (VR2) hariç tutulabilir.
CPLD’ler genellikle bir bellek denetleyicisi olarak kullanılır, bu nedenle ilerleme kurulunda 32K SRAM (IC5) dahil ettik. 5 volt toleranslı girişli 3.3volt mandalı, bellek girişlerini çok çeşitli dış gerilimlere (IC6) arayüzü. Mandal girişleri, 1mohm direnç ağıyla (RN1) düşük tutulur. Bu bölümü, yaklaşan bir makalede yoğun bir şekilde tartışacağız.
Pcb
Kurul bir yarı tek taraflı tasarımdır. Bir dizi uzlaşma yaptık, böylece bu son derece deneysel PCB’yi kendimiz prototip edebiliriz. Yönetim Kurulu’na bu tahtayı evde aşındırmak isteyebilecek diğer kalıpları için sunuyoruz. PCB’yi bir tahta evine gönderirseniz, ‘gerçek’ bir çift taraflı tahta oluşturmadan önce bu sorunları düzeltmeye çalışın.
CPLD’nin bir güç pimi tamamen ayrılan bir kapasitör eksiktir; Bu bölgeye bir kapasitör koymak için bir yöntem yoktu. Bir CPLD ayrışma kapasitörünün yanı sıra SRAM dekuplaj kapasitörünün de deliğin parçalarıdır. Bu delikli parçaları kullanmak, birkaç jumper kablosundan kurtuldu.
Tahtanın arkasındaki jumper telleri, harika stil uygulamaları yerine, tek taraflı üretim için optimize edilmiştir. Güç otobüsünü arkadaki lehimleyerek çift taraflı bir tahta taktık. Orijinal bir çift taraflı tahta stili, geçiş sinyal yollarını önlemek için güç veriyolunu yola ve eksik dekuplaj kapasitörlerini içermelidir.
Bir yüzey yükleme PLCC yonga soketi kullandık, ancak delikten delikli bir sürüm kesinlikle çok daha iyi bir fikirdir. SMD versiyonunun lehimlenmesi basit olsa da, ancak bir kabus olduğu ortaya çıktı. CPLD’nin mümkün olan en havalı sunum için kurulun önündeki olacağını gerçekten istedik. Kaplamalı delikli uygun bir iki taraflı tahta önden delikli bir sokete sahip olabilir, ancak bu 1 taraflı prototip kartımızla mümkün değildi.
Parça listesi
Tam boy bir yerleşim şeması (PNG) için hemen buraya tıklayın.
Bölüm
Değer
İc1
PIC25FJ64GA002 (SOIC)
İc2
Max3232cse (Soic-n)
İc3
XC9572XL-10PCG44C (PLCC)
–
PLCC44 soketi, SMD
İc4
DS1085 veya DS1085L (SOIC)
İc5
32KX8, 3.3V, SRAM (SOJ)
İc6
74LVT573D (SOIC)
Vr1
3.3V regülatörü, LD1117S33 (SOT223)
Vr2
5V regülatörü, LD1117S50 (SOT223)
C1-11,13-17
0.1UF Dekuplaj kapasitörleri (0805)
C12
0.01UF kapasitör (0805)
C15,16
0.1UF Dekuplaj kapasitörleri (delikten)
C18
10UF TANTALUM KAPASITOR (A)
R1,2
390ohm direnç (0805)
R3-5
2000ohm direnç (0805)
Rn1
1mohm direnç ağı (9 pin)
Led1,2
Led (0805)
X1
DB9 Kadın Seri Bağlantı Noktası Konnektörü *
J1
2.1mm güç jakı
ICSP, JTAG, SV1
0.1 “pin başlığı, dik açı
S1
Dokunsal Anahtarı (DTSM-6)
Firma yazılımı
Firmware, PIC C30 derleyicisinin ücretsiz sunum sürümünü kullanan C’de yazılmıştır. PIC 24F serisine girişimizde bu resimle çalışmak hakkında her şeyi keşfedin. Ürün yazılımı, makalenin sonundaki iş arşivine dahil edilmiştir.
Sonsuz derleme-program-program-test döngüleri olmadan tahtadaki donanımla etkileşimde bulunmak için süper basit bir yöntemi istedik. DS1085 Saat Çipine (I2C), CPLD Programlama Arabirimi (JTAG), ayrıca CPLD’ye 3 kablo (SPI) arayüzü olan basit bir ASCII terminali arayüzü olan Otobüs Korsan Yazılımının özel bir versiyonunu yaptık. Ürün yazılımı ile kullanılan basit sözdizimindeki arka plan için otobüs korsan öğreticisini inceleyin.
Orijinal otobüs korsan yazılımı, aynı pimleri paylaşan birçok protokolü ele alır. CPLD versiyonu için, pim atamalarını ilerleme tahtası üzerindeki bağlantıları şekillendirmek için değiştirdik. Kullanılmayan modülleri ve seçenekleri de ortadan kaldırıyoruz.
CPLD BLINKY LED Örnekleri
Xilinx’in İMKB’nin ilerleme ortamında bir dizi stil hazırladık. Şemalar, PIN yerleşimi dosyaları, ayrıca derlenmiş stiller (XSVF), makalenin sonunda bağlı iş arşivinde bulunur. İMKB’nin tam bir açıklaması, bu makalenin aralığının ötesindedir; Yardım verilerinin bu örnekleri yapması için yeterince yararlı olduğunu keşfettik.
İlk stil, LED’i, CPLD’nin PIN 8’e bağlanır.
XSVF dosyasını hazırla
XSVF, bu uygulama notunda (PDF) Xilinx tarafından açıklandığı gibi sıkıştırılmış bir JTAG programlama formatıdır. XSVF, Xilinx cihazlarının programlanmasıyla sınırlı değildir, ayrıca tipik bir BSDL JTAG anlam dosyası sağlayan herhangi bir çip türü için hazırlanabilir.
Efekt Programlama aracını, Hedef Aygıt-> Darbeyi yapılandırın altındaki ISE Style Suite İş Panelinden açın.
Bir limit tarama dosyası oluşturmak için seçimi seçin ve türünü XSVF’ye ayarlayın.
XSVF çıkışını bir veri adını verin yanı sıra, bir cihaz eklemeniz istendiğinde derlenmiş bir CPLD resim (ex1.jed) ekleyin.
Tek bir cihaz içeren bir JTAG zinciri görmelisiniz.
Program seçeneğinin yanı sıra gadget’a tıklayın; Etki Programlama dizilerini bir XSVF dosyasına kaydeder.
XSVF verileri eldeki, bir terminal açmanın yanı sıra, CPLD’yi programlama zamanı. Tera teriminin yanı sıra hercules’ları pencerelerde seviyoruz. JTAG arayüzünü kullanmak için XON / XOFF akışının istemcinin yönetilmesine izin vermelisiniz. Gelişme kurulu terminali için varsayılan PC yan ayarı 115200bps, 8N1’dir.
Hiz> m <-Seçme modu
1. hiz
2. I2C
3. jtag
4. RAV3WIRE
Mod> 3 <-jtag
900 Mod Seti
602 JTAG hazır
JTAG> (2) <-probe jtag zinciri makro
xxx jtag init zinciri
xxx jtagsm: sıfırlama
xxx jtagsm: reset-> rölanti
XXX JTAGSM: İdare-> Öğretim Kayıtları (TMS için bir bit gecikti)
XXX JTAGSM: IR-> Boşta
XXX JTAGSM: İDLİ-> Veri Kaydı
XXX JTAGSM: DR-> Boşta
xxx jtagsm: sıfırlama
xxx jtagsm: reset-> rölanti
XXX JTAGSM: İDLİ-> Veri Kaydı
XXX JTAG Zinciri Raporu:
0x01 cihaz (lar)
# 0x01: 0xc9 0x02 0x06 0x9A <-XC9572XL yanıt verir
XXX JTAGSM: DR-> Boşta
Jtag>
In the terminal we go into the mode menu (m), as well as select JTAG (3). Makro 2 JTAG zincirini problar, durumumuzda bu sadece CPLD’dir. Zincir raporu bize çipin yanıt vermenin yanıt vermemesini söyler. JTAG arayüzü hakkında daha fazla bilgi kontrol edildi.
Şimdi XSVF programcısını, makroyu (3) çalıştırabilir ve XSVF verilerini terminalden ikili modda yükleyebiliriz. İlk örnek, LED’i PIN 8’e sadece yanıyor. LED ışıkları, programlamanın başarılı olduğunu onaylayabiliriz. LED’iniz hafif değilse, umutsuzluğa izin vermeyin; Bazen JTAG programcısı çubuklarının yanı sıra bir sıfırlama makrosu (1) çipin devam edilmesini sağlar.
Tam parlaklıkta led.
74LS32 / 4071 veya geçit, yarı oranda yanıp sönüyor (/ 2)
CPLD gelişme panosunun ana unsuru, CPLD’nin PIN 7 ile bağlantılı 1085 (L) frekans sentezleyicisidir. Bir sonraki örnek, saat sinyali yüksek olduğunda LED’i kaplamak için 74LS32 veya 4071 IC gibi bir mantık veya geçit kullanılır. Yanıp sönen en yavaş saat hızında bile, görülmesi hızlı olacaktır, ancak ilk örneğe kıyasla güzel bir PWM karartma etkisi almalıyız.
JTAG> M <-Seçme modu 1. hiz 2. I2C 3. JTAG 4. RAV3WIRE Mod> 2 <-i2c arayüzü DS1085 900 Mod Seti 202 I2C hazır I2C> (1) <-Address Makroya Gözat XXX 7bit I2C adres alanını tarama. Bulunan gadget'lar: 0xB0 0xB1 <-Found DS1085 adresi I2C>
Program the CPLD as before, as well as then switch to I2C mode to gain access to the DS1085 clock. We might look up the gadget address in th