Складаная праграмуемая лагічная прылада (CPLD) — гэта неад'емная частка вашага абсталявання. Як вынікае з назвы, вы можаце праграмаваць гэтыя мікрасхемы для забеспячэння неабходных лагічных функцый. Гэта можа быць замена састарэлых мікрасхем або проста спосаб вывучыць і паспрабаваць розныя тэхналогіі. Што можа быць лепш, чым выкарыстоўваць CPLD і паспрабаваць яго?
Я стварыў модуль CPLD, каб мець магчымасць падключаць яго да розных прылад, у тым ліку да беспаячных макетных плат, але я ўсё наблытаў. Здаецца, што даступная прастора для падключэння на беспаячнай макетнай плаце складае 1,1 цалі. Я зрабіў адтуліну шырынёй 1 цаля, не пакінуўшы месца для шэрагу правадоў з абодвух бакоў. Гм.
Але дазвольце мне вярнуцца і падрабязней расказаць пра тое, чым я займаюся. Я хачу стварыць праграмуемую логіку, якую можна сабраць у выглядзе набору, лёгка прыпаяць дома, запраграмаваць у схеме і якая можа працаваць пры напрузе 3,3 або 5 вольт.
Каб стварыць просты ў пайцы камплект, я выкарыстаў стары кампанент CPLD, які таксама даступны ў версіях на 3,3 В і 5 В і захоўвае сваё праграмаванне незалежна ад крыніцы харчавання. Сама логіка — гэта мікрасхема CPLD з серыі 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. Добрая навіна ў тым, што гэта была мая любімая старая версія. У ёй быў інтуітыўна зразумелы аналізатар сінхранізацыі, але ў пазнейшай версіі яго выдалілі.
Друкаваная плата мае простую двухбаковую канструкцыю, пакуль яна падыходзіць да яе, я звычайна выкарыстоўваю медзь для зазямлення, а часам і для харчавання. Часам заліванне медзі настолькі парушаецца, што гэта можа выклікаць праблемы або нядбайны канчатковы вынік, таму заліванне медзі — гэта зноў жа інструмент, але з ім трэба кіраваць.
Сёння многія (калі не большасць) праграмных пакетаў САПР утрымліваюць 3D-відарыс канчатковага прадукту, хоць дакладнасць малюнкаў залежыць толькі ад дакладнасці 3D-мадэляў, якія выкарыстоўваюцца для прадстаўлення дэталяў. Тут вы можаце ўбачыць, дзе я выбраў 3D-мадэль для 44-кантактнага раздыма, раздыма праграмавання і генератара. Вось некаторыя 3D-пакеты, якімі я люблю карыстацца:
У многіх кампаній таксама ёсць 3D-мадэлі сваіх кампанентаў. Molex — толькі адзін з прыкладаў кампаніі, якая добра спрацавала ў гэтай галіне.
Памылка, якую я зрабіў, не ўплывае на функцыянальнасць, напрыклад, на эстэтыку, і не з'яўляецца галоўнай праблемай, гэта значыць, яна не падыходзіць для адной беспаячнай макетнай платы.
Як толькі я падумаў, што мог бы падзяліцца дызайнам з кім-небудзь, мяне адразу ж незадаволілі схематычныя сімвалы CPLD і размяшчэнне вывадаў 40-кантактнага раздыма, што адпавядае яго агульнай плоскасці. Я ўзяў сімвал 40-кантактнага двухрадковага раздыма і змяніў яго на 1-цалевую плошчу, але нумары вывадаў не 1, 2, 3, 4... а пранумараваны як 1 збоку, як у DIP-корпуса 3, 5, 7... як у раздымах стужачнага кабеля. Такім чынам, гэта неінтуітыўна зразумелая плошча для вызначэння таго, як падключыцца да модуля і ліквідаваць непаладак.
Падобным чынам, прызначэнні вывадаў CPLD крыху заблытаныя, і я выкарыстаў набор утыліт, якія абапіраюцца на мову апісання межаў сканавання (BSDL) для стварэння сімвалаў. Большасць буйных пастаўшчыкоў маюць файлы BSDL, даступныя для сваіх асноўных кампанентаў, якія дазваляюць (паў)аўтаматычна ствараць сімвалы і корпусы. Як і любую аўтаматызацыю, яе трэба разглядаць як інструмент і можа патрабаваць дадатковай апрацоўкі для дасягнення найлепшых вынікаў. У гэтым выпадку я дазволіў ёй пералічыць вывады ў алфавітным парадку, што амаль выпадкова пры адсочванні вывадаў на плаце. Магу толькі сказаць, што ў той дзень я вельмі хваляваўся.
За гэтыя скарачэнні вы плаціце калі-небудзь у дарозе. Калі я пайду мадыфікаваць гэты модуль, я вызначу і назначу яму размяшчэнне вывадаў, якое адпавядае самой дэталі, так што ведаць, куды размясціць зонд асцылографа, гэтак жа проста, як зірнуць на сімвал схемы.
Пры выкарыстанні друкаваных плат ёсць і іншыя паляпшэнні, якія ў асноўным эстэтычныя або карысныя. Індыкатар на кантакте 1 павінен быць больш распаўсюджаным у некалькіх корпусах, і я заўсёды аддаю перавагу простай кропцы зазямлення для падключэння зазямлення асцылографа або вываду VOM. Я мог бы дадаць гэта, дадаўшы двухкантактны раз'ём, каб харчаванне і зазямленне можна было падаваць непасрэдна на плату, а не заціскаць іх да ніжніх кантактаў.
Перш чым мадыфікаваць друкаваную плату, я хачу пераканацца, што яна працуе належным чынам з улікам фізічных і эстэтычных праблем. Пасля ўключэння харчавання і пераканання ў тым, што генератар працуе належным чынам, я падключыў праграміст. Нягледзячы на тое, што версія 3,3 В навейшая за праграмнае забеспячэнне для праграмавання, яна выявіла CPLD і адлюстравала яго як «невядомую» прыладу.
Далей я стварыў лічыльнік у Quartus і прызначыў яму нумары вывадаў. Хуткая кампіляцыя і загрузка, а таксама функцыя лічыльніка, якую бачыў асцылограф, пацвярджаюць рэальнасць праекта.
Схема хуткага тэставання ў Verilog вельмі простая. Код прыведзены ніжэй. Вы можаце спампаваць ZIP-файл, які змяшчае схему і тэставую схему Verilog, у выглядзе праекта Quartus II (патрабуецца версія 9.1).
Як я ўжо казаў, я зраблю другую рэвізію друкаванай платы, каб звярнуць больш увагі на дэталі, неабходныя пры абагульненні дызайну або вырашэнні любых праблем. Паколькі мне трэба ўсталяваць шырыню ніжняга раздыма на ўзроўні 0,9 цалі або менш, я магу працягваць усталёўваць яе на ўзроўні 0,6 цалі, што з'яўляецца стандартным "шырокім" DIP-корпусам. Гэта азначае, што ніжнія кантакты павінны выступаць з-пад раздыма CPLD. Я б не рабіў гэтага ў вытворчай сітуацыі, таму што ў той час усё збіралася ўручную, але адной з мэтаў было зрабіць камплект для ручной паяння. Кампраміс пры ручной паянні заключаецца ў тым, што генератар павінен быць у корпусе для павярхоўнага мантажу SMD, версія са скразным адтулінай вельмі вялікая і звычайна не падтрымлівае патрэбны мне дыяпазон напружання.
Ці можна выкарыстаць гэтыя модулі для зборкі паўнавартаснага простага кампутара? Я думаю, што мне трэба дадаць памяць.
Ха-ха... так, гэта залежыць ад тыпу кампутара. Аднак на "сапраўдныя" мікракантролеры/мікракамп'ютары ўплывае "злучэнне кантактаў" модуля, што азначае, што з модуля немагчыма атрымаць дастаткова тэрміналогіі, каб зрабіць што-небудзь карыснае.
Я зрабіў поўны кантролер сінхранізацыі і рэжымаў камеры NTSC памерам 64, таму працэсар не патрабуецца.
Структурныя Verilog і HDL, якія выкарыстоўваюцца ў кнізе "Ад Nand да 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,3 В.
Што да тваёй "лухты"... ты сапраўды не ствараў новую разводку для манеткі. Проста спачатку падключы провад да манеткі, а потым да яго падключы CPLD. Або, калі можаш зняць палоскі сілкавання і зазямлення з адной з іх, выкарыстоўвай дзве манеткі.
Наконт Altium і Eagle. Ці разглядалі вы KiCad? У яго няма ніякіх абмежаванняў, якія б аддавалі перавагу Altium перад Eagle, і па змаўчанні генеруе памылкі DRC для ўсіх непадлучаных вывадаў. Калі вы сапраўды хочаце адкрыць вывад, вам трэба паведаміць яму пра гэта. (Магчыма, толькі для ўваходу, а не для выхаду, і гэта яшчэ не праверана). Яшчэ адна выдатная асаблівасць - гэта тое, што яго вельмі лёгка вывучыць. Гэта заняло ўсяго адну палову дня, і выдатнае ўступнае кіраўніцтва дапамагло мне пачаць.
Я аддаю перавагу (большай частцы) SMD-рэзістару над скразной адтулінай. Імі лягчэй карыстацца. Не трэба пастаянна паварочваць друкаваную плату. (Былі дапушчаныя некаторыя дурныя памылкі з-за люстранога адлюстравання...). І не трэба адразаць провад рэзістара. Пры сумесным выкарыстанні канструкцыі некалькі корпусаў можна зручна размясціць на друкаванай плаце або на адной дэталі. SMD-рэзістар TH. (Гэта крыху ўскладняе разводку).
Я выкарыстаў падручнік "KiCad Getting Started" у фармаце PDF. Старая версія, якую я выкарыстоўваў, мае 29 старонак, а апошняя — 52. Вы можаце знайсці яго ў іншых падручніках (у тым ліку па спасылках на відэа): http://kicad-pcb.org/help/tutorials/
Я ведаю, што [Крыс Гемэл] з Hackaday і The Amp Hour зрабіў серыю пра Kicad http://kicad-pcb.org/help/tutorials/
Kicad можа быць карысным, пагляджу, што будзе ў другой версіі. Дзякуй за вашыя прапановы. Непадключаныя ўваходы — гэта добра для DRC (ERC), а для раздымаў і іншых рэчаў, якія падтрымліваюць іх праграмнымі або ўводна-вываднымі, большасці паведамленняў CAD аб адключэнні звычайна можна пазбегнуць.
Правядзіце хуткі тэст і змесціце раз'ём у пустую табліцу, запусціце анатацыі і DRC. Мне выдаліся памылкі drc для кожнага вываду. Аднак пазначыць вядомыя непадлучаныя вывады вельмі проста.
Усталявана на пасіўны рэжым. Мне трэба шукаць (Рэдагаваць кампанент -> Рэдагаваць з дапамогай рэдактара бібліятэкі). Рэдактар бібліятэкі адкрываецца і загружае ваш кампанент у асобным акне, вы можаце праверыць або змяніць любую частку кампанента. Зменены кампанент можна захаваць або абнавіць у вашай схеме. Гэта значна спрашчае змяненне кампанентаў. Мне ўсё роўна на бібліятэку. Напрыклад, калі вы выкарыстоўваеце cpld, вам трэба прысвоіць значныя назвы вывадам. Што яшчэ больш важна, ёсць добры інтэрфейс для распрацоўкі ўласных кампанентаў.
У праверцы электрычных правілаў KiCad «непадлучаныя» кантакты адрозніваюцца ад «пасіўных», і ўсе «непадлучаныя» кантакты будуць генераваць памылкі. Спосаб працы ERC можна лёгка наладзіць пад свае перавагі: Інструменты -> Праверка электрычных правілаў -> Параметры.
Час публікацыі: 18 лістапада 2021 г.





