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





