Pred časom som potreboval naprogramovať pomerne málo známy resp. málo používaný obvod GAL26V12 a keďže môj programátor SmartProg2 ho nepodporuje a rovnako tak tento obvod nepozná starý DOSovský vývojový prostriedok OPAL, začal som pátrať na internete, čím by som vedel pre tento obvod jednak pripraviť a preložiť rovnice a samozrejme vedel ho aj napáliť.
Pre napálenie sa ponúkal novší produkt od Elnecu BeeProg2, ale pri tej cene 1000 € bez DPH ma chytil záchvat sporivosti a povedal som si, že na to občasné použitie je to dosť veľa a radšej si nájdem nejaké "jednoúčelové" riešenie, pri ktorého stavbe, nech už to bude stáť čokoľvek, budem mať aspoň radosť z "bastlenia".
Nakoniec som narazil na blog, ktorý píše Yorck Thiele, kde popisuje svoj programátor GALmate. Jeho prgramátor podporuje prakticky všetky verzie GALov, ktoré vyrábalo Lattice a zároveň podporuje aj verzie GALov, ktoré vyrába ATMEL. Jedinou malou nepríjemnosťou je skutočnosť, že práve pre GAL26V12 sa musí použiť adaptér, keďže programátor používa iba 24 pinovú ZIF päticu a GAL26V12 má púzdro DIP28. To som ale nepovažoval za zásadný problém.
Nebudem tu popisovať zapojenie programátora, to už urobil stručne Yorck vo svojom blogu, len v krátkosti uvediem, že jadrom programátora je mikrokontrolér ATmega16 a s PC komunikuje cez USB-UART prevodník, z ktorého je aj napájaný. Programátor si zároveň vyrába aj potrebné programovacie napätia. Práve skutočnosť, že k programátoru nie je potrebný žiadny extra zdroj a vystačí si "s pripojením na USB", ma presvedčila, že si tento programátor skúsim postaviť.
Yorck zverejnil iba schému a sám si programátor postavil iba na univerzálnej doske. Mne samému sa veľmi nechcelo stavať to na univerzálke a natoľko som tomu zapojeniu dôveroval, že som sa rozhodol, že si rovno navrhnem plošný spoj. Keďže ale Yorck schému nakreslil v KiCade, ktorému ja neholdujem, prekreslil som najprv schému do Eaglu a následne navrhol plošný spoj. Zároveň som navrhol aj adaptér pre GAL26V12.
Oproti pôvodnému zapojeniu som urobil iba dve zmeny, ktoré ale nemajú vplyv na funkčnosť.
- Odpor R25 pre LED má hodnotu 1 kΩ, keďže som použil 2 mA LED.
- ISP konektor je 10 pinový a jeho zapojenie zodpovedá požiadavkám programátora SmartProg2 pre programovanie ATmega16 cez ISP.
Yorck samozrejme vytvoril ku programátoru firmvér pre ATMEL a aj ovládací softvér pre PC. Ovládací softvér má autodetekciu vloženého obvodu, takže nie je potrebné robiť ručnú voľbu obvodu. Poskytuje všetky potrebné operácie s obvodom: čítanie, programovanie, kontrolu, mazanie i nastavenie špeciálnych FUSE bitov (UES, Security, PD). Umožňuje tiež kopírovať PES medzi dvoma obvodmi.
Ďalšou z vecí, ktoré ovládací softvér poskytuje, je previazanie na kompilátor vývojového softvéru easyABEL prostredníctvom vDosPlus. Túto možnosť som ja nevyužil, pretože som návrh rovníc pre GAL26V12 robil priamo v easyABEL v DOSBoxe.
Po osadení dosky a prvom zapnutí mi ovládací softvér nechcel detekovať prítomnosť programátora. Podozrieval som samozrejme pripojenie UARTu, prehodené RxD/TxD, napájanie, vyskúšal som 3 rôzne USB-UART prevodníky a stále som nebol úpešný. Menil som nastavenie FUSE bitov pre ATMEL a dokonca som si robil úpravy vo firmvéri, aby som pomocou blikania LED zistil, kam až program dôjde (ATMEL spoľahlivo bežal), ale stále nič. Nakoniec som napísal Yorckovi a ten mi poslal svoje nastavenie FUSE bitov a odvtedy sa to okamžite rozbehlo. Pripúšťam, že som v tej "zúfalosti" mohol robiť nejaké psie kusy, hlavne okolo toho USB-UART prevodníka i firmvéru a sám si spôsobovať problémy, ale keď som všetko vrátil do pôvodného stavu a nastavil FUSE bity podľa Yorcka, tak to proste začalo chodiť. Takže pre ten ATmega16 je potrebné nastaviť FUSE bity takto: LFUSE = 0xFC, HFUSE = 0xC1.
Ešte doplním, že plošný spoj som nenavrhoval s cieľom vložiť ho do nejakej krabičky, iba som dal do rohov montážne otvory, do ktorých som dal dištančné stĺpiky. Na fotografiách môžete vidieť osadené plošné spoje programátora aj adaptéra.
Firmvér a aj ovládací program programátora nájdete na stránkach Yorckovho blogu. Ja tu dám na stiahnutie iba zdrojové súbory pre Eagle a podklady pre výrobu plošných spojov.
Ja si robím programátor GAL ako nadstavbu k môjmu programátoru EPROM a neviem si rady s čítaním PES obvodu ATF20V8B.Pri čítaní dostávam 0x8C 0x62h 0x4C 0x0C 0x6A 0x1C 0X42 0x0C, čo je iné ako je popisované pre Atmel - napr. ATF16V8.
OdpovedaťOdstrániťAk máte ATF20V8B nemohol by ste prečítať PES na vašom programátore?
Alebo nemáte informácie o programovaní obvodov Atmel (algoritmus pre ATF22V10C mám).
skicina@gmail.com
Kde sa dá stiahnuť FW pre Atmegu? Ja som to nenašiel na stránke autora.
OdpovedaťOdstrániťOspravedlňujem sa, ale až dnes som si všimol v RSS čítačke, že sú tu nejaké príspevky.
OdstrániťFW je na stiahnutie dole v článku o HW - https://www.ythiee.com/2021/06/06/galmate-hardware/
Firmware pro GALmate jsem rovnež nenašel. PES pro ATF - je ASCII Text. FW pro podobný GAL programator je zde : https://github.com/ole00/afterburner/blob/master/afterburner.ino
OdpovedaťOdstrániť