Тёмный

Zbudowałem własny programator do GAL i PALCE. Co to za układy? 

Majsterkowanie i nie tylko
Подписаться 34 тыс.
Просмотров 6 тыс.
50% 1

Опубликовано:

 

14 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 77   
@__MINT_
@__MINT_ Год назад
Tak w ramach dopowiedzenia do filmu: GAL - Generic Array Logic PALCE - Programmable Array Logic CMOS Erasable Można je wymazać i zaprogramować min. 100 razy. Na tych scalakach możecie tworzyć nie tylko układy typu stan - odpowiedź, ale też zatrzaski. Wejście zegara jest wspólne dla wszystkich makrocel (pin 1), a w WinCUPLu zamiast "Q = ..." wystarczy napisać "Q.D = ...", i wtedy stan danego wyjścia będzie mógł zmienić się tylko po podaniu impulsu na pin 1. W przypadku układów 16V8 oraz 20V8 odpowiednio piny 11 i 13 stają się wtedy wejściem OE. Sam protokół komunikacji z układem przypomina trochę SPI, mamy wejście zegara i danych. Dodatkowo jest jeszcze pin Vpp, coś a'la CAS i RAS (kto zetknął się z pamięcią DRAM ten zna), różni się to w zależności od układu. Sprawa z weryfikacją wygląda inaczej, dla GALi odczyt jest szeregowy, ale dla PALCE już pseudorównoległy. Niby mamy dane na wszystkich wyjściach, ale adres podaje się szeregowo, w dodatku dla PALCE22V10 z każdego wyjścia odczytuje się inną ilość bitów. W zdobycznej dokumentacji nie było to dokładnie opisane, więc co do ilości bitów i kolejności musiałem się domyślać, wstukując dane z palca i szukając zależności pomiędzy tym co wstukałem a tym, co odczytałem. Oprócz tego nie były podane lokacje bitów konfiguracyjnych, i musiałem zgadnąć ich położenie sprawdzając, po wyzerowaniu którego bitu zachowanie układu się zmienia, i w jaki sposób się zmienia, a do sprawdzenia były 64 bity. Mrówcza robota, ale dałem radę, i cieszę się jak sięgam pamięcią wstecz i uświadamiam sobie, że mam to już za sobą. W przypadku GALi mogłem je programować swoim XGecu T48, i wykorzystałem to aby analizatorem stanów podejrzeć, jak wygląda programowanie. Wyszło na jaw, że programator ma w dupie czas impulsu wymazywania i programowania, i zamiast najpierw odczytać te czasy z układu katuje scalaki impulsem wymazywania 800ms, a zapisującym 100ms, mimo że niektórym scalakom wystarczy 10ms. Mało tego, podawane napięcia Vpp to 16V i 14.5V dla 22V10, podczas gdy napięcie też wypadałoby odczytać z rejestru i obniżyć w razie potrzeby. Przy weryfikacji z napięciem trzeba zjechać do 12V, ale XGecu oczywiście tego nie robi, w przeciwieństwie do mojego programatora, który jeszcze informuje nas o dobranych parametrach na podstawie odczytu z rejestru. Napięcie Vpp dla PALCE wynosi 9.25V lub 9V dla 22V10, tutaj już nie sprawdzę co robi XGecu, bo on tych układów nie obsługuje
@__MINT_
@__MINT_ Год назад
Byłbym zapomniał, użyty kabel USB koniecznie musi być albo krótki, albo dobrej jakości. Inaczej napięcie spada za nisko przy pełnym Vpp z przetwornicy i wywala błąd
@stoczwarty
@stoczwarty Год назад
@@__MINT_ I dlatego nie mogłeś zastosować diody zabezpieczającej USB przed "cofnięciem" się napięcia do komputera. Zmierzyłeś może jaka jest graniczna wartość napięcia przy obciążeniu tak aby jeszcze wszystko działało?
@__MINT_
@__MINT_ Год назад
W kodzie wartość graniczna to 4.4V ze specyfikacji USB, a programowane układy w nocie mają podane 4,5V. Sam uC może działać poniżej 3V, ale przetwornica raczej nie dałaby rady wytworzyć 16V przy takim napięciu. Pamiętaj, że monitorowanie napięcia zasilania działa tylko z uC w wersji SMD
@stoczwarty
@stoczwarty Год назад
@@__MINT_ Faktycznie jest to na granicy.
@Arvitles
@Arvitles Год назад
Zbudował byś przetwornice royera i pokazał na filmie?
@Excray80
@Excray80 Год назад
Super fajny materiał. Po prostu pakiet od A do Z. Wszystko opisane, wytłumaczone i podane na tacy. DZIĘKUJĘ!!!
@BartekEVH
@BartekEVH Год назад
Wariat!! 😆 Szacun!!
@__MINT_
@__MINT_ Год назад
Wariat, dzięki któremu inni nie muszą zostawać wariatami ;)
@stoczwarty
@stoczwarty Год назад
@@__MINT_ Na prawdę rozwaliłeś system. I to dosłownie.
@TymexComputing
@TymexComputing Год назад
@@__MINT_ Hahaha - to jest bardzo dobre i nigdy wcześniej niesłyszane przeze mnie powiedzenie :) - ale coś kojarzę że było podobne :)
@piotrolszowski8389
@piotrolszowski8389 7 месяцев назад
Gdzieś w życiu minąłem się z Galami. Dziś poniekąd dzięki temu kanałowi i nie tylko, mogę powiedzieć że to miłość od pierwszego zaprogramowania 🙂. Z racji tego ,że mam kompa z LPT i programator JTAG na tan port, działam na ispGAL22lv10. Kupiłem nawet kilka książek, starych książek, gdzie jest choć kilka kartek poświęconych galom i cupl'owi.
@__MINT_
@__MINT_ 7 месяцев назад
Miło to słyszeć!
@lampyelektronowe
@lampyelektronowe Год назад
Świetny film dobrze wytłumaczone!!!
@bazejwolinski5131
@bazejwolinski5131 Год назад
Niesamowity projekt :D Z tą dokumentacją to mnie zabiłeś😆😆
@ytmsz98
@ytmsz98 Год назад
18:30 Jak ja nienawidziłem tego WinCUPL'a na studiach, to tego się nie da opisać. Tak poza tym.. Nie wiem, kim Ty jesteś, ale bardzo pracowity z Ciebie człowiek, gratuluję tych wszystkich osiągnięć. Bardzo miło się ogląda Twoje filmy. Niesamowite.
@mariuszp1561
@mariuszp1561 Год назад
Szacunek za projekt ! Dobra ilość wiedzy i praktyki. Brawo. 😊
@pieczonemaekotki6923
@pieczonemaekotki6923 Год назад
Jak miło widzieć drugiego człowieka, stosującego starożytne wcięcia Whitesmith, serdecznie pozdrawiam.
@dominikkrauze6812
@dominikkrauze6812 Год назад
Nie wiem co powiedzieć. Zatkało mnie....Mega!
@__MINT_
@__MINT_ Год назад
Chyba większość zatkało XD
@dominikkrauze6812
@dominikkrauze6812 Год назад
@@__MINT_ No raczej..🤣
@kafka0021
@kafka0021 Год назад
Fajnie Ci te płytki wychodzą
@TymexComputing
@TymexComputing Год назад
No prawdziwy zuch - :) - indonezja to wschodząca gwiazda nie warto się zrażać :). Podoba mi się szczególnie obudowa w kształcie domku z kominem i wytrzymały port Typ B zamiast tam jakiegoś taniego micro usb (czy to może nie domek ale dłoń uciętym palcem?) oraz to że dla przekory a pewnie z oszczędności towaru, prostoty naprawy użyto na płytce jednak układów logiki dyskretnej zamiast kombinowanej PLC :) - no dobra, bootstraping by nie zadziałał jak każdy miałby w domu sobie zaprogramować PLC programator bez programatora - zwłaszcza jak nie ma na rynku takiego. Trzeba teraz wydrukować 100 takich płytek, 30 obudów, 10 dolutować komponenty i i wystawić ofertę i sfinalizować skapitalizować wynalazek :)
@przemekbundy
@przemekbundy Год назад
dzięki za materiał. ulżyło mi...
@dzikidzik2648
@dzikidzik2648 Год назад
Świetny projekt. Programowanie galów to bajka. Pewnie wykorzystam je w przyszłości. Cena też rozsądna. A te gale są jednorazowego zapisu? Chiński programator TL866 ma w bazie te układy i też nim można je programować. Wielki szacun za szybkość z jaką się rozwijasz. Pamiętam jak naprawiałeś zasilacze, a teraz lecisz z takim grubym tematem. Boję się co będzie za 5 lat :) Ty i elektron to mega wysoki poziom.
@__MINT_
@__MINT_ Год назад
Nieee, GALe i PALCE można zaprogramować min. 100 razy, spokojnie wystarczy żeby metodą prób i błędów wgrać właściwy wsad. OTP do piachu!
@stoczwarty
@stoczwarty Год назад
@@__MINT_ Nie wiem jeszcze jak PALCE, ale te gale, które obsługuje Twój programator są w chinach dość tanie. Do mnie przyszła pierwsza dostawa 10 sztuk więc nie ma strachu, że po 100 wgraniach przestanie działać. Jak przestanę to wezmę następny :) :) :)
@stoczwarty
@stoczwarty Год назад
Świetna robota. Ja chciałem zrobić płytkę w weekend jak miałem czasu, ale w piątek na szybko robiłem sobie wydruki do matryc i pomyliłem kierunki (odbicia nie dałem). A wydawało mi się, że to sprawdzałem. No i wydrukowałem sobie matryce odwrotnie. Jutro w pracy sobie wydrukuję już poprawnie, ale nie wiem czy w tygodniu będę mieć czas się bawić w robienie płytki więc pewnie skończy się tak, że się tym zajmę w następny weekend. Natomiast świetną robotę zrobiłeś z pokazaniem tych czasów reakcji. To idealnie pokazuje dlaczego stosuje się dziś takie matryce bramek o wielkiej skali integracji zamiast procesorów. One nie tylko mają szybsze realne czasy przełączania, ale mogą robić równolegle w tym samym czasie to co procesorowi zajmuje powiedzmy jeden wątek. A ile będziesz mieć rdzeni w procesorze i wątków? Kilka, kilkanaście, może kilkadziesiąt w jakiś RISCach. A na FPGA można jednocześnie wykonywać przynajmniej kilkaset operacji logicznych w tym samym czasie. I to dosłownie w tym samym czasie czyli szybciej niż procesor na dwóch wątkach jednego rdzenia.
@__MINT_
@__MINT_ Год назад
Taki właśnie był zamysł, chciałem pokazać jaką przewagę programowalna logika ma nad prockami, a sam przy okazji zobaczyłem te czasy w praktyce
@__MINT_
@__MINT_ Год назад
Też raz mi się zdarzyło nie dać odbicia, ale kapnąłem się dopiero po wytrawianiu, teraz płytka leży i się kurzy jako przestroga, do czego może doprowadzić rutyna
@stoczwarty
@stoczwarty Год назад
@@__MINT_ Ja się zorientowałem na szczęście przed trawieniem, ale już po wywołaniu obrazu ścieżek :)
@stoczwarty
@stoczwarty Год назад
@@__MINT_ Wyło rewelacyjnie.
@melon0909
@melon0909 Год назад
Super materiał. Nie chcesz zrobić może zrobić programatora KBC? Kupiłbym, ale ceny są przesadzone.
@__MINT_
@__MINT_ Год назад
KBC? A co to za wynalazek
@eR-MIK
@eR-MIK Год назад
Kawał dobrej nikomu niepotrzebnej roboty. Już w latach 90 były projekty programatorów GAL do samodzielnej budowy. Wystarczyło poszukac.
@__MINT_
@__MINT_ Год назад
A co z PALCE? To głównie dla nich robiłem programator, obsługę GALi miałem i bez niego. Z resztą to, czego się nauczyłem, to moje, a programatora z przejrzystym interfejsem którego nie trzeba instalować nie widziałem
@cyklop1977
@cyklop1977 Год назад
Zawsze mnie te gal-e interesowały bo często z nimi spotykam się przy retro komputerach 286/386/486 , karty vga isa itp
@satanistik666
@satanistik666 Год назад
Z tego co pamiętam to pinnode to węzły- jeżeli funkcja jest skomplikowana to czasem można użyć cel które normalnie obsługują wyjście jako wewnetrzny element struktury - w tedy są tam sygnały pośrednie, zwykle nie wyprowadzone z układu, ale tracimy wyjścia. Np w sterowaniu krokowca miałem 4 wyjścia licznika i 4 wyjścia licznik AND PWM.
@__MINT_
@__MINT_ Год назад
Dzięki za info, coś mi świtało ale nie byłem pewnien. Jak robiłem prescaler zegara do karty dźwiękowej to 6 wyjść działało jako licznik, mimo użycia pinnode sygnały dalej wychodziły z układu. Pewnie kwestia tego że GAL16V8 nie ma niezależnych OE w trybie zatrzasku
@ciekaweurzadzenia
@ciekaweurzadzenia Год назад
Super projekt
@kafka0021
@kafka0021 Год назад
Masz trochę tego sprzętu,mega
@rafirafal
@rafirafal Год назад
Czy na takim ukladzie da sie zrealizowac przebieg prostokatny ktorego wypelnienie bedzie zalezalo od tego do ktorego wejscia ukladu podamy sygnal logicznej jedynki? Ps. Jakiej stacji lutowniczej uzywasz?
@__MINT_
@__MINT_ Год назад
Można, ale z niewielką rozdzielczością, i musisz podać zewnętrzne taktowanie, tylko wersja 22V10 pozwala na zrobienie generatora na kwarcu, podczas gdy inne wyjścia będą pracowały jako zatrzaski. W 16V8 i 20V8 albo wszystkie są zatrzaskami, albo żadne. A moja stacja to Yihua 8786D
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
Hmm, jak napisałeś program na tą ATmegę ? Korzystasz z pętli zamkniętej czy z przerwania ? Spróbuj porównać czasy reakcji ATmegi wykorzystującej do monitorowania wejścia pętlę, a potem przerwanie ? ...
@__MINT_
@__MINT_ Год назад
Pętla zamknięta, przerwaniem nigdy nie uzyskasz takich czasów, 300ns to raptem 6 cykli zegara
@__MINT_
@__MINT_ Год назад
Kod jest w 13:12
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
@@__MINT_ Masz racje, same wejście w przerwanie to ok 5 cykli( przyjęcie przerwania i odłożenie na stosie adresu powrotu ), jeden cykl przy 16MHz zegara to 62,5ns. 62,5ns x 5 = 312,5ns a to dopiero początek przy przerwaniu zostaje do tego jeszcze obsłużenie tego przerwania. Tak z ciekawości zapytałem. ;) Ps. Gratuluje fajnego oscyloskopu. :)
@__MINT_
@__MINT_ Год назад
Zegar mam 20MHz, te 300ns czasu reakcji to i tak najlepszy z możliwych wyników, bo w praktyce w tej pętli będzie coś jeszcze, a nie tylko sprawdzanie stanu pinu. Ostatnio mierzyłem czas obsługiwania przerwania w innym projekcie, ten sam uC ale zegar 24MHz, chodziło o przyjęcie bajtu poprzez SPI i dorzucenie go do bufora, czas reakcji miałem chyba 800ns, a wykonanie kodu zajmowało 1us, to taka ciekawostka
@mariuszkajstura6635
@mariuszkajstura6635 Год назад
@@__MINT_ Dzięki za film i info, mam zamiar trochę poćwiczyć z GAL'em głównie testowanie zachowań bramek wysterowanie przebiegiem trójkątnym i poobserwowanie na oscyloskopie jak one przełączają wyjścia. Tak z ciekawości ;) Ps. Projekt jest super, fajnie że masz jeszcze ochotę coś publikować. Gratuluje samozaparcia w pokonywaniu napotykanych przeszkód do wyznaczonego celu, czasem "ośli upór" góruje nad inteligencją. Nabywane po wyboistej drodze umiejętności z czasem okazują się cenniejsze i trwalsze od złota.
@michasj9
@michasj9 Год назад
Czy na takich układach będzie możliwe zbudowanie niskopoziomowego (sprzętowego) emulatora konsoli Nintendo NES? Tak, żeby konsola była w pełni zgodna z oryginałem, czyli: -obsługiwała prawie wszystkie oryginalne kartridże i mappery (minimum 99% wszystkich gier), -generowała sygnał wizji i fonii w sposób identyczny, co oryginalna konsola (będzie potrzebna modulacja PWM i filtry dolnoprzepustowe, -obsługiwała oryginalne akcesoria (np. zapper, ROB, Family Basic i prawie wszystkie inne rozszerzenia - także minimum 99% wszystkich rozszerzeń).
@__MINT_
@__MINT_ Год назад
Każdy procek i jego peryferia są oparte na tranzystorach tworzących dyskretną logikę, a skoro układy z filmu są w stanie zastąpić zwykłe układy dyskretnej logiki, to odpowiedź brzmi tak. Ale ile tych scalaków byś potrzebował, i ile czasu byś musiał poświęcić na ich programowanie i projektowanie układu, to inna sprawa
@ostrygracz
@ostrygracz Год назад
Zacznij nas uczyć jak naprawiać różne rzeczy. To będzie syto :)
@__MINT_
@__MINT_ Год назад
Era napraw już była, głównie zasilaczy, zerknij na stare filmy
@eR-MIK
@eR-MIK Год назад
Atmega8 to żółw a na dodatek nie obsługuje zdarzeń. Zrób test na STM32 używając nie przerwań ale zdarzeń
@__MINT_
@__MINT_ Год назад
ATmega32, 8 jest w programatorze. Zawsze można dać coś mocniejszego o czasie reakcji zbliżonym do PLD, ale tu chodziło o pokazanie przewagi nad uC. Jakbym wjechał z FPGA to STM też nie ma szans
@eR-MIK
@eR-MIK Год назад
@@__MINT_ AVR Xmega też mają programowane bloki logiczne. Program można napisać albo zrobić to dobrze. Przykładowo WS2812 czy 1-Wire można sterować "machając pinem" albo używając UART. Oba rozwiązania zadziałają tyle, że pierwsze obciąża CPU w 100% a z UART może być prawie 0% gdy skorzysta się z DMA.
@Cyklonus
@Cyklonus Год назад
👍👍
@eR-MIK
@eR-MIK Год назад
Dlaczego nie użyłeś podstawki ZIF?
@__MINT_
@__MINT_ Год назад
Taki był plan, ale podstawka precyzyjna wystarczyła. Nie zużywa się, układ się nie klinuje, programator jest mniejszy i tańszy. A na płycie jest tyle miejsca, że podstawkę ZIF można w razie czego zmieścić
@ShigeruWarioMiyamoto
@ShigeruWarioMiyamoto 9 месяцев назад
Ziomek, masz łeb jak sklep, tacy geniusze jak ty albo krzysiobal to rzadko kiedy występują w naturze.
@NANO-SERWIS.MAREK-DASZKE
@NANO-SERWIS.MAREK-DASZKE Год назад
Gdzie kupić teraz Gal-e ?? Jakaś masakra.
@__MINT_
@__MINT_ Год назад
Na allegro jakieś były, tak poza tym to nie szukałem, ale cienko z nimi
@timwip7787
@timwip7787 2 месяца назад
Atf16v - spokojnie w TME
@__MINT_
@__MINT_ 2 месяца назад
Niedawno dodałem obsługę ATF, więc bez zawahania można kupować
@PolishGarage4
@PolishGarage4 Год назад
jakiej lutownicy i jakiego hota aira używasz?
@__MINT_
@__MINT_ Год назад
Yihua 8786D
@The2ml
@The2ml 2 месяца назад
Możesz podać konkretne typy tranzystorów?
@__MINT_
@__MINT_ 2 месяца назад
Których tranzystorów?
@The2ml
@The2ml 2 месяца назад
@@__MINT_ n-mos oraz p-mos
@__MINT_
@__MINT_ 2 месяца назад
Sam nie wiem, co to za tranzystory, jakieś SMD z wylutu. Tam nie potrzeba konkretnych parametrów
@piotrolszowski8389
@piotrolszowski8389 8 месяцев назад
Jak opisać w CUPLu bufor 3 stanowy np ten z SN74244 ?
@__MINT_
@__MINT_ 8 месяцев назад
PIN [19..12] = [Q7..Q0]; PIN[2..9] = [I0..I7]; PIN 1 = N_OE; [Q0..Q7].OE = N_OE; [Q0..Q7] = [I0..I7]; Mogę się mylić, dawno w tym nie pisałem
@__MINT_
@__MINT_ 8 месяцев назад
To dla 16V8, żeby wieć wyjścia aktywne z N_OE na stanie niskim, wystarczy zamienić tamtą linijkę na [Q0..Q7].OE = !N_OE
@piotrolszowski8389
@piotrolszowski8389 8 месяцев назад
Dzięki wielkie. Działa na 22v10 👍👍👍
@piotrolszowski8389
@piotrolszowski8389 8 месяцев назад
Ciekaw jestem czy przy wyłączonych wyjściach na 100% jest tam stan wysokiej impedancji. LEDy do wyjść gala podłączone są anodą przez rezystry. Przy stanie wysokim świecą, przy niskim nie,wiadomo. Jak wyłączę "bufory",diody delikatnie się świecą. Wyczytałem w nocie, że w 22v10 są aktywne pullapy ,więc chyba jest ten trzeci stan.
Далее
MERA-400 - zagadka prędkości
42:28
Просмотров 14 тыс.
Nowy tester układów logicznych
32:25
Просмотров 67 тыс.
Czego uczy nas hipoteza Riemanna? Tomasz Miller
1:34:25