Nedir bu EPROM?

Bilgisayarla uğraşanlar için EPROM'ların programlanması oldukça ilgi çekici bir konu. Peki, nedir bu EPROM? Bu yazımızda 25 ve 27 serisinden en önemli EPROM tiplerini tanıtacak ve bunların nasıl programlandığını anlatacağız.

Disket ve kasetin yanısıra başka bellek ortamları da var. Bunlar, yarı iletken bellekler olarak adlandırılıyorlar. Bunlarda bilgiler bir manyetik tabaka üzerine sıralı (sequentiell) olarak değil, yarı iletkenlerden oluşan bir yapıya yerleştirilir. Bunun sağladığı avantaj, her bir bellek hücresinin içeriğinin anında erişilebilir olması ve disketteki gibi aramayı gerektirmemesidir. Yarı iletken bellekler, sabit değer- ve okuma-/yazma bellekleri olarak iki gruba ayrılır. Sabit değer bellekleri de ROM'lar (Read Only Memory - Salt Okunur Bellek), PROM'lar (Programmable ROM - Programlanabilir ROM) ve EPROM'lar olmak üzere üç grupta toplanır. EPROM'ların diğer sabit silinebilir olmalarıdır. Yani büyük parça adetlerinin sözkonusu olmadığı ya da sık değişiklik yapılmasını gerektiren durumlarda kullanılmak üzere biçilmiş kaftan sayılırlar. Ayrıca son yıllarda bellek entegre devre fiyatlarında görülen sevindirici eğilim nedeniyle, sık sık kullanılan programları modül olarak EPROM'larda saklamak çoğu kez daha verimli olmaktadır. EPROM'ların kullanılmasındaki tek olumsuz nokta, özel bir gerecin kullanılmasını gerektiren programlama sistemidir.

FARKLI EPROM TİPLERİ

İlk EPROM'lar üç farklı besleme gerilimi gerektiriyorlardı ve programlanmaları çok zahmetliydi. O daki fiyatları da ancak bu işin çok meraklısı olanlar tarafından karşılanabildiği için, bu “antika” parçaların yanına yaklaşabilmek oldukça zordu. Daha sonraları üreticiler, 5 Volt gerilim beslemesine sahip bellek elemanları üretme konusunda bir

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.

Renum

THE ALNEY BRET

nemum

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

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ı