Nedir bu EPROM?

Uyuşmaya vardılar. Bu sayede EPROM'ların programlanmasındaki ürkütücü zahmet epey azaldı. İlk EPROM tipi olan 2508'in kapasitesi 1 KByte idi. Tüm EPROM'lar, Bytewide prensibine göre imal edilirler, yani sekiz veri hatları vardır. Bunun yararı, 8 bitlik bir mikroişlemciye bağlanabilmeleri için yalnızca bir entegre devrenin yeterli olmasıdır. Ayrıca, EPROM'ların bacak yerleşimi kendi aralarında ve diğer birçok statik RAM entegresiyle uyumlu olmalarını da sağlar. 2 EPROM'ların adları 2716 veya 2516'dır. Piyasadaki 4 KByte'lık EPROM'lar ise 2732 ya da 2532 numarasını taşırlar. Bu iki tipin farklı oldukları nokta, 18. ve 21. bacaklarıdır. Bu farklılığın nedeni, 2532'nin ana üreticisi olan Texas Instruments'in EPROM'larında piyasada var olan maske ROM'lara doğrudan bir bacak uyumluluğunu hedef-

lemesi, diğer üreticilerin ise 4 KByte'lık EPROM'larında daha büyük 28 kutuplu tiplere uyumluluk amaçlamalarıdır. Texas Instruments'in bu çabası, ürettiği 8 KByte'lık 2564 tipini incelediğimizde, daha net bir biçimde anlaşılabilir. Bu uyumluluk sayesinde, 28 kutuplu entegre devre doğrudan alt kısmıyla 8 KByte'lık bir ROM'un 24 kutuplu soketine, örneğin eğer soketliyse bir C-64'ün Kernel ROM'una takılabilir. 1., 2., 27. ve 28. bacaklar Resim 1'de görüldüğü gibi bağlanır. Tabii 2564'ün sağladığı bu yararın karşılığı, biraz daha yüklü bir fiyat ödeme zorunluluğudur. En yaygın kullanılan 8 KByte'lık EPROM tipi, 2764'tür. 2764, günümüzde piyasadakiler arasında en iyi fiyat/verim oranına sahip olan EPROM'dur. EPROM'lardaki tip numaraları son derece mantıklı bir şekilde verilmektedir. Baştaki 25 ya da 27'nin ardından gelen kısım, belleğin kapasitesini KBit cinsinden vermektedir. Yani 2764'ün anlamı, 64 KBit ya da 8 KByte'tır. Böylece daha büyük tipler de şöyle sıralanmaktadır: 27128 (16 KByte), 27256 (32 KByte), 27512 (64 KByte). Büyük EPROM sıralarının daha kolay yönetilebilmesi için önemli bir adım, Intel firması tarafından 27513 (Resim 2) ile atılmıştır. Bu EPROM sayfalandırılmış olarak imal edilmiştir, yani her biri 16'şar KByte'lık dört EPROM sırasından oluşmaktadır. Aktif sıranın seçilmesi, bir içsel siciline iletilen bir yazma komutuyla gerçekleşmektedir. Yazma komutunda D0 ve D1 veri hatlarında bulunan bilgiler alınır ve sayfa adresine dekode edilir. Besleme geriliminin açılması durumunda otomatik olarak 0 sayfası aktif hale gelir, böylece tanımlanmış bir sistem durumu elde edilir. Yani bir 27513'le bir komut yardımıyla dört adet 16'şar KByte'lık blok açılıp kapatılabilir. Dolayısıyla bu entegre devre sayesinde daha kapsamlı programlar daha küçük bilgisayarlara uyarlanabilecek ve tek bir çipe yerleştirilebilecektir. Commodore 64'ün Expansion Port'u için bu entegre devre oldukça ideal olabilir. Neyse bu umutları bir kenara bırakalım da, yine gerçekliğe dönelim: EPROM'un tek tek bacaklarının anlamları ve EPROM'un programlanması, 2764'ü yakından inceleyelim: 2764'ün 28 bacaklı kabı A0'dan A12'ye kadar 13 adres hattına sahiptir. Bunlar, istenen bellek alanının seçilmesini sağlarlar ve ikili sistemde kodlanmışlardır. Çipin, bir okuma erişimi sırasında veri sözcüğünü ileten, O0'dan O7'ye kadar sıralanmış sekiz veri hattı vardır. Programlama sırasında buraya, programlanacak Byte'ların konulması gerekir. Ayrıca bir Chip-Enable (CE), bir Output-Enable (OE) ve bir program hattı (PGM) vardır. Bunların işlevleri Resim 4'te görülmektedir. 5 Volt'luk besleme gerilimi 28. bacağa (Vcc) bağlanır. 1. bacak ise programlama sırasında 21 Volt, diğer zamanlarda ise 5 Volt verir. Tüm gerilimler, 14. bacakla bağlı olan şasi potansiyeliyle ilişkilidir.

Resim 1. 2564, 8 KByte ROM soketinde, Vpp = 5 Volt'a, CS1 ve CS2 ise şasiye bağlanmalıdır.

GELENEKSEL PROGRAMLAMA

Programlamanın başında PGM'nin Low düzeyinde olması gerekir. Ancak ardından 21 Volt'luk programlama gerilimi verilebilir. Bu gerilim, programlamanın sonuna kadar devrede kalabilir, yani verilerin onaylanması (verify) için kapatılması gerekmez. Ancak entegre devrenin kıskaçlı soketten çıkarılmasından önce gerilim kesilir, böylece istenmeyen programlanmalar ve hatta çipin zarar görmesi engellenir. Tüm programlama sırasında 2764'ün Chip-Enable girişinin Low düzeyinde olması gerekir. OE = High ile EPROM'ların çıkışları kapatılmış olur. Ardından adresler ve karşılık gelen veri sözcüğü yerleştirilir ve bunlar sabit olarak yerleştikten sonra PGM'ye 50 ms süreli bir negatif darbeyle programlama tamamlanır. Bundan sonra EPROM'un O0'dan O7'ye kadarki çıkışlarından veriler uzaklaştırılır ve programlanmış olan bellek hücresinin içeriği OE = Low ile okunur. Eğer bu

11

2732A | 27512 Ver | Ars Az | Miz Ar Ar | A | Ae As As | As Me | Ae A3 | A ke | | A | Oo Os | Or Or | Oz Oz | O GND | GND

27513

Bin İmi

| Ve | Vcc | | | An | An İnc | Vcc da | Ae | | Ae | Aş | 4s | As | As | An An | An | Av | An öt | OE | de |

içerik, olması gereken değerle uyuşmuyorsa, entegre devrede ya da programlama aletinde yolunda gitmeyen bir şeyler var demektir. Eğer hücre biçimde yakılmışsa, OE'yi High yaparak bir sonraki Byte ile devam edilebilir. Bu yöntemi kullanarak 2764'ü tümüyle programlamak yaklaşık 7 dakika sürdüğünden, çoğu üreticiler bir hızlı programlama algoritması bulmuşlardır (Resim 5.). Bu algoritma yardımıyla 2764'ün programlanma süresi yaklaşık 75 saniyeye inmektedir. Bu olağanüstü zaman tasarrufu özellikle ticari amaçlı kullanıcılar açısından önemlidir, çünkü böylece aynı anda birden fazla entegre devreyi yakmayı sağlayan pahalı EPROM programlayıcıların kullanılması gereksiz olmaktadır. Aslında amatörler açısından da böylesi bir zaman tasarrufu oldukça yararlıdır, çünkü hızlı algoritma programlama aletinin donanımında pek fazla değişiklik gerektirmemektedir.

Resim 2. 27513 tipi EPROM ve küçük öncellerinin kıyaslaması

HIZLI PROGRAMLAMA ALGORİTMASI

Hızlı programlama yöntemini anlayabilmek için, bir bellek hücresinin programlanması sırasında neler olduğunu kafamızda canlandırmamız gerekir. Bir EPROM hücresi aslında izole edilmiş kapıya sahip bir alan efekt transistöründen oluşur. Kapının gerilimi, transistörün Source ve Drain olarak adlandırılan iki bağlantısı arasındaki akımı etkiler. Bir okuma erişimi sırasında hücreye erişildiğinde, bu akım, eşik gerilimi olarak adlandırılan bir sabit değerle karşılaştırılan bir gerilim düşüşü yaratır. Eğer bu gerilim eşik geriliminden düşükse, yani hücre transistörünün kapısındaki potansiyel henüz çok azsa, bu durumda belleğin yöndeş (ilişkili) çıkışı High düzeyindedir. Ultraviyole ışınıyla silindiğinde ya da yeni bir çip alındığında, hücre transistörlerinin kapıları yüklü değildir. Bu nedenle yeni EPROM'ların içeriği daima $FF'tir. Programlama ile kapıdaki yük yükselir ve programlama sırasında bellek içeriği sık sık denetlendiğinde, verilerin ilk olarak doğru bir biçimde hücrede bulunduğu an belirlenebilir. Fakat bu, içeriğin sabit olarak daima hücrelerde kalacağı anlamına değil, aksine eşik geriliminin ilk kez aşıldığı anlamına gelir. Hızlı programlama algoritmaları, bu iş gerçekleşene kadar geçen süreyi ölçer ve sonra bir daha bu sürelerin belirli bir katını programlar (üreticisine göre bir ila dört kat). Toplam ısı ve besleme gerilimi alanı üzerine verilerin sabit olması için, tüm hızlı algoritmalardan asıl programlamanın öncesinde bir ek görev yerine getirilir. Besleme gerilimi 5 Volt'tan 6 Volt'a yükseltilir. Bir hücrenin yüklü olup olmadığını kıyaslamak için yararlanılan eşik gerilimi, besleme geriliminden alınır. Bu eşik gerilimi biraz daha yüksekse, algoritma, bellek hücrelerini normal işletim için gerekenden daha uzun yakacaktır. Bunun yararı, özellikle izin verilen işletim alanının sınırlarında ek bir güvenlik ve iyi bir uzun süre stabilitesi sağlamasıdır.

EPROM PROGRAMLAMA GEREÇLERİ

Bir EPROM programlama gerecinin yapılmasındaki en zor iş, kıskaçlı soketteki farklı bacaklarda bulunan sabit gerilimlerin program tarafından yönetilen açılıp kapatılması işlemidir. Evrensel olarak kullanılabilecek bir gereç yapılabilmesi için, üç programlama gerilimi (12,5 V, 12 V, 25 V) kullanılması ve hızlı algoritma için besleme gerilimini 6 Volt'a yükseltme olanağı EPROM tipleri arasındaki seçim, şalter üzerinden ya da yalnızca yazılımla yapılabilir. Adres-, veri- ve yönetim hatları en kolay paralel portlar üzerinden geçirilebilir, çünkü bu portların programlanması çok basittir. En önemli sorun akımın sağlanmasıdır. Tavsiye edeceğimiz, bu işin bir ek şebeke trafosu kullanılmadan halledilmesidir. Bunun da nedeni, yalnızca elimizdeki son prizin de dolu olması olasılığı değil, yeterince tecrübeli olmayan bir kullanıcının 220 Volt'la nahoş bir tanışma yaşamasına engel olmaktır.

mm Ver Zİ BERE ya Vin ÖR

Resim 3. 2764 EPROM'unun programlanması için zaman şeması

Ve Vee vo Vee ve 2 Miz a Pa AZ AM a7 ne ar as © “ “ “ A5 5 A5 “ Att “ An “ ant » x » Ki mo Ki Mo “ Ko at & a1 & at & Di A sa 00 ce ce 00 ce Dİ o o o © ca co Kİ “o os co 9 os A(X) Adres hatları A(X) — Adres hatları A(X) — Adres hatları CE Chip-Enable hattı CE Chip-Enable hattı CE Chip-Enable hattı OE Output-Enable hattı OE Output-Enable hattı OE Output-Enable hattı O(X) Veri hatları O(X) Veri hatları O(X) Veri hatları PGM Program PGM Program PGM Program Programlama gerilimi Programlama gerilimi Programlama gerilimi N.C. Bağlı değil

Resim 4. Farklı EPROM'ların şemaları

Commodore 64'te User Port'un kullanılması bu soruna çözüm getirebilir. Çünkü bu portta 10. ve 11. bacaklarda bilgisayarın 9 Volt'luk değişken akımına erişilebilmektedir. Gereci kendiniz yapmaya kalkıştığınızda karşılaşacağınız en büyük sorun, I/O (giriş/çıkış) hatlarının olağanüstü zor olan programlanma işlemidir. User Port'un alternatifi olarak geriye kalan, port elemanlarının çok basit bir biçimde bağlanmasına izin veren Expansion Port'tur. Bu alternatifin dezavantajı ise, programlama geriliminin bir doğrultmaç kullanılarak 5 Volt'tan elde edilmesidir. Birincisi bu tür doğrultmaçlar pek ucuz değil, ikincisi ise bu yolla bilgisayarın akım çıkışının yüklenme sınırına hemen erişiliyor olması. 9 Volt'luk gerilim, fazla yüklenmeye karşı pek hassas değilken, 5 Volt'tan ancak 300 mA'e kadar alınabilmektedir. Böylesi bir projenin sorunsalına bu küçük göz atışın sonunda, kendini bir EPROM'cu olmaya hazır hissetmeyenlere tavsiyemiz, üreticilerin prospektüslerini dikkatle incelemeleri. Aslında, Commodore 64'ü bozabilecek gerilimlerle çalışılacak olması, kullanıcıyı bu maceraya girişmekten vazgeçirebilir.

XROM VE GAME

Commodore 64, Expansion Port'a $8000-$9FFF ve $A000-$BFFF adres alanlarında bulunan EPROM Modüllerinin bağlanmasına olanak verir. Expansion Port'ta takılı bir modül olduğu bilgisinin bilgisayara iletilebilmesi için, XROM ve GAME hatları vardır. XROM, Low düzeyine getirildiğinde, bilgisayar kendi iç RAM'ini $8000'den $9FFF'e kadar kapatır ve bu alan için, EPROM'un Chip-Select girişine doğrudan verilebilen bir Chip-Select (ROML) üretir. GAME, Low düzeyine getirilirse, Commodore 64 BASIC yorumlayıcısını kapatır ve $A000'dan $BFFF'e kadarki alan için, aynı biçimde EPROM'un Chip-Select girişine verilebilen bir Chip-Select sinyali (ROHM) üretir. Bu alan, yalnızca makine diline ve BASIC'le ilişkili olmayan programlara ayrılmıştır. Commodore 64, $8000 alanındaki programları Auto-Start programlar olarak tanımlayabilir. Ona bu konuda yardımcı olan gösterge, $8004'ten $8008'e kadarki adreslerde bulunan CBM80 kodudur. Dikkat edilmesi gereken, Commodore 64'ün ASCII kodlarına karşılık gelmeyen harf kodlarıdır. Yani $8004'ten itibaren bellek hücreleri sırayla $C3, $C2, $CD, $38 ve $30 ile doldurulmuşsa, bilgisayar endirek olarak $8000 adresi üzerinden programa atlar ($8000 - Low adresi, $8001 High adresi). $8002 ve $8003 adreslerinde Low/High formatında olmak üzere yeni NMI vektörü yer alır.

EEPROM'LAR

Yarı iletken endüstrisinin gelişmiş olduğu bir başka yenilik ise, (şimdiye kadar yalnızca UV ışını ile silinebiliyorken) elektronik olarak silinebilen ve besleme gerilimi kesildiğinde içeriğini kaybetmeyen EEPROM'lar. Bu elemanların programlanmak için devreden çıkarılmaları gerekmiyor. Yazma süresi yaklaşık 10 milisaniye kadar. Bu süre, RAM entegre devreleriyle kıyaslandığında oldukça uzun. Bu nedenle, özellikle küçük Amerikan firmalarının ürettiği, bir RAM'ı bir çip üzerinde bir EEPROM'la birleştiren bellekler var. Bu NOVRAM'lar (Nonvolatile Random Access Memory) bir RAM'ın çok kısa erişim sürelerine ve bir komutla RAM'ın tüm içeriğini bir defada EEPROM hücrelerine yazma olanağına sahipler.

Resim 5. Hızlı programlama algoritması

Eprom programlamak sanıldığı kadar zor değil. Ama yine de özel araç ve programa ihtiyacınız var.

İşte size yapımı kolay, ucuz ve oldukça hızlı bir eprom programlayıcısı. Küçük olmasına karşın yaptığı işler bakımından diğer türlerinden eksik kalmamakta. 2764 ile 27256 arasındaki tüm epromları programlayabildiği gibi, ayrıca 12,5 volt'luk programlama gerilimi isteyen CMOS Eprom'lar da bu alet ile programlanabilir. Bu programlayıcının asıl özelliği sürati. Programlamak istediğinizde karşınıza üç seçenek çıkıyor. Birinci ve en hızlı seçenek 8 KByte'lık bir eprom 5 saniyenin altında programlanmakta. Bu süre boş byte'ların (içeriği $FF) sayısına göre daha az olabilir. Tüm bunların yanında epromun boş veya dolu olduğunu test etmek, epromu okuma, programlamayı tekrarlama gibi seçeneklere sahipsiniz. Bütün bunlar değişik menüler yardımıyla sağlanmaktadır. Gerekli olan programları BDE ve MDE ile yazılacağını biliyorsunuz. Bundan sonra iş devreyi hazırlamaya kalıyor. Ayrı ayrı iki devreyi basıp monte ettikten sonra belirtilen 10 yollu kablo ile ikisini bağlayın. Her şeyi son bir kez gözden geçirdikten sonra devreyi bilgisayarınız kapalı iken User-port'a ve Joystick portlarına yerleştirin. Basic programı yükledikten sonra diğer makinedeki program kendinden yüklenecektir. Bundan sonra eprom programlamaya başlayabilirsiniz. Eprom programlamak için size üç ayrı hız sunulmuş: 1. Turbo Speed: Bu seçenek ile 8 KByte'lık bir eprom 5 saniyenin altında hatta boş byte'lar çoğunlukta ise daha da az bir sürede programlanabilir. Bu diğer programlayıcılara göre oldukça yüksek bir sürattir. Her byte 0,1 ms içinde yakılır. Bu seçenek size zaman kazancından başka epromları birçok kez kullanabilmenizi sağlar. Programlama süresi kısaldığı için epromun ömrü artar. Bu şekilde epromunuzu defalarca silip programlayabilirsiniz. Bu seçeneğin kötü yanları ise eprom üzerindeki bilgilerin belli bir süre sonra kaybolma ihtimali. Bu bilgilerin ne kadar süre sonra kaybolacağını söylemek imkansız. Size bu epromdan eproma değişir. 21

2. Fast and Secure: Bu seçenekte ise yine oldukça hızlı programlama şansına sahipsiniz. (8 KByte 11 saniyenin altında.) Fakat burada eprom normal programlama süresinin 5 katı bir sürede programlanması ve hatalı programlama durumunda ise işlemin daha da yavaşlaması olumsuz yönler. Sonuçta eski ve kötü epromların programlama süresi 1 saate yaklaşabilir. Bu seçeneğin avantajı ise yakılan epromları oldukça uzun süre içinde bilgileri tanımasıdır. Sonuçta eprom programlarda bu seçeneği seçmeniz faydalı olacaktır. 3. Standart 50 ms: Bu yavaş ve en güvenli olan seçenekte 8 KByte'lık bir eprom 7 dakikada programlanmakta. Bu programlamada eprom üreticilerinin tavsiye ettikleri 50 ms'lik hız kullanılmaktadır. Eğer bir epromu bir kez programlayıp uzun süre kullanacaksanız bu seçeneği seçin. Zira uzun programlama süresi epromların ömrünü oldukça kısaltmaktadır. Program işlemi tamamlandıktan sonra Verify (hafıza ile epromu karşılaştırma) imkanına sahipsiniz. Uzun süre kullanıldıktan sonra tekrar programlanmış epromlar için bu gereklidir. Bir hata mesajında ise epromun silinip tekrar programlanması lazımdır. Epromun yakılma işlemi sırasında epromun yanındaki Led'in yandığını göreceksiniz. Bu led yanarken epromu çıkardığınız taktirde hem epromunuz hem de programınız zarar görebilir. Dikkat etmeniz gereken bir diğer nokta ise eprom programlayıcı takılı iken user port kul-

Eprommer V.2.0 baskı devresi (Ters görüntüsü) 22

PTT PTT

ı D

KABLO

ba 9 "

—> hk

cı

T ici TİNY-EPROMMER lanılan programı çalıştırmamanız (Kopya programlar, Floppy hızlandırıcıları gibi). Ana programda karşınıza çıkacak menüde şu seçenekler vardır:

L

Eprommer parça yerleşim planı. (User Port konnektörü ile devre arasındaki 5 atlamayı unutmayın)

F1: Eprom yakma F3: Tip ve algoritma seçimi F5: Files/Directory F2: Boşluk testi F4: Eprom okuma F6: Eprom verify F8: Tools (monitör)

Aynı zamanda en alt satırda kullanılacak eprom tipini görebilirsiniz. RUN/STOP'a bastığınızda ise her an başlangıç ekranına dönebilirsiniz. Eprom Yakma: Bir programı eproma aktarmadan önce hafızaya yüklemeniz gereklidir. “F5” tuşu ile bu işlemi gerçekleştirebilirsiniz. Yükleme işlemi tamamlanınca bitiş adresi ekranda görülecektir. F1 veya RUN/STOP ile ilk menüye dönüp F3 ile istediğiniz eprom tipini seçiniz. Bu işlem de tamamlanınca eprom artık programlanabilir. “F1” tuşuna bastığınızda bilgisayar programının başlangıç ve bitiş adreslerini isteyecektir. Bitiş adresini bilmiyorsanız sadece “Return”e basın. Artık epromunuz programlanıyor. (Led yanmaktadır.) Bir hata mesajı ile karşılaşırsanız epromunuzu değiştirin ve programlayıcınızı tekrar gözden geçirin.

Hafıza Dağılımı:

$0000-$03FF: Zero-Page, geliştirilmiş Zero-Page $0400-$07FF: Ekran belleği $3000-$BFFF: EPROM programlar için boş alan $C000-$CFFF: Makine dili rutinler $D000-$DFFF: I/O-Bölümü $E000-$FFFF: İşletim sistemi

Bazı Özellikler:

- Run/Stop tuşu ile her zaman başlangıç ekranına dönebilirsiniz. - Run/Stop ve Restore'ye beraber bastığınızda ise program kesilecek, - Programın adı istendiğinde '$' yazıp device number '8' verildiğinde directory karşınıza çıkar. - Programın bitiş adresini verirken en son dolu byte yazılmalıdır. Bazı programlayıcılarda olduğu gibi son adresten sonraki byte'ın yazılması gereksizdir.

(Bu yazının programı dökümündedir)

Bütün transistörler BC 547

Eprommer V.2.0 şeması Parça Listesi: - Bit Sayısı: CD 4040, TP 4040, TF 4040 1 adet T 1-4: NPN BC 237 C, BC 238 C, BC 547 C, BC 548 (Hepsi olabilir) 2 adet D 1-3: Silisyum diyotlar: En az 30 V/1A 1N 4001, 1N 4002, 1N 4003... 1N 5400 (Hepsi olabilir) D4: Zener diyot 22 V / 0.5 W D5: Zener diyot 12.5-13 V / 0.5 W D6: Zener diyot 5 V / 0.5 W D7: 1.5-2.5 V / 18 mA C 1,2: Elektrolitik kondansatör 220 µF / 25 V R 1,2: Direnç 4.7 kΩ / 0.3 W R3: Direnç 1 kΩ / 0.3 W R4: Direnç 27 kΩ / 0.3 W R5: Direnç 820 Ω / 0.3 W 1 adet 28 bacaklı entegre soketi (örneğin 3M-Textool soketi) 1 adet 16 bacaklı entegre soketi 1 adet 8 yollu yassı kablo (0.5 m) 1 adet User-Port konnektörü 2x12 Pin

2 Joystick fişi (erkek) 2 Joystick fişi (dişi)