OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 23.04.2024, 00:54

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 
Autor Zpráva
PříspěvekNapsal: 29.03.2024, 00:16 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Chtěl bych si udělat vlastní CPDL pro výběr adres a další logiku pro můj nový počítač s HD6309 - tedy 5V logika.

Vymýšlím toho hodně, zatím mám obsazeno 16+8 (adresy+data) + 12 (signály) + 8..16 I/O devices = 44..52 nožiček a ještě jsem neskončil (možná se to časem zjednoduší, ale možná i zkomplikuje - už teď to obsahuje mimo jiné ATMEGA2560-16AU ( HW Arduino Mega Pro , SW s Arduinem nebude mít moc společného)).

Takže PAL/GAL 16V8 už mi jsou malé a jako další krok mi vyšlo ATF1504 ve 100 pinovém pouzdru s 64 volnými piny +4 JTAG na programování (+spousta GND a Vcc)

Mám USB Blaster z nějaké starší čínské soupravy pro FPGA (kterou jsem zatím pořád odkládal) a z TME jsem si koupil ta pole https://www.tme.eu/cz/details/atf1504as-10au100/hradlova-pole/microchip-technology/, aby to bylo nové a ne nějaké fejky.

Dělám to na Linuxu (Windows nemám), podle tohoto návodu http://forum.6502.org/viewtopic.php?f=10&t=7920 a přez vytváření rovnic jsem se dostal až k SVF souboru http://comp24.gilhad.cz//Blog/Blog.html#part-1-2-again ale v sekci PART4 jsem se zaseknul



USB Blaster mám verzi 1, v počítači se hlásí a komunikuje, ale ATF1504 přez JTAG nenajde.

Kód:
~ $ openocd -f /usr/share/openocd/scripts/interface/altera-usb-blaster.cfg    -c "adapter speed 400"  -c "sleep 500" -c "jtag newtap ATF1504AS tap -irlen 2 -expected-id 0x0150403f"  -c "sleep 500" -c init -c "sleep 500" -c "shutdown"
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
adapter speed: 400 kHz


Info : usb blaster interface using libftdi
Info : This adapter doesn't support configurable speed
Info : TAP ATF1504AS.tap does not have valid IDCODE (idcode=0x400240)
Info : TAP auto0.tap does not have valid IDCODE (idcode=0x200120)
Info : TAP auto1.tap does not have valid IDCODE (idcode=0x100090)
Info : TAP auto2.tap does not have valid IDCODE (idcode=0x80048)
Info : TAP auto3.tap does not have valid IDCODE (idcode=0x40024)
..... tahle část se různě liší, nachází bludy


Udělal jsem si breakout na ten chip a JTAG a napájení (zespoda, během stavby)
Příloha:
Poznámka: vytahané nožičky na konektory
DSC_8007.s.jpg
DSC_8007.s.jpg [ 552.44 KiB | Zobrazeno 797 krát ]

a po ní z vrchu
Deska s chipem je vyndavací a zas_tam_dací
Příloha:
Poznámka: Celková sestava
DSC_8016.s.jpg
DSC_8016.s.jpg [ 422.46 KiB | Zobrazeno 797 krát ]

Dal jsem na napájení asi 400 uF elektrolity a pár menších keramických kondíků, ale nechodí.
Zkusil jsem přidat 6k8 pullup na TDI a TMS (mají se dát nastavit ve firmware, pokud se ho tam povede protlačit, jinak mají být 1..10k, takže 6k8 mí přišlo jako dobrý kompromis), ale ani to nepomohlo.

Na osciloskopu to vypadá asi takto:
Příloha:
Poznámka: 1 yellow TCK clock
2 violet TDI chip in
3 blue TDO chip out
4 green TMS

SDS00028.png
SDS00028.png [ 72.52 KiB | Zobrazeno 797 krát ]


Vlastní komunikace je asi 13 ms dlouhá, začátek mi vizuálně připadá pořád stejný, hodnoty napětí tam lítají místy od -3V do +9V, s chipem je vidět, že všechny 4 linky (TCK, TDI, TDO, TMS) jsou někdy něčím nějak řízené, protože se chovají rozdílně od ostatních a od defaultu. TCK kmitá na asi 2MHz, 240kHz a 6kHz (na těch 2MHz dělá buď nízké, nebo vyšší napětí, nikdy není v klidu jako čára, vždycky je to vyplněný útvar, jako by měl něco na způsob tónové volby. Na 240kHz udělá v těch pruzích nalevo vždy asi 32 pulzů velkých a pak kmitá v menším rozsahu, tím vznikají bloky okolo 6kHz, které tam jsou vidět)

Bez vloženého chipu se to tam nějak mrcasí, ale asi to jsou jen přeslechy z těch hodin.
Takže si myslím, že USB Blaster nějak funguje, chip taky nějak funguje, ale někde je něco špatně. (Ten chip by se měl rozeznat a pak by byl další krok do něj nacpat data)

Což je sice fajn, ale tady končím a nevím co s tím dál. Nevím jak to má vypadat správně, nevím, co to znamená kromě toho, že to spolehlivě reaguje na odeslání příkazu a hlavně nevím, jak do toho chipu nacpat ten SVF soubor, aby dekódování dekódovalo.

Uměl by mi někdo poradit? Měl bych udělat víc obrázků a jakých? Měl bych to někam dotáhnout?

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 01:24 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 05.09.2013, 14:08
Příspěvky: 1070
Bydliště: Smolenice
Has thanked: 131 times
Been thanked: 473 times
Ja som to riešil pár rokov dozadu, tak neviem či to ešte bude funkčný postup. Ak máš SVF súbor, tak to ide programovať cez UrJTAG. Potrebuješ k tomu k BSDL knižnice, ktoré som si aj odložil, ale dajú sa nájsť na internete. Tie moje sú tu: https://z00m.speccy.cz/files/atf1504-bsdl.zip ale nezaručujem, že sú kompletné.

Programoval som to podľa návodu k UrJTAG:
1. spustiť UrJTAG príkazom jtag
2. pripojiť USB blaster príkazom cable UsbBlaster
3. prilinkovať BSDL knižnicu príkazom bsdl path /cesta/ku/atf1504-bsdl
4. skúsiť či UrJTAG to CPLD rozpoznáva príkazom detect a ak to nehodí error môžeš programovať
5. programovať príkazom svf /cesta/k/svf/súboru

Ešte jeden poznatok - káble čo najkratšie, inak mi to nefungovalo a TCK ideálne tienený, alebo mu vraziť do série 220 ohm. Tu je vysvetlenie prečo to treba: https://web.archive.org/web/20220319100 ... te003.html

_________________
To err is human, but to really foul things up requires a computer.


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 03:30 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Koukal jsem na ten AppNote a jestli to čtu správně, ty obrázky, tak základní impulz tam je, že TCK spadne asi o 3 Volty (z 3.5V na 0.5V) během asi 50 ns (2.5 políčka po 20 ns) a TDO na to reaguje během asi 30ns od začátku pádu, když je TCK na asi 1.5V
A nepochopil jsem těch 50 a 81V (79V).

Koukal jsem teda v úplně jiném měřítku úplně jinam, než to bylo zajímavé - dají se někde najít tyhle časování/frekvence/průběhy?

Zkusím si udělat vlastní kabel (od blasteru k chipu) i s odpory, ale asi až po víkendu.

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 11:27 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 14.05.2013, 19:10
Příspěvky: 1494
Bydliště: Kurim
Has thanked: 830 times
Been thanked: 587 times
Není lepší si pořídit ATDH1150USB?

_________________
http://www.8bity.cz


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 13:31 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Asi to nakonec udělám, ale stejně bych rád věděl, jak má vypadat to zapojení pro programování (čili ty pullupy, 220 ohm na hodiny a tak), protože to stejně budu muset mít na desce (neviděl jsem sokly na 100pin chipy) a stejně bych chtěl vědět, co tam má běhat, abych si mohl ověřit, že to vypdá jak má, případně si změřit, že programátor programuje, kabel kabeluje, deska deskuje a chip nechipuje, protože je zamčený. Nebo že je kabel moc dlouhý a tak z něj lezou brambory, nebo že deska nedeskuje, protože na ní je moc šumu, nebo co se vlastně děje a kde je asi problém.

Řešení typu "nakupuj za tisíce kousky řetězce, které někomu jinému chodí, třeba ti to začne chodit taky" když nevím jak to má chodit a s jinýma podobnýma kouskama, které chodí jinému, mi to doma nechodí, mi moc šťasné nepřijde. Raději bych věděl, co dělám.

Rozhodně ale ještě zkusím krátký kabel s 220Ohm a TCK co nejdál od TDO, to je řešení za pár korun a pokud to vyjde, tak budu moct narhnout desku, která nejspíš bude mít tyto problémy vyřešené.

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 19:46 
Offline
Pan Generální

Registrován: 19.07.2013, 15:54
Příspěvky: 2732
Has thanked: 147 times
Been thanked: 423 times
Nemohlo se ti nahodou podarit nahrat konfiguraci dovnitr cipu a s tim omylem vypnout jtag? Pak by se to takto chovalo.


Nahoru
 Profil  
 
PříspěvekNapsal: 29.03.2024, 20:34 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Doufám, že ne, protože jsem tomu zatím žádný konfigurační soubor ještě nedával. A snad se tam nenašuměl jen tak, člověk by u toho čekal alespoň nějaké triviální kontrolní součty, paritu nebo tak něco ...

Rozhodně si udělám nový "kabel", kde to připojím přez odpory, pullupy, dráty potáhnu co nejdál a budou co nejkratší (tak do 10 cm) a půjdou přímo k nožičkám a tak podobně - to stejně budu potřebovat i když koupím ten ATDH1150USB, protože ten konec je 10 pin konektor, nikoli placka na uchycení 100 nožičkového chipu.

A na tom "kabelu" - teda přípojné desce - budou i měřící body pro osciloskop a megaodrušené napájení.

A jestli to s tím blasterem půjde, tak príma a jestli ne, tak ten ATDH1150USB má úplně stejný výstup, takže ho koupím až pak.

Ale ta řádka, s opencd je jediné, co jsem na to pouštěl, jen drobné variace na rychlost a čekání. Takže by tam snad nic blbého nalézt nemělo.

(Ale jestli to nepůjde po dobrém, tak to zkusím s 12V, to má prý odblokovat všechno)

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 12.04.2024, 14:40 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Tak to nakonec vyřešil ten ATDH1150USB, ale stejně bych rád věděl, jaké časování a přenosy se tam mají odehrával

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 12.04.2024, 20:58 
Offline
Kecálek

Registrován: 16.09.2022, 16:24
Příspěvky: 200
Has thanked: 8 times
Been thanked: 36 times
JTAG komunikace je celkem divocina, zakladem je stavovy automat kam to kudy prechazi pres TMS https://www.allaboutcircuits.com/techni ... e-machine/ . Obecne radove na kHz to chodi vzdy za vsech okolnosti, pokud je dobre udelany tester/programator. Delam to tak, ze na desce neni nic jineho nez prime zapojeni do chainu. Nikdy jsem neresil zadny elektricky problem u single JTAG soucastky, frekvenci jsem obvykle omezen hlavne soucastkami, typicky nejakym FPGA/CPLD. Kdyz je vic soucatek v chainu, zacina ta spravna divocina, ale to jsem uz offtopic.


Nahoru
 Profil  
 
PříspěvekNapsal: 16.04.2024, 03:55 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Budu dělat desku pro ATF1504-AS ve 100 pin verzi (TQFP100) a pro ATF1502 ve verzi PLCC-44 - ono by to teda mělo fungovat pro ATF15xx obecně - a z JLCpcb jich dostanu 5, i když sám potřebuju jen dvě, tak se předběžně ptám, jestli bude mít ještě někdo zájem.

Zatím jsem navrhnul jen pro to TQFP100 , verze pro PLCC44 bude následovat během pár dnů (a obě se vejdou na jednu desku 10x10 cm, aby to bylo levné).

Vypadá to zatím takhle:
Příloha:
Poznámka: Náhled
PCB-001-44-100-breakboard-002-half.png
PCB-001-44-100-breakboard-002-half.png [ 240.52 KiB | Zobrazeno 239 krát ]


Určeno do dvou breadboardů vedle sebe, okolo středů je vyvedeno 64 = 4x16 IO pinů (PLCC44 bude do jednoho breadboardu a vyvede si i napájení). Piny jsou označený číslem pinu na chipu pro jednoduché I/O, nebo zkratkou, pokud to umí víc, jdou po sobě stejně jakou na chipu.

Napájení z breadboardů přez postranní lišty (ty uprostřed), nebo z pinů (2x3 kostka vlevo).

Programování přez JTAG (vytažen zvlášť do čelní 2x10 pinů zásuvky). Každý signál má slot na sériový odpor (lze přemostit) a po jednom pullup a pulldown odporu (lze vynechat). Odpory SMD 0805. Dva elektrolyty a 7 malých kondenzátorů na napájení, každý signál JTAG je veden podél napájení, nebo země, aby byl oddělen od ostatních.

Pár míst pro piny na osciloskopování JTAGů, 3x SMD LED s odporem na napájení (indikuje napětí a svítí, deska bez světýlek je mrtvá) a miniaturní pole asi tak 5x6 univerzálních dírek + napájení pro případné použití.

To je vše. Pokud se osadí jen chip a pinové lišty pro breadboard, lze testovat, pokud se naopak osadí jen chip, 4 sériové odpory(nebo zkraty), a header (a přivede napětí kamkoli), lze JTAGovat (a nevyužité spoje okolo nevadí). A pokud se to osadí plně, tak to bude navíc fitrovat napájení a svítit.

Bude k tomu zdroják v KiCadu a "výkresy" elektronicky. Desku bude nutno rozřezat a osadit.

PS: Napadá někoho ještě něco, co by tam určitě mělo být?

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
PříspěvekNapsal: 17.04.2024, 09:47 
Offline
Kecálek
Uživatelský avatar

Registrován: 18.06.2023, 18:37
Příspěvky: 108
Bydliště: Pražák z Prahe, žádná náplava :)
Has thanked: 20 times
Been thanked: 27 times
Tak už je to ve výrobě :D
Order Total: $4.13 (i s dopravou, ale zvolil jsem tu nejlevnější: Global Standard Direct Line)
Volné místo na desce jsem vyplnil drobnostmi (desti4ky na LED s odpory) ...

Příloha:
Poznámka: Pohled z boku
PCB-001-44-100-breakboard-pohled-half.png
PCB-001-44-100-breakboard-pohled-half.png [ 270.24 KiB | Zobrazeno 139 krát ]

Takže zbývá už jen čekat ...

_________________
Spousta věcí chodí líp, když se zapne ...
http://micro-corner.gilhad.cz/, http://8bit.gilhad.cz/ a mnohé další


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 11 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz