6- PROGRAMLANABİLİR ELEKTRONİK MALZEMELER VE PROGRAMLAYICI KULLANIMI
6.1. GİRİŞ Konumuza başlamadan önce, sıkça karıştırılan mikroişlemci ve mikrokontrolcü kavramı üzerinde durmamızda fayda var. Mikroişlemciler tek bir kılıf içerisine yerleştirilmiş merkezi işlemcilerdir. Mikroişlemcilerde merkezi işlemciye CPU (Central Processing Unit) adı verilir. Tüm aritmetik ve operasyonel işlemlerin yapıldığı yerdir. Mikroişlemci tek başına bir işlev yapamaz. Mikroişlemcili bir devrede olması gereken en temel yapı Şekil 6.1.’de görülmektedir. |
![]() Şekil 6.1. Mikroişlemcili devre temel yapısıİşlemci yanında; ROM, RAM, I/O ve veri yolları bulunmalıdır. ROM (Read Only Memory) bellekler üretici tarafından programlanırlar. İlk üretilen bu ROM’lar hafıza hücre teknolojisi gelişimine paralel devamlı gelişerek, günümüzde yüksek hızlı flash bellekler haline gelmiştir. Yazımızda hafıza hücresi çeşitlerine ve programlayıcı kullanımına yer verilecektir. RAM (Random Access Memory) bellek ROM dan daha hızlı çalışır. ROM’dan aldığı verileri işlemciye yüksek hızlı vererek gecikmeyi önler. Cihaz çalıştırıldığında ROM daki bilginin tamamı RAM’e yerleşir. Genellikle elektronik devrelerde yan yana bulunurlar. Devrenin enerjisi kesildiğinde ROM daki bilgi kalırken, RAM deki geçici bilgiler silinir. I/O (input-output) giriş-çıkış birimleridir. Çevre elemanları ile mikroişlemcinin haberleşmesini sağlar. Bunlar; tuş takımları, GLCD, TFT monitör, sensörler, motor, valf, röle sürücü kontrol devreleri vs. gibi olabilir. Birçok firma tarafından üretilen çok sayıda işlemci ailesi vardır. Örneğin; Intel serisi; 8031, 8051, 8086, 8088, 6800 ve z80. Mikroişlemci tabanlı bir elektronik devre tasarlandığında, yukarıda anlatılan yan donanımların her birinin tasarlanması, uygun seçilmesi ve bir elektronik kart üretilmesi gerekmektedir. Mikroişlemcinin içerisinde yazılım bulunmaz. 1990’lı yıllarda mikroişlemci, ROM, RAM, I/O donanımları ve diğer yardımcı elektronik devreler tek bir entegre kılıfı içerisine gömülmüş, seri üretilmiş ve adına mikrokontrolcü veya mikrodenetleyici denilmiştir. Mikrokontrolcüye tasarımcı tarafından yazılımını programlayıp, sadece besleme ve GND irtibatı vererek tasarım uygulamaları yapılabilmektedir. Bazı üreticiler ve geliştirdikleri ürün aileleri Tablo6.1’de görülmektedir. Kısa sürede popüler hale gelen mikrokontrolcü uygulamaları için, üreticiler ve diğer internet paylaşım ortamları oluşmuştur. Neredeyse her uygulamaya yönelik kodlar ve yan donanımlar bu platformlarda paylaşılmaktadır. Genellikle C dili tabanlı programlama en yaygın olandır.Tablo 6.1- Bazı mikrodenetleyiciler ve üreticileri.
Mikrodenetleyicilerde elektronik devrenin yapacağı tüm işlemlerin programı, içerisinde gömülü bulunan hafızaya (flash veya eeprom) yazılmaktadır. Mikroişlemcilerde hafıza entegre içinde değil, yakınında bir programlanabilir entegre içerisindedir. Mikrodenetleyicilerin içindeki hafıza yapıları ve mimarileri devamlı gelişmektedir. Günümüzde ARM mimarili olanlar en popüler olanlarıdır. Cep telefonları, tabletler, giyilebilir teknolojiler ve otomotiv kontrol sistemleri gibi mobil uygulamalarda ARM mimarili yapılar tercih edilmektedir. Programlanabilir entegreler fiziksel olarak VI eğrileri (empedans test) ile test edilebilirler fakat programlarının sağlam olup olmadığı, program zarar görmüş ise yeniden yazdırılması gibi işlemler programlayıcı cihazları ile yapılır. Bir elektronik kartın arıza oluşmadan önce programının yedeği alınması önemlidir. Programın bilgisayar ortamına ve daha da güvenilir olması için CD ’ye yedeği alınmış ise, arızalı karttaki malzemelerin hemen hepsi bulunarak sağlam hale getirilebilir. Elimizde sağlam programı yok, elektronik karttaki program arızalı ve aynı işi yapan başka bir elektronik cihaz veya kart da mevcut değil ise, yeniden elektronik kartı tasarlamak bazen daha kolay olabilir. Çalışan elektronik kartlardaki programlı malzemelerin mutlaka yedekleri alınmalıdır. Bir bilgi bankası (bilgi arşivleme) yapılmalıdır. Elektronik kartın kendisi kadar kıymetli olan yazılımıdır. Bu sebepten dolayı bu konudaki makalemize öncelik vermek istedik. Program yedeğinin alınması dikkat ve bilirkişilik ister. İşlem sırasında yazılımın yanlışlıkla zarar görme riski her zaman vardır. 5. Makalemizde bahsi geçen ESD tedbirlerini almak da önemlidir. Asla çıplak el ile elektronik devre veya malzeme bacaklarına dokunulmamalıdır. Eğer pil ile beslenen programlı malzemede kullanıcı ayarları (user setup) mevcut ise ve bu ayarların silinmemesi gerekiyor ise, programlı malzeme sökülürken ilgili pinleri dışarıdan bir pil ile beslenmelidir. Eğer arızalı, programlı malzeme ise zaten kullanıcı ayarları silinmiştir. Default verileri sağlamından programlandıktan sonra operatörü tarafından kullanıcı ayarları yeniden yapılmalıdır. Burada anlatılacak konular, teknik servis ihtiyaçlarını karşılayacak düzeyde, detaya girilmeden anlatılacaktır. 6.2. PROGRAMLANABİLİR MALZEMELER ROM: Sadece okunabilir bellek (ROM – Read Only Memory) entegreleridir. Üretici tarafından programlanırlar. Kullanıcı sadece okuma yapar, yeni bir program yükleyemez. Çok eski bellek malzemeleridir, günümüzdeki cihazlarda böyle bir malzeme ile karşılaşma ihtimali düşüktür. PROM: Programlanabilir ROM ’lardır (Programmable ROM). Bir defaya mahsus programlanabilen malzemelerdir. PROM ‘ların imalat esnasında tüm bellek hücrelerinde kısa devre bir tel vardır. Kısa devre tel üzerinde potansiyel fark 0 ’dır ve bilginin dijital karşılığı da 0’ dır. Kullanıcı tarafından bir programlayıcı ile sigorta telleri attırılarak dijital 1 ’ bilgisi yüklenir. Tel atınca o hücreye gelen besleme gerilimi kadar olan değer, dijital 1’ bilgisini oluşturur. Eğer programda değişiklik yapılması istenilirse kullanıcı bir prom daha kullanmak zorunda kalır, çünkü içini açıp attırılan sigorta tellerini onarmak diye bir şey düşünülemez. Şekil 6.2.’de bu yapıdan küçük bir kesit görülmektedir. |
||||||||||||||||||
![]() Şekil 6.2. PROM yapısı. Örnek bazı PROM entegreleri; 74188, 74473, MCM10139 (32×8), MCM10149 (256×4). Bu malzemelerin teknik özellikleri (datasheet) incelendiğinde düşük bellek kapasiteli oldukları görülmektedir. EPROM: Silinebilir PROM – Erasable PROM. Bu malzemeler kullanıcı tarafından programı silinip değiştirilebilen malzemelerdir. Programın silinip yeniden kullanılabilmesi ilk kez bu malzemelerle başlamıştır. Silinmesi UV (Ulta Viyole) ışıkla olur. Resim 6.1.’de görüldüğü gibi üzerindeki penceresi yardımıyla UV ışık bellek hücrelerine tatbik edilir ve silinir. |
||||||||||||||||||
![]() Resim 6.1. EPROM entegre görünümü.Gün ışığı ve fluoresan aydınlatmalarda da UV ışık bulunduğu için, programı koruma maksatlı genelde üzerine kağıt yapıştırılır. Bu kağıt üzerinde program yükleme tarihi, versiyon numarası gibi bilgiler de genellikle yer alır. Bu kağıdın kısa sürelerde (5-10 dakika gibi) çıkarılması programa zarar vermez. EPROM silmek için EPROM silici (Eraser) cihazı kullanılır. Silinecek EPROM’ların önce üzerindeki kağıtlar çıkarılır. Penceresi üzerinde leke kaldıysa ışığı engelsiz alması için izopropil-alkol ile temizlenir. Silicinin tepsisine dizilerek, zamanlayıcısı çalıştırılır. Yaklaşık 30 – 40 dakika zamanlayıcısının ayarlanması yeterli olacaktır. Tam olarak silinip silinmediğini kontrol etmek için programlayıcıya takılarak ‘blank check’ işlemi yapılır. Programlayıcı menüsünde de değinileceği gibi boşluk kontrolü demektir. |
||||||||||||||||||
![]() Resim 6.2. EPROM Eraser (silici) görünümü. Resim 6.2.’de görülen eprom siliciyi piyasadan temin ettiğiniz mor ışık veren (uv) lamba ile imal edebilirsiniz. UV lamba için elektronik balast devresi yapıp uygun kapalı kutuya koymanız yeterlidir. UV ışık göze zararlıdır. Yapacağınız silicinin kapalı kutu şeklinde yapılması tavsiye edilir. EPROM’lar sahada çalışmalarında yaklaşık 10 yıl geçtikten sonra, program tutma dayanımları azalan malzemelerdir. Program hücrelerinin programı tutamama zaafı başlar. Buna kısaca program sağlamlığı adını verir isek, yüzde cinsinden yıla göre grafiği Şekil 6.3. ’de görülmektedir. |
||||||||||||||||||
![]() Şekil 6.3. EPROM ’un yıla göre program sağlamlığı yüzdesi grafiği.Grafiğe göre sahada yaklaşık 10 yıl çalışan EPROM’larda %40 seviyesinde program sağlamlığı azalmaktadır. Bu sebeple bu EPROM’ların yeniden programlanması gereklidir. Programlayıcı yardımıyla program silinir ve yeniden yüklenir ise 10 yıl kazanılmış olur. Dolayısı ile mevcut cihazlarda EPROM mevcut ise kesinlikle programlayıcı yardımıyla program PC ortamına yedeklenmelidir. İlk üretilen EEPROM’ların bazıları, sahada çalışan bu EPROM’lar ile yer değiştirilsin diye, onlara muadil üretilmiştir. Akım, gerilim, bacak (pin) isimleri vs. birebir aynıdır. Bu değişiklik yapıldığında EPROM’un yıla bağlı olan teknolojik zaafından kurtulmuş olunur. Örneğin 27C512 pencereli EPROM’un yerine, 27C512 EEPROM (penceresiz) piyasadan alınıp, programlanır. Artık sahada bu EEPROM yıla bağlı kalmadan, problemsiz uzun yıllar çalışacaktır. EEPROM: Electrically EPROM’lardır. Elektrikle silinip programlanabilen bellek malzemeleridir. EE harfleri yan yana kullanıldığından bunlara E2PROM (E kare Prom) da denilir. Programlama işleminde, mosfet’in kapı (G) ve kanal (S) uçları arasına 21 V ’luk bir gerilim uygulanarak, kapı uçlarında bir şarj oluşması sağlanır. Gerilim kesilse bile oluşan şarj devam eder ve böylece bilgi saklanır. Uygulanan gerilimin ters çevrilmesi, oluşan şarjın ortadan kalkmasına ve hücredeki bilginin silinmesine sebep olur. Basit ifade ile Mosfet tetiklenmesinde rol oynayan kapasitif yapı, hafıza hücresinin dijital değerini belirler. Şarj işlemi, çok küçük bir akım gerektirdiğinden EEPROM’un programlanması ve silinmesi entegre devre içinde iken de yapılabilir. Bazı programlayıcılar ISP (In Circuit Serial Programming- Devre İçi Programlama) özelliği ile bunu yapabilmektedir. EEPROM’lar onbinlerce kez silinip yazılabilirler. Tamamı silinip yazılabileceği gibi, isteğe göre sadece belirli adreslerdeki veriler de değiştirilebilir. Intel 2816 bellek entegresi, 2kx8 kapasitede 250 nanosaniye erişim zamanına sahip ilk EEPROM’dur. 8264 EEPROM’u ise 8kx8 kapasiteye sahiptir. Yaklaşık 120 üretici firma ve yüzlerce çeşitleri vardır. En çok kullanılan serileri şunlardır; 27xxx, 28xxx, 29xxx. FLASH teknolojili elektronik bellek malzemeleri de EEPROM hücrelere paralel şekilde geliştirilmiştir. Milyonlarca kez silinip yazılabilirler. Günümüzde USB flash belleklerin içerisinde de bu malzemeler kullanılmaktadırlar. Bunlara örnek olarak 39xxx ve 49xxx serileri verilebilir.PLA : Bunlara PLD de denilir. Programlanabilir lojik devrelerdir (Programmable Logic Array). Giriş bilgilerini çıkışına çeşitli lojik kapı işlemleri kombinasyonları ile verebilen bellek entegreleridir. Yapı olarak ROM ’a benzerler. Bir defaya mahsus programlandıktan sonra değiştirilemezler. PLD bellek entegrelerinin içerisinde düzinelerce lojik kapı yapısı bulunmaktadır. Bazen tasarımcı düzinelerce kapı entegresi kullanmak yerine bu bellek entegresini tek başına kullanırlar. Elektronik devre hem hesaplı, hem de çok küçük hale gelmiş olur. Kapıların bacak bağlantıları programlandığından bu entegrelerdeki program formatı .bin (binary) veya .hex (hexadecimal) formatında değil, .jdc (jedec çalışması) adı verilen özel bir formattır. PALxxx, TIPPALxxx, GALxxx, PALCExxx, GALCExxx gibi çeşitli serileri vardır. Günümüzde popüler olarak kullanılan FPGA mimarili gelişmiş PLD’ler üretilmiştir. ARM ve mikroişlemci hızları, FPGA entegrelerindeki elektronik kapı devreleri ile gerçekleştirilen donanım hızlarından daha yavaştır. FPGA yapı aynı anda paralel işlem yapan kapı devreleri yapısına da sahip olması dolayısıyla üstündür. Bilindiği gibi mikrokontrolcüler aynı anda tek işlem yaparlar. Sonuç olarak, yüksek hız ve performans gerektiren tasarım ihtiyaçlarında FPGA mimarili tasarımlar üstünlükleri ile ön plana çıkmaktadır ve PLA yapının gelişimi ile oluşmuşlardır.RAM: Rasgele Erişimli Belleklerdir (Random Access Memory). Elektronik devrede besleme enerjisi var iken, EEPROM/FLASH yapıdaki bilgiyi alıp, mikroişlemciye hızlı şekilde verir. EEPROM ve FLASH malzemelerinden çok daha hızlıdırlar. Statik ve dinamik olarak ikiye ayrılırlar. Enerji kesildiğinde içerisinde bilgi kalmaz. Bazı Ram yapılarda ve NVRAM‘lerde silinmesi istenmeyen bilgiler (tarih, saat, sayıcı verisi vs. gibi) pil ile beslenerek tutulur. Bu piller ni-cd yapıda olduklarından yaklaşık 10 yıl ömürleri vardır. Bu süre sonrasında değiştirilmeleri gerekir. NVRAM içeren elektronik bir cihaz çalıştırılıp tekrar açıldığında, girilen değerlerin silindiği gözlemleniyor ise pil artık tükenmiş demektir. Bu piller ömrünü tükettiklerinde küçük direnç değeri gösterip aşırı akım çekeceklerinden elektronik kontrol kartının görevini yapamamasına da sebep olurlar. NVRAM’ler ilk test edilmesi gereken malzemeler arasındadırlar.NVRAM‘lerde batarya yapısı kılıfının içerisindedir. Pinlerden batarya gerilimi görülemez. Eğer cihaz açılıp kapandığında kullanıcı ayarları (tarih, saat vs. gibi) siliniyor ise bu malzemenin veya kontrol kartındaki ni-cd pilin değişme zamanı gelmiştir. Resim 6.3.’de görülmektedir. |
||||||||||||||||||
![]() Resim 6.3. Bir NVRAM görünümü. Programlayıcı ile içeriğine bakıldığında ilgili kod satırlarında genellikle komple FFFF veya 0000’lar görülüyor ise, pili bitmiş ve içerisinde kod tutamıyor demektir. 6.3. PROGRAMLAYICILAR VE KULLANIMLARI |
||||||||||||||||||
![]() Resim 6.4. Bir universal programlayıcı Bir programlayıcıda olması gereken en önemli özellikler aşağıda sıralanmıştır.
Birçok kılıf yapısını desteklemeli ve uygun adaptörleri olması gerekir. JTAG özelliği ile elektronik malzemeleri sökmeden devre içi programlama özellikleri bulunmalıdır. Çoğunlukla programlayıcıların standart olarak DIL kılıf yapısındaki malzemeler için zif soketi üzerinde mevcuttur. Diğer kılıf yapısındaki malzemeler Resim 6.5 ‘de görüldüğü gibi önce uygun adaptörüne konulur sonra programlayıcıya yerleştirilir. Piyasada satılan hesaplı programlayıcı adaptörlerini desteklemelidir. Bazı programlayıcı firmaları sadece kendi sattıkları adaptörleri kullanılması için, adaptörlerinin içerisine ürün no bulunan elektronik devreler tasarlamışlardır. Yüksek fiyatlarla bu adaptörleri satmaktadırlar. Bunlardan sakınmak gerekir. |
||||||||||||||||||
![]() Resim 6.5. Malzeme kılıf yapısına uygun adaptörler. |
||||||||||||||||||
![]() Resim 6.6. Programlayıcı menüsü.Resim 6.6.’da bir programlayıcı yazılımı ana menüsü görülmektedir. Menü üzerindeki teknik ifadeler ve yaptıkları işlevler kısaca aşağıda açıklanmaktadır. Bu menüler tüm programlayıcılar için ortak menülerdir. LOGIC TEST: Dijital kapı entegrelerinin fonksiyonel testini yapar. Malzeme üzerindeki yazı silinmiş ise belirleyebilir (auto find). Test işlemine örnek olarak 74138 entegresi zif sokete yerleştirilir. 74138 malzemesi seçilir veya search kısmına yazıldığında, ‘TTL/CMOS Chips’ kısmında gelecektir. 74HC138 ismindeki HC yi yazmadan 74138 yazmak yeterlidir. Resim 6.7.’de bu test işlemi görülmektedir. Vektör tablosunda (vector table) dijital entegreye test için uygulanan mantık tablosu görülmektedir. Kullanıcı kendisi de özel dijital entegrelere yönelik vektör tabloları oluşturup, kütüphanesini geliştirebilir. |
||||||||||||||||||
![]() Resim 6.7. Programlayıcı lojik test penceresi.DEVICE (Malzeme): İşlem yapılacak malzemenin ilk önce üreticisi ve adı seçilmelidir. Bu işlemde hata yapılmamalıdır. Malzemenin adının uzantılarına da dikkat edilmelidir. Bazı malzemeler 1,5 V bazıları ise 5V gibi farklı gerilim besleme değerindedir. Malzeme adı yanlış seçilir ise, malzemeye zarar verilebilir. Yanlış seçimlerde günümüzdeki gelişmiş programlayıcılar uyarı verirler. Programlı elektronik malzemenin üzerindeki logosundan hangi firma tarafından üretildiği bilinmelidir. Yeni nesil programlayıcılarda malzeme ismi girilir iken logoları da yazılım menüsünde görülmektedir. Örneğin National Ins. üretimi NMC27C256Q epromunun seçimi Resim 6.8.’de görülmektedir. Malzememiz DIP kılıf ve programlayıcının standart ZIF soketine uygun yapıdadır. Device’ dan seçilir ve ok tuşuna basılır. |
||||||||||||||||||
![]() Resim 6.8. Programlayıcı device menüsü.Eger malzeme farklı bir kılıf tipine sahip ise, uygun adaptörü seçilir. Resim 6.8.’de görüldüğü gibi @PLCC32 ifadesi, kullanılacak adaptör çeşidini göstermektedir. Bazı adaptörler elektronik devre içerir, bunlara dönüştürücü (konverter)’de denilir. Resim 6.8.’in sağ kısmında, Dram/Sram, MCU (Mikroişlemci) fonksiyel testlerini de yapabildiği görülmektedir. Kütüphanenin malzeme seçim kısmında tamamını görebilmek için sağ kısımda ALL seçili olmalıdır. BLANK CHECK (Boşluk Kontrolü): Malzemenin boş olup olmadığını test eder. Özellikle EPROM’ların silinip silinmediğinin kontrolünü yapar. Eğer silinmiş ise ‘Blank Check OK’ sonucunu verir. EPROM’lar, EPROM silici (eprom eraser) ile silindikten sonra programlanabilirler. İçerisinde bulunan yazılımın, aynısının üzerine tekrar yazılmasına müsaade ederler. Sanki bastırarak üzerine tekrar yazılıyor gibi. Ama programda fark var ise veya başka bir program yüklenecek ise önce silinmeleri gerekir. Silinmez ise, programlama hatası verecektir. Resim 6.9.’da NMC27C256Q EPROM’u seçildikten sonra gelen menü görülmektedir. Menü seçilen malzemeye uygun gelmektedir. Görüldüğü gibi erase ve protect gibi fonksiyonlar menü de görülmezler. Çünkü eprom yapısı bunlara müsaade etmeyecektir. EEPROM’lar seçildiğinde bu özellikler onlarda bulunduğundan menüye gelecektir. |
||||||||||||||||||
![]() Resim 6.9. Programlayıcı eprom menüsü.READ (Malzemeyi okur) : Malzemenin içindeki bilginin okunarak, programlayıcının ram’ine (buffer) geçmesini sağlar. Cihazı aç-kapa, ikinci bir okuma veya load işlemine kadar ram deki bu bilgi kalır. Günümüzdeki programlayıcıların ram kapasitesi kütüphanesindeki tüm malzemelerle ilgili işlemleri yapabilecek büyüklüktedir. Cihazın RAM’ indeki bu bilgi EDIT kısmından incelenebilir ve üzerinde değişiklik yapılabilir. Değiştirilecek satır bilgisi ve değiştirilecek kodlar uzamanı tarafından belirli olması gerekir. Bu bilgiler .hex kodunda bulunan derlenmiş bilgilerdir. Derlenmiş bilgi konusunu kısaca açıklayalım. Tasarımcı programın nasıl çalışacağının hikayesini (algoritma) önce kağıt üzerinde oluşturur. Sonra kullandığı bir dilde (assembly, c, basic, pascal, jal, mikroc gibi.) bunu bilgisayar ortamında yazar. Tüm dillerde program yazmayı destekleyen editör arayüz yazılımları mevcuttur. Programcı bu derleyici program yardımıyla örneğin C dilinde yazdığı programı, .hex (hexadecimal) şekline dönüştürür. Derleme sonrası elde edilen bilgi mikro kontrolcü veya işlemcinin anlayabileceği en alt seviyedeki .hex veya .bin formatındaki bilgidir. Programlı malzemeye yüklenmeye hazır olan bilgidir. Bir programlayıcı kullanarak malzemeye yüklenir. Programlı malzeme okuduğunda (read) bu bilgi okunmuş olur. Eğer programın tasarımcısı değil isek ve okunulan programlı malzeme yazılımında değişiklik yapmak istiyor isek, yukarıdaki adımların tersini uygulayıp geriye doğru gitmemiz gerekir. Yani önce .hex kodu okunur. Hex kodları ‘disassembly’ yapılarak assembly kodlarına çevrilebilirler. Yeni nesil programlayıcılarda ve derleyici yazılımlarında ‘disassembly’ işlemi yapabilen tuş bulunur. Assembly dilindeki programı, henüz; c, basic, pascal veya jal gibi yüksek dillere dönüştüren bir yazılım programı yapılmış değildir. Programların bu yöntemle kopyalanması, tasarımcının haklarını ve emeğini korumak adına bunun yapılması etik de değildir. Ama yurtdışından alınmış ve üretimi bitmiş, desteği kalmamış veya üreticisi iflas etmiş gibi cihazlara müdahale edebilmek için iyi olurdu. Assembly kodları ile programı anlamak ve müdahale etmek oldukça zor ve epey vakit alıcıdır. Yeniden tasarımı yapmak bazen daha hızlı ve pratik olabilir. VERİFY (Doğrulamak): Ram deki bilgi ile malzemenin içeriğini karşılaştırır. Bir bit değişikliği var ise hata verir. ‘Verify OK’ vermişse programlar aynıdır. ‘Verify Failed’, ‘don’t pass’ gibi hatalar veriyor ise program farklıdır. Bazı programlayıcılarda ‘COMPARE’ şeklinde de bulunur. Elektronik arızacılıkta en çok kullanılan fonksiyonlardandır. Örneğin Resim 6.9.’da görülen NMC27C256Q malzemesinden bulunan iki arızalı kart teknik servisimize gelmiş olsun. Elektronik kartlara ve programlı malzemelere asetat kalemi ile numara verilir. Birinci malzeme programlayıcının ZIF soketine yerleştirilir. Malzeme, ‘device’ dan seçilir ve ‘Read’ yapılır. Malzeme programı programlayıcı RAM ine yüklenmiş olur. Bu malzeme çıkarılarak ikinci malzeme ZIF sokete yerleştirilip ‘Verify’ yapılır. RAM deki veri ile malzeme verisi birebir karşılaştırılır. Eğer ‘verify ok’ ise iki malzeme de aynı bilgiye sahiptir. Program sağlamdır. İkisinin de arızalı olduğu ve ‘verify ok’ sonucu olan bir duruma rastlanmamıştır, zor bir ihtimaldir. İki kitabın sanki sadece aynı harflerinin bozulması gibi bir ihtimal söz konusudur. Yazılımda versiyon farklılığı var ise verify hata verecektir. Emin olmak için ikisini de cihaz üzerinde denemek en doğru yoldur. Bunu yapmak için arızalı elektronik kartlardan biri öncelikle onarılır. Şüpheli elektronik malzemeleri değiştirilir. Programlı malzemenin bulunduğu yere soket takılır. Tüm elimizdeki programlı malzemelere aldığımız karta göre asetat kalemiyle numara verilir ve sırayla takılarak denenir. ESD önlem (en azından bileklik) ve diğer güvenlik tedbirleri alınmalıdır. Enerjili çalışma yapıyorsanız, yalnız olmamanızı, şaltere veya kapatma butonuna yakın birisinin olmasını kesinlikle tavsiye edilir. PROGRAM: Malzemeyi programlar. Önce program yapılacak malzeme DEVICE’dan seçilir. Sağlam olduğundan emin olunan malzeme ‘READ’ edilir. Eğer daha önceden program yedeği alınmış ise ‘LOAD’ edilip çağrılır. Sağlam entegreye gerek kalmaz. Yeni piyasadan alınmış içi boş olan programlı elektronik malzeme, programlayıcının ZIF soketine yerleştirilir. ‘PROGRAM’ tuşuna basılır ise ram’deki bilgi yeni programlı malzemeye yazılır. Program sadece RAM dan malzemeye yazılır. Malzemeyi programladıktan sonra ‘Verify’a tıklayarak, RAM ile malzemeye yazılan bilgi kontrol edilir. Bu işlemi en az 3-5 defa yapmak gerekir. Böylece, malzemenin performans testi yapılmış olur. Verify işlemi her defasında ‘OK’ sonucunu vermelidir. Maalesef taklit ve ESD önlemi olmadan satılan malzemeler piyasada çok fazla bulunmaktadır. Bu performans testi bu sebeple önemlidir. EEPROM’lar programlanır iken içeriğini silmeye gerek kalmadan yeni programı üzerine yazar. Bazıları program hatası veriyor ise, önce ‘erase’ (sil) fonksiyonu çalıştırılıp, sonra program yapılmalıdır. AUTO: Boş bir malzemenin hızlı programlanabilmesi için gereken adımların otomatik olarak yapılmasını sağlar. Seri üretime yönelik bir işlem sırasını çalıştırır. ‘Auto configurasyon’ kısmından programcının sırayla rutin şekilde yapması istenilen işlemler seçilir. Bu işlemler auto seçimi ile manuel yapmaya göre daha hızlı şekilde cihaza yaptırılmış olur. Örneğin üretim amaçlı her gün yüzlerce eprom programlayacağınızı varsayalım. Bu işlemi yapmak için seçeceğiniz programlayıcılarda programlama hızı çok önemlidir. Sırayla şu işlemleri yapacak şekilde düzenleyebiliriz, (auto configution); blank check (silik olup olmadığının kontrolü), program (Ram deki bilginin Eprom’a yazılması), Verify, Verify, Verify (üç kez yapıp performansının denenmesi). Bu işlemlerin herhangi birinde hata olursa, işlem anında durur ve hata bilgisi ekranda görülür. SAVE (Kayıt): Programlayıcı RAM indeki bilginin bilgisayara kaydedilmesini sağlar. Bilgisayar ortamında klasörleme yaparak, sonradan programa kolayca ulaşılmasını sağlayacak şekilde verilerin kaydedilmesi önerilir. Yükleme esnasında sorulan formatlarda hep ‘BINARY’ ‘.bin’ i seçmeniz önerilir. Bu en temel formattır. Resim 6.10 ’da menü görülmektedir. |
||||||||||||||||||
![]() Resim 6.10. Verinin kayıt edilmesiLOAD (Yükle): Bilgisayarda daha önceden kayıtlı olan bilginin programlayıcının ram’ine yüklenmesini sağlar. Test etmek istediğimiz malzemenin programının daha önce kayıt (save) edildiğini varsayalım. Device menüsünden öncelikle malzeme adı seçilir. ‘LOAD’ a tıklanarak, malzeme verisi daha önce yüklediğimiz dosyadan seçilip, OK’e tıklanarak programlayıcı RAM ’ine yüklenir. Malzeme ZIF sokete yerleştirilip, ‘verify’a tıklanır ise malzemenin programının sağlam olup olmadığının kontrolü yapılmış olur. Eğer ‘Verify Ok’ sonucu vermez ise, test edilen malzeme yazılımı zarar görmüştür veya versiyon farklılığı vardır. Üst versiyon program LOAD edilerek, program tuşuna basılarak, malzeme yeniden programlanır. Eğer eprom ise önce silinmelidir. Load esnasında da save’de olduğu gibi format olarak binary ‘.bin’ seçerek veriyi çağırmanız tavsiye edilir. BUFFER / EDIT (RAM): Bu kısma tıklandığında programlayıcı ram’ine girilir. Bu editör penceresinde sırasıyla; adres, program ve açıklama sütunları görülür. Eğer programlı malzemenin içeriği tamamen 1 veya 0 ise, veya bazı kısımları görülemiyor ise, malzeme şifrelenmiştir. Şifre yazılım tasarımını ve hakkını korumak maksadı ile tasarımcı tarafından konur. CHECKSUM (C’SUM): Toplam kontrolü demektir. Programın tamamının matematiksel toplamını gösteren özel kontrol byte ’larıdır. Programlayıcıda her READ işlemi yapıldığında bu değer otomatik hesaplanır ve buffer kısmının yanında görülür. Programın bir bit’i (bir 0 veya 1 bilgisi) değişirse bu değer de değişir. Sağlam programın checksum değeri önceden not alınır, okunan malzemenin değeri ile karşılaştırılır ise programının sağlam olup olmadığı anlaşılır. Programlı malzemelerin üzerine yapıştırılan etiketlerde genellikle bu değer de bulunur. Yok ise sizin okuduğunuz CSUM değerini yazmanızı öneririz. CSUM değeri gündelik yaşamda bilgisayarlar arasında da kullanılır. İnternet ortamından bir bilgi PC ye yüklendiğinde (download), bazen verinin hatalı geldiği mesajını verir. Gönderen bilgisayar, bilgiyi göndermeden önce csum değerini hesaplar ve önce onu gönderir. Bilgiyi alan bilgisayar da veriyi alınca csum hesaplar. Eğer bu değerler aynı değil ise hata mesajı verir. C’sum fonksiyonuna benzer şekilde birçok kontrol yöntemi fonksiyonları mevcuttur. Aynı Programlı malzeme her ‘READ’ edildiğinde Checksum değeri değişmemelidir. Değişiyor ise malzeme fiziksel arızalıdır. Bu durum bazı içerisinde sayıcı veya tarih bilgisi tutan programlı malzemeler için geçerli değildir. Bunun için malzeme datasheet ine bakılmalıdır. ERASE (Sil): Malzemenin içeriğini siler. Bazı eski nesil eprom’lar içeriği silinmeden programlanamazlar. ‘Program’ a tıklayınca ısrarla hata veriyor ise ‘erase’ yapmayı önce denemek gerekir. ID Check (Kimlik Kontrolü): Yeni nesil programlayıcılar programlı malzemeyi otomatik tanımlama özelliğine sahiptirler. Bu özellikle malzeme ismi yanlış seçilme ihtimaline karşı malzemenin zarar görmesini engeller. Programlı malzeme içerisinde programlayıcılarla görülemeyen, 1-2 byte’lık malzemeyi tanımlayan bir nevi künye bulunur. Yazılan malzeme adı ile, programlayıcının malzemeden okuduğu bu isim bilgisi değeri uyuşmuyor ise hata verir. Eprom gibi eski teknolojili malzemelerde çeşitli sebeplerden dolayı içindeki künye silinmiş olabilir. Künyesi silik bu malzemenin adı yazılıp ‘read’ e tıklandığında hata verir. Malzeme tanınmıyor veya yanlış malzeme şeklinde hata bilgisidir. Okumayı yapabilmek için, programlayıcı settings veya konfigürasyon kısımlarında bulunan ‘auto ID’ özelliğinin kaldırılması, disable yapılması gerekir. Bu işlem sonrası sorun olmadan malzeme ile çalışılma yapıldığı görülür. SECURITY FUSE (Güvenlik Sigortası): Programladığınız malzemeye koruma kodu (şifre) koyar. Bu işlem sonrası kimse programı okuyamaz. Tasarımcının program haklarını korumak için kullanılır. Hemen hemen tüm programlayıcılarda ve programlı malzemelerde bu özellik vardır. Şifre yazılımın tamamına konulabildiği gibi bir kısmına da konulabilir. Malzemeyi ‘READ’ yaptıktan sonra, EDIT’e tıkladığımızda tamamen ‘FFFF’ veya ‘0000’ görülüyor ise şifreli yani okuma korumalıdır. Bazen 3-5 satıra da konulabilir. Böyle bir durumda ‘EDIT’ kısmından bunu anlamak zordur. Şifreli olup olmadığını anlamanın en iyi yolu, sağlam bir başka programlı malzemeye bu yazılımı programlayıp cihaz üzerinde denemektir. Yeni programladığınız bir malzemeye güvenlik kodu koymak isteniyor ise, programlama yapmadan önce ‘security fuse’u etkinleştirilmelidir. Bir bölüme veya tamamına kod koyma seçeneklerinden uygun olanı seçilir. LOCK Bit (Kilit Biti): ‘Security Fuse’ a benzer şekilde programın korunması için kullanılır. Yukarıda anlatılanlar geçerlidir. Programlı malzemenin datasheet’inde bu bilgiler detaylı verilmektedir. Encryption: Bazı MCU ve MPU ’lar (Mikroişlemci ve mikrodenetleyiciler) yazılım koruma için ‘encryption code’ kullanırlar. Bir entegre eğer ‘cryption code’ ile programlanmış ise, sonrasında doğru ‘encryption code’ kullanılarak yazılım okunabilir. Bu durum ilgili malzemenin datasheet ’lerinde anlatılmaktadır.6.4. SONUÇ VE ÖNERİLER Programlayıcıları tasarımcılar birden fazla işlem için kullanabilirler. Malzeme konfigürasyonları yaparak malzemeyi derleyebilir, emülatör işlevi vs. yaptırabilirler. Teknik servis personeli ise genelde; sağlam programlı malzemeleri yedeklemek (SAVE), gerektiğinde yeni temin edilen boş programlı malzemeleri programlamak ve şüphelenilen programlı malzemelerin yazılımını karşılaştırmak (VERİFY) için kullanır. Bu işlemleri başarı ile yerine getirmesi yeterlidir. Programlı malzemelerin program yedeklerinin alınması önemlidir. Elektronik karttaki tüm malzemeler temin edilebilir, test edilir ve arıza giderilebilir. Fakat sağlam program yedeği yok ve program zarar görmüş ise, maalesef yeniden tasarlamak bazen daha kolaydır. Ülkemize, özellikle yurtdışından satılan pahalı ve önemli kartların program yedeklerinin alınması ve her işletmede veri bankası hazırlanması çok önemli bir konudur. İhaleli alımlarda, rekabet ortamı da var ise, firmalar ile görüşülüp, bu programlı malzemelerin yedekleri istenilebilir. Maalesef sadece program arızaları sebebiyle, yurtdışı menşeili cihazlara büyük miktarlar ödenmiş ve ödenmeye devam edilmektedir. Üstelik bu cihazların bazıları üretimden kalkmış ve teknik desteği de olmayan cihazladır. Devre içi jtag programlama örneği için yazı dizimizdeki 3. makalemiz olan ‘BOUNDARY-SCAN TEST VE JTAG ICSP PROGRAMLAMA’ ya lütfen bakınız. (http://www.emo.org.tr/ekler/a910f0e3dcb5934_ek.pdf?dergi=1172) Yazı dizimiz de elektronik test ve onarım ile ilgili tüm teknik metotlar ve bilgi makalelerimizden sonra, saha onarım uygulamaları örnekleri içeren makalelerimiz yayınlanacaktır. Programlı malzeme ve test uygulamalarına da o zaman yer verilecektir. Kaynaklar;
Yazar; |