Stránka 1 z 1

Přípravek na testování adresového dekóderu

Napsal: 14 čer 2026, 22:43
od gilhad
Navrhuju si naprosto úžasný počítač (už asi dva roky) a teď jsem se dostal k tomu, že na základní desce jako GLUE logiku budu mít dvě ATF1504 (protože jedno nemá dost nožiček) a to první (ATF1) bude bude více méně adresový dekódér. Napsal jsem si na to ATF1.pld a cvičmo ho nahrál do breakboardu k otestování.

Testoval jsem klasicky - drátkama navolil adresu, řídíci signály, podíval se, zda vypadají rozumně, zkusil jinou adresu ... a jako vždy strašně zápasil s malými rozestupy, tlustými prsty, vypadávajícími drátky a tak podobně.

Obrázek

Prostě nožiček moc, chce to nějakou automatizaci, že si zadám adresu a budu cvičit s řídícími signály a koukat, jak se to dekóduje.

Takže jsem vytáhnul Božské Arduino (tm), nahrál do něj univerzální FORTH, napsal a odladil prográmek pro sériovou komunikaci, kde zadám adresu a písmenko x (vyvolani prislusne funkce) a on vypíše adresu hexa, binárně a pošle ji na příslušné piny. Pak jsem zapojil drátky na vstup toho ATF1, a otestoval to. Celé mi to zabralo necelou hodinu práce od rozhodnutí se do toho pustit, přez psaní a vylepšování výstupu a hledání chyb, přez zapojení drátků (a odhalení, že potřebuju společnou zem opravdu propojit) až do finální funkčnosti, kdy jsem rutinně testoval tu logiku (nikoli ladil přípravek k testování).

Obrázek

Ukazka kusu skutečné komunikace (tlustě uživatelský vstup - číslo a funkce)
Addr: a103; bin: 1010 0001 0000 0011 ; -»a104 [A104]-»x
Addr: a104; bin: 1010 0001 0000 0100 ; -»A103 [A103]-»x
Addr: a103; bin: 1010 0001 0000 0011 ; -»8000 [8000]-»x
Addr: 8000; bin: 1000 0000 0000 0000 ; -»7fff [7FFF]-»x
Addr: 7fff; bin: 0111 1111 1111 1111 ; -»8000 [8000]-»x
Addr: 8000; bin: 1000 0000 0000 0000 ; -»7fff [7FFF]-»x
Addr: 7fff; bin: 0111 1111 1111 1111 ; -»9000 [9000]-»x
Addr: 9000; bin: 1001 0000 0000 0000 ; -»a000 [A000]-»x
Addr: a000; bin: 1010 0000 0000 0000 ; -»a001 [A001]-»x
Addr: a001; bin: 1010 0000 0000 0001 ; -»
Výsledný prográmek "z jedné vody na plot"

Kód: Vybrat vše

hex
: CRLF A EMIT D EMIT ;
: binnum ( x -- ) ( print as 0000 )
	DUP 8 AND IF 1 ELSE 0 THEN . 
	DUP 4 AND IF 1 ELSE 0 THEN . 
	DUP 2 AND IF 1 ELSE 0 THEN . 
	DUP 1 AND IF 1 ELSE 0 THEN . 
	DROP
	;
: SP 20 EMIT ;
: 2bin ( x -- ) ( print as 0000.0000.0000.0000 )
	DUP 1000 / binnum SP
	DUP 100 / binnum SP
	DUP 10 / binnum SP
	DUP 1 / binnum SP
	DROP
	;
: x ( addr -- ) ( send addr to ports F K (A0..15) and print it)
	BASE C@ SWAP
	CRLF ." Addr: " DUP hex . ." ; bin: " DUP 2bin ." ; "
	ff DDRF C! ff DDRK C!
	DUP  100 / PORTK C! ff AND PORTF C!
	BASE C!
	;

EDIT:

Výhoda interaktivního programovatelného shellu je zejména v tom, že když za chvíli zjistíte, že testujete několik málo kombinací, tak prostě bez restarů, překladů a vypalování jen připíšete další funkci/slovo a pak už jen mačkáte klávesu :)

Kód: Vybrat vše

: y 
	7000 x KEY DROP 
	8000 x KEY DROP
	9000 x KEY DROP
	A000 BEGIN
		DUP x KEY DROP 1+ 
		DUP A022 = UNTIL
	DROP 
	A040 x KEY DROP
	A060 x KEY DROP
	A100 x KEY DROP
	;
(Ano, umělák, co mi radil se syntaxí PLD a rovnicema to samozřejmě zvoral a měl tam několik chyb. To jsem čekal, proto taky to důkladné testování :) )

Re: Přípravek na testování adresového dekóderu

Napsal: 15 čer 2026, 18:50
od JPLABS
To je výborný. Mám něco podobného, ale ne na Božském Arduinu nýbrž na 50 let staré božské HP9825A. :D
Na nápad mne přivedl před několika léty nostalcomp, určitě ho znáte. Na nějakém foru uvedl odkaz na maďarský web, kde prezentovali přípravek na testování CPU AMD 2900. To mi nedalo a protože tento CPU s podpůrnou logikou vlastním a stále čeká na realizaci big kompjuteru, napadlo mne udělat pro začátek aspoň tester toho CPU než vznikne kompjuter s AMD2900. A tím začal vznikat tester. Postupně, za ty roky se to rozjelo. HP9825A je řídící počítač, displej je můj 7" LCD a k tomu je deska na kterou se připojují různé adaptéry se ZIF paticí. Mám adaptér se ZIF DIL48 (můj vlastní) a dále mé vlastní s PLCC68 a PLCC84 ZIF od Yamaichi.
Kdyby jsi potřeboval ZIF PLCC84, dej vědět. Mám jednu, snad dvě navíc. Můžu poskynout také plošňáček pro montáž té patice.
Funguje to tak, že adaptér se připojí k bedně s LCD s HP9825A. Na té se vybere obvod k testování. Na displeji se objeví pinout a počítač testuje kombinace.
Umí to testovat asi 1500 logických obvodů TTL, CMOS. Funguje to také jako simulátor pamětí, čtečka hradlových polí a generátor slov do šířky 16 bitů s kapacitou 4 kByte.

Re: Přípravek na testování adresového dekóderu

Napsal: 15 čer 2026, 22:48
od gilhad
Já si před léty taky udělal udělátor na testování obvodů 74HCxxx, nejdřív 14 a 16 pinových, protože jsem to potřeboval, pak jsem si udělal univerzální se 40 pin ZIF, kam se daly snadno pridavat další typy i s popisama testů ve speciálním textovém formátu, ten obvody dokázal rozpoznat a otestovat, pokud byly funkcni (vlozim obvod, stisknu cudlik, zablika to a napise, ze to je 74HC245 (napriklad) ), nebo aspon napsat, kde se dostal jak daleko a na cem to testovani selhalo :)

Tam jsem měl právě pro ty 74HC vychytané napětí a proudy, abych nepoškodil ani obvod, ani tester, když jsem testoval, které piny jsou napájení, které vstupy, výstupy, nebo obojí.

Takže po tom stisknutí tlačítka to nejdřív udělalo předběžné ohledání, tím zjistilo, kolik pinů to má a jakého typu kde a pak už to procházelo jen ty typy, které odpovídaly té hrubé charakteristice a zkoušelo to funkčnost. Daly se tam celkem snadno popsat i testy na různé posuvné registry, nebo obousměrné brány.
Když se dostalo až do konce testu, tak to byl ten správný, když ne, zkusilo dalšího kandidáta.

To bylo prima, zvlášť když nebyl čitelný popis integráče :)

Tady tohle ale je spíš taková ad hoc aplikace, když něco potřebuju jednou a hned, tak prostě sáhnu do šuplíku a spíchnu to nějak narychlo na míru :)

Re: Přípravek na testování adresového dekóderu

Napsal: 17 čer 2026, 18:59
od JPLABS
nemám software na detekci, dekódování typu obvodu. Ani jsem to nezkoušel vymyslet. Je to docela komplikovaný, pokud to má fungovat 100%. Mám velký programátor EPROMEek a MCU a různých pamětí. Ten tedy umí zistit typ EPROMky a výrobce (čte se bit z EPROMky). Existoval programátor ALL-003, to bylo na počátku 90-tých let. Ten uměl zjistt typy jednoduchých TTL obvodů a otestovat zda jsou funkční. Obslužný software byl nad MS DOSem a připojení bylo přes LPT port. Nepamatuju se už, jaké všechny typy obvodů uměl zjistit, ale co si vzpomínám, končilo to někde u čítačů (7490 / 7493).
Můj software sice neumí zjistit typ obvodu, ale testuje obecně elektronický digitální obvod s libovolnou logikou, s napájením od 1.8V do 5V. Nemusí to být nutně integrovaný obvod, může to být nějaká destička s vícero obvody, prostě nějaké zapojení. Limit je 94 I/O vývodů. Zařízení se připojuje přes 100-žilový kabel přes interface k počítači. Zbylých 6 linek v kabelu je napájení, zem, Reset a Ready signál. V podstatě lze udělat interface k libovolnýmu počítači, třeba k ZX Spectrum nebo k Arduinu :D. Interface může být například přes RS232C (takový mám pro I/O 64 linek). Koncepce je: základová deska cca 17x12 cm, do které se zasouvají testovací adaptéry (max 94 pin). Současná základová deska je již 4.verze. Nebylo snadný ji vyladit aby fungovala bez chyb. Jsou na ní pouze konektory, dutinkové a kolíkové lišty, LEDka, RESET tlačítko, jeden DIP switch.
Testovací adaptery mohou být buď o velikosti 4 x 2.2" (cca 10x5 cm) nebo větší 6x 3.2" (cca 15x8cm). K testovacímu adapteru se dají připojit přímo další měřící přístroje a pomoci nich sledovat co se na testovacím obvodu děje, když do něj počítač posílá data. V podstatě, na mým testeru se dají testovat také analogové obvody a celá zapojení. Zásadní je ten ovládací software. Ten je jiný pro každý řídící počítač a musí se vždy napsat testovací program pro nový obvod nebo testované zapojení vícero obvodů.
Momentálně dělám novou verzi software, na LabView pro PC nad wokny. To si žádá jiný interface, než pro HP9825A. Toto celé (LabView, interface pro LabViw) by bylo na samostatnou diskuzi o LabView vůbec.
Jak budu něco měřit, asi v červenci, tak udělám fotky testeru. Netuším, kolik lidí zajímá toto téma, testování obvodů, měření atp. Máme v práci docela dost měřáků a vše co se dělá se vždy dost pečlivě měří, testuje ze všech možných aspektů. Toto téma,měření a testování by bylo na samostatnou diskuzi.

Re: Přípravek na testování adresového dekóderu

Napsal: 15 črc 2026, 15:06
od JPLABS
Slíbil jsem, že udělám fotky mého testeru. Na víkend připravuju měření, tak jsem udělal pár fotek. Jsou zde s malým popisem v angličtině: http://www.jplabs.co.uk/projects/bh3369z.html .
Pár vět navíc, které tam nejsou:
základní deska je 6.generace, velikost 180 x 125 mm. Tato deska v 6. generaci je už docela propracovaná. Je to v podstatě klíčová záležitost celého testeru. Připojuje se přes 100-žilový kabel k počítači. Například k PCčku, které má desku 100 I/O. Ta se dá udělat snadno pro ISA se 4x 8255 nebo ji lze koupit v bazaru za hubičku. Kdysi tyto desky dělal kdekdo. Další možností je udělat takovou desku se sériovým vstupem RS232C a 100x I/O a připojit ji třeba k ZX Spectrum nebo Atari nebo SAPI... Pro Arduino připadá v úvahu deska s expandery od Microchip. Ty jsou ale jen 2x8-bitové, takže jich je potřeba 6 kousků. Dělají se s I2C nebo SPI.
A pak už zbývá jen sestavovat testovací software pro "host" počítač který bude testovat, PCčko nebo ZX Spectrum, nebo SAPI nebo Arduino. Já mám asi 1500 testovacích prográmků pro běžné logické obvody a 24 prográmků pro testy procesorů. Známý co si také postavil tento tester na něm testuje nějaké výkonové tranzistory a elektronky řady E... udělal si adaptér s paticí pro elektronky AD převodníkem.
Kdo má zájem, může ode mne získat nějaké desky (základovku + adaptéry), dokud jsou. Stavba vyžaduje umět zacházet s páječkou. Na základní desce je 435 pájecích bodů. Další desítky pájecích bodů je na adaptérech.
Adaptéry pro analogové obvody obsahují krom konektorů (dutinkové a kolíkové lišty) ještě AD a DA převodníky.

Co bude dál ... další adaptéry, další testovací software. Pro PCčko přepisuju testovací prográmky do LabView. V úvahu připadá rozšíření testeru o snímač charakteristik polovodičových prvků.