Комплексен програмабилен логички уред (CPLD) е суштински дел од хардверот во вашиот репертоар. Како што сугерира името, можете да ги програмирате овие чипови за да ги обезбедат логичките функции што ви се потребни. Ова може да биде замена на застарени чипови или само начин да учите и да испробате различни технологии. Кој е подобар начин за учење од користење на CPLD и негово испробување?
Креирав CPLD модул за да можам да го поврзам со многу работи, вклучувајќи и безлемни прободни плочи, но згрешив. Се чини дека достапниот простор за приклучоци на безлемната прободна плоча е 1,1 инч. Го направив просторот широк 1 инч, не оставајќи простор за ред жици од двете страни. Хм.
Но, дозволете ми да се вратам назад и да покажам повеќе за тоа што правам, сакам да направам програмабилна логика што може да се изгради како комплет, лесно може да се леми дома, може да се програмира во коло и може да работи на 3,3 или 5 волти.
За да реализирам лесен за лемење комплет, користев стара CPLD компонента, која е достапна и во верзии од 3.3v и 5v, и ќе го одржува своето програмирање без оглед на напојувањето. Самата логика е CPLD IC од серијата Altera Max, достапна во две верзии, погодна за кола со 32 или 64 макроќелии. Макроќелиите се основните логички градежни блокови кои се програмираат со користење на логички „термини“, а потоа се меѓусебно поврзани со други макроќелии преку програмабилни меѓусебни врски.
Гледајќи ја шемата, можете да видите дека нема многу содржина: во основа CPLD, колото за програмирање во колото и осцилаторот што ја управува CPLD логиката.
Овој дел се нарекува EPM7032 и EPM7064, користејќи 44-пински пластичен носач на чип за поводници (PLCC), понекогаш наречен J-извод поради J-формата на изводот. Ова пакување може да се вметне во приклучок со отвор за минување или директно да се залеми на печатената плочка.
Содржи вграден осцилатор, така што CPLD може да извршува операции со состојба и да креира брзи бројачи самостојно без потреба од надворешен часовник. Доколку е достапен надворешен часовник, брзиот часовник на модулот може да се користи за креирање на настан на часовникот на секој растечки или опаѓачки раб на надворешниот часовник, а сепак да се следат упатствата на CPLD/FPGA, односно треба да се користи внатрешната глобална мрежа на часовникот наместо „асинхрони“ погони на влезот на часовникот. Номиналниот напон на напојувањето на овој осцилатор е помеѓу 1,8 и 5,5 волти.
Ако го гледате видеото, ќе видите дека ги дискутирам моите лични преференции за тоа како да се ракува со пинот „INH“ на осцилаторот; едноставно кажано, откако ќе проверам дали спецификацискиот лист е легален, имам тенденција да го оставам да лебди.
Кога се занимавав со вакви функции, меѓу причините што ми паднаа на памет беше и тоа што не сакав влезните пинови директно да се поврзуваат со напојувачките шини (доколку е можно). Тоа е, претпочитам да користам сериски отпорници за да ја ограничам струјата за време на минливите периоди, дури и ако не би требало да биде потребна.
Со текот на годините, видов некои проблеми во производството (големи серии), а повремено работи како циклирањето на напојувањето би им дозволиле на пиновите директно поврзани со шината за напојување да имаат повисок напон од самиот чип, што е лошо. Конечно, поврзете го пинот со шината за напојување преку отпорник (без разлика дали е напоен или заземјен), и луѓето можат да се предомислат и да го користат пинот подоцна. Ова е особено точно во моето искуство со неискористени врати, веројатно знаете дека овие врати никогаш не треба да се оставаат лебдечки или неповрзани. Со користење на отпорник за влечење, можете да го поврзете сигналот и да ја користите портата без да сечат траги од бакар.
10-пинскиот конектор и неколку отпорници го формираат програмското коло. Ако сите отпорници се отпорници за повлекување, јас би користел мрежа од отпорници, но за жал, едниот е заземјен.
За да се програмира таков независен CPLD, потребен е посветен програмер. Лесно ми е да го кажам ова, бидејќи обично имам неколку што лежат до мене, но ако немате еден, нема да биде премногу болно да влезете во играта. Одобрениот „Altera USB Blaster“ се продава за 50 долари и може да се купи од Digikey и на други места. Имам неколку клонови од Ebay, од кои еден е клон што поддржува Altera, Xilinx и Lattice истовремено. На интернет има проект и код што може да се користи за да се направи ваш сопствен клон, ќе го наведам во мојот список на можни видеа за проектот за правење клонови на програмери. Исто така, ќе покажам дизајн на штит во кој може да се програмираат матичната плоча, Arduino, PIC итн.
Софтверот потребен за компајлирање и програмирање на CPLD е слободно достапен од Altera, но за овој стар дел е потребна старата верзија 9.1. Добрата вест е дека тоа беше мојата омилена стара верзија. Имаше интуитивен анализатор на времето, но беше отстранет во подоцнежната верзија.
ПХБ е едноставен двостран дизајн, сè додека печатената плоча одговара на неа, јас имам тенденција да користам бакар за заземјување, а понекогаш и за напојување. Понекогаш истурањето станува толку скршено што всушност може да предизвика проблеми или нечисти крајни резултати, па затоа повторното истурање бакар е алатка, но треба да се управува со него.
Денес, многу (ако не и повеќето) CAD софтверски пакети содржат 3D прикази на финалниот производ, иако точноста на сликите е точна колку и 3D моделите што се користат за претставување на деловите. Овде можете да видите каде го избрав 3D моделот за 44-пинскиот приклучок, програмскиот конектор и осцилаторот. Еве неколку 3D пакети што сакам да ги користам:
Многу компании имаат и 3Д модели на своите компоненти. Molex е само еден пример за компанија која завршила добра работа во оваа област.
Грешката што ја направив не влијае на функцијата како естетиката, и тоа не е главниот проблем, односно не е погодна за еднолемна прободна плочка.
Откако помислив дека можеби ќе го споделам дизајнот со некого, веднаш бев незадоволен од шематските симболи на CPLD и од распоредот на пиновите на 40-пинскиот конектор, што е неговата вкупна површина. Зедов симбол на 40-пински двореден конектор и го прилагодив на површина од 1 инч, но броевите на пиновите не се 1, 2, 3, 4... туку се нумерирани 1 од страна како DIP пакет 3, 5, 7... исто како конекторите со лента за кабел. Затоа, тоа е неинтуитивна површина за одредување како да се поврзете со модулот и решавање проблеми.
Слично на тоа, доделувањето на пинови на CPLD е малку збунувачко, а јас користев збир на алатки кои се потпираат на јазикот за опис на граничното скенирање (BSDL) за креирање симболи. Повеќето големи добавувачи имаат BSDL датотеки достапни за нивните главни компоненти, што ви овозможува (полу)автоматски да креирате симболи и пакети. Како и секоја автоматизација, треба да се гледа како алатка и може да бара дополнителна обработка за најдобри резултати. Во овој случај, дозволив пиновите да се наведат по азбучен ред, што е речиси случајно при следење на пиновите на плочката. Можам само да кажам дека бев многу вознемирен тој ден.
Плаќате за овие кратенки некогаш на пат. Кога ќе одам да го модифицирам овој модул, ќе одредам и ќе му дадам местоположба на игла што одговара на самиот дел, така што знаењето каде да ја поставите сондата на осцилоскопот е лесно како погледнување на шематскиот симбол.
Кога се користат електронски плочки, постојат и други подобрувања кои се главно естетски или корисни. Индикаторот за пин 1 треба да биде почест во неколку пакувања, а јас секогаш претпочитам едноставна точка за заземјување за поврзување на заземјувањето на осцилоскопот или VOM кабелот. Можеби ќе го додадам ова со додавање на двопински конектор, така што напојувањето и заземјувањето може да се додадат директно на плочата, наместо да бидат прицврстени на долните пинови.
Пред да ја модифицирам печатената плочка, сакам да бидам сигурен дека работи правилно под физички и естетски проблеми. Откако го вклучив и потврдив дека осцилаторот работи правилно, го вклучив програмерот. Иако верзијата од 3.3V е понова од софтверот за програмирање, тој го детектира CPLD и го прикажа како „непознат“ уред.
Потоа, креирав бројач во Quartus и доделив пин броеви. Брзото компајлирање и преземање и функцијата на бројачот што ја гледа осцилоскопот потврдуваат дека дизајнот е изводлив.
Брзото коло за тестирање во Verilog е многу едноставно. Кодот е наведен подолу. Можете да преземете ZIP-датотека што ја содржи шемата и колото за тестирање на Verilog како проект Quartus II (потребна е верзија 9.1).
Како што споменав, ќе направам втора ревизија на печатената плочка за да обрнам поголемо внимание на потребните детали при споделување на дизајнот или при извршување на голем број задачи за решавање проблеми. Бидејќи треба да ја поставам ширината на долниот конектор на 0,9 инчи или помалку, можам да продолжам да ја поставувам на 0,6 инчи, што е стандарден „широк“ DIP пакет. Правењето на ова значи дека долните пинови ќе излегуваат од основата на CPLD приклучокот. Не би го направил ова во производствена ситуација бидејќи во тоа време беше склопуван рачно, но една од целите беше да се направи комплет за рачно лемење. Компромисот за рачно лемење е тоа што осцилаторот треба да биде во SMD куќиште за површинска монтажа, верзијата со отвор за пробивање е многу голема и обично не го поддржува опсегот на напон што го сакам.
Дали е можно да се користат овие модули за да се изгради комплетен едноставен компјутер? Мислам дека треба да додадам меморија.
Хаха... да, зависи од тоа каков компјутер е. Сепак, „вистинските“ микроконтролери/микрокомпјутери се под влијание на „врската со пиновите“ на модулот, што значи дека не можете да добиете доволно терминологија од модулот за да направите нешто премногу корисно.
Направив комплетен NTSC контролер за тајминг и режим на камера со големина од 64, така што не е потребен процесор.
Структурните Verilog и HDL што се користат во книгата „Nand to Tetris“ се повеќе или помалку исти.
Зошто деловите се со отвори за заварување? Заварувањето 0805 е лесно! Сега е време секој мајстор да ја научи оваа вештина.
Ако го направам горниот приклучок да се преклопува со пиновите залемени од дното, тогаш можам да користам „6 центри“ (симулирајќи чип со 40 пини) или дијагонала итн. Ова ќе биде строго рачно лемење на компонентите за лемење на долните кабли. Горниот приклучок зад ногарките.
Но, за почетници е тешко да го лемат од дното. Кога лемам конектори за ПХБ на протоплочката (овие евтини SMD адаптерски плочи што можете да ги користите на eBay може да се користат за прототипирање), ги вметнувам конектори во протоплочката, потоа ја ставам ПХБ на неа, и потоа можам лесно да лемам. Многу е погодно за протоплочки. Ако треба да го лемите од дното, тоа е уште потешко.
Ако CPLD е во средината (можеби е полесно да се ожичи), може да се инсталира дијагонално без преклопување, има 4 реда или CPLD може да биде од едната страна:
Ви благодарам за советот да го вметнете конекторот во протоплочката пред лемење. Мојот е малку нестабилен.
Што велите за пиновите на протоплочката со DIP формат на едниот крај и „адаптер“ од типот „приклучок“ на самиот приклучок за чип на другиот крај? Чипот може да се закачи на крајот од протоплочката. Рутирањето ќе биде цврсто.
|####### ********************* |. Да, решив да ја користам „бесплатната“ верзија на Altera, исто како што Xilinx и Lattice имаат „бесплатни“ верзии. Треба да го завршам циклусот со Ал Вилијамс за да разберам што поддржува целата отворена поддршка, што мора да ги вклучува специфичните атрибути на серијата уреди. Сепак, направив многу со бесплатната верзија.
Да, покажуваш дека CPLD се преклопува со пиновите, верувам. Ако го следам правилно, ова може да изгледа како верзија 2. При дизајнирање за (масовно) производство, секогаш сум алергичен на чекорот „рачно лемење“ бидејќи тие се преклопуваат (всушност, лемените пинови на страната што не е компонента). ) Веќе е рачно лемена компонента), но ова е само мал комплет, а не дизајн ориентиран кон производство. Само имам некои навики од кои е тешко да се ослободам на мои години. 
Мислам дека печатена плоча во облик на Т со CPLD и пасивни компоненти со широк дел во облик на Т ќе биде многу корисна кога ќе се закачи на работ од протоплочката. Нешто слично на Adafruit RasPi T-Cobbler (http://www.adafruit.com/products/2028). Ова ќе го направи поголемиот дел од површината на протоплочката достапна.
За жал, прекинувањето на производството сериозно ќе ја ограничи неговата употреба во споредни проекти, исто како и сите оние генератори на функции базирани на XR2206 и ICL8038.
Интересна идеја. Ми се допаѓаат овие два чипа. CPLD не е застарен, само е поевтин начин да се купи на 3.3V.
Во врска со твоите „глупости“... навистина не си направил нов распоред за да го поставиш на протоплочката. Прво стави ја жицата на протоплочката, а потоа стави го конекторот на жицата. Или, ако можеш да ги извадиш лентите за напојување и заземјување од едната од нив, употреби 2 протоплочки.
За Altium и Eagle. Дали сте размислувале за KiCad? Нема никакви ограничувања дека го претпочитате Altium пред Eagle, и по дифолт генерира DRC грешки за сите неповрзани пинови. Ако навистина сакате да отворите пин, мора да го кажете. (Можеби само за влез, не за излез, и сè уште не е проверено). Друга одлична карактеристика е што е многу лесен за учење. Ми требаше само едно попладне, а одличниот воведен прирачник ми помогна да започнам.
Јас го претпочитам (поголемиот дел) SMD над отворот за пробивање. Полесни се за употреба. Не мора постојано да ја вртите печатената плочка. (Направени се некои глупави грешки поради огледалото...). И не мора да го сечете кабелот на отпорникот. Кога споделувате дизајн, повеќе пакувања можат практично да се постават на печатената плочка или на еден дел. SMD отпорник TH. (Тоа го прави распоредот малку покомплициран).
Го користев „Kicad Getting Started“ во pdf формат. Старата верзија што ја користев има 29 страници, а најновата има 52 страници. Можете да ја најдете во други упатства (вклучувајќи линкови до видео): http://kicad-pcb.org/help/tutorials/
Знам дека [Крис Гемел] од Хакадеј и Амп Хоур направи серија за Кикад http://kicad-pcb.org/help/tutorials/
Kicad може да биде корисен, дозволете ми да видам што ќе се случи во верзија 2. Ви благодарам за вашите предлози. Неповрзаните влезови се добра работа за DRC (ERC), а за конекторите и другите работи што ги одржуваат меки или IO, повеќето CAD пораки за исклучување обично може да се избегнат.
Извршете брз тест и фрлете го конекторот во празна табела, извршете анотации и DRC. Ми даде drc грешки за секој пин. Сепак, обележувањето на познати неповрзани пинови е многу едноставно.
Поставено на пасивно. Морам да пребарувам (Уреди компонента -> Уреди со уредник на библиотека). Уредникот на библиотеката се отвора и ја вчитува вашата компонента во посебен прозорец, можете да проверите или промените кој било дел од компонентата. Променетата компонента може да се зачува или ажурира во вашата шема. Ова го олеснува менувањето на компонентите. Не ми е многу грижа за библиотеката. На пример, ако користите cpld, сакате да доделите значајни имиња на пиновите. Поважно е што има добар интерфејс за дизајнирање на вашите сопствени компоненти.
Во ERC на KiCad, „неповрзаните“ пинови се различен тип на пин од „пасивните пинови“, а сите „неповрзани“ пинови ќе генерираат грешки. Начинот на кој работи ERC може лесно да се прилагоди според вашите сопствени преференции: Алатки -> Проверка на електрични правила -> Опции.
Време на објавување: 18 ноември 2021 година





