3- BOUNDARY SCAN TEST VE JTAG ICSP PROGRAMLAMA
Bu yazımızda BGA (Ball Grid Array) kılıfındaki elektronik malzemeler ve test metotları anlatılacak, devre içi (jtag) icsp programlama uygulaması yapılacaktır. BGA kılıf yapısındaki malzemelerin bacakları (pinleri) test propları ile dokunulamayacak şekilde kılıfın altında bulunmaktadır. Dolayısı ile test propları veya test fixture yapıları ile test edilemezler. Bu malzemelerin testini mümkün kılan boundaryscan test standardı geliştirilmiştir. 3.1. BGA Kılıfındaki Malzemeler Entegre kılıfı (package) içerisine sığdırılan transistör sayısının her iki yılda bir, iki katına çıktığı öngörülmektedir. Bununla birlikte kılıf yapıları da küçülmeye devam etmektedir. 1990’lı yıllarda SMD malzemelerin BGA (Ball Grid Array) kılıf tipleri üretilmeye başlandı. BGA kılıf tipindeki elektronik malzemelerin bacakları (pin) kılıfın altında grid sıralı yapıda ve kısa toplar şeklindedir. Şekil 3.1 de bazı BGA çeşitleri ve bacak yapıları görülmektedir. |
![]() Şekil 3.1 de Plastic BGA çeşitleri ve bacak yapıları görülmektedir. BGA ‘lar Şekil 3.1.’de görülen yapıları gereği, daha küçük alanlara daha fazla sayıda transistör sığdırılabilmektedirler. Genellikle plastik ve seramik kılıf yapısında üretilirler. BGA kılıfı PCB’ye (Prototype Circuit Board) ve kendi soğutucusuna ısı transferini kolayca aktarabilen yapıdadır. Termal performansı bu açıdan diğer yüzey montajlı teknolojili (Surface Mount Technology-SMT) malzemelere göre daha iyidir. Bacaklarının uzunlukları PGA (Pin Grid Array) veya SOIC (Small Outline IC) gibi diğer SMT kılıf tiplerine göre kısadır. Bu durum diğerlerine göre EMI (Electromagnetic Interference-Elektromanyetik Girişim) bozucu etkinin daha az olmasını sağlar. Ayrıca kısa bacak uzunlukları elektriksel direnci de azaltacağından devre performansını arttırır. Bu özellikleri yüksek elektromanyetik ortamlarda ve yüksek frekanslarda kullanımlarını mümkün kılar. Örneğin yüksek performans gerektiren PC ana kartlarında kuzey ve güney köprülerinde genellikle bu kılıf tipi tercih edilir. |
![]() Resim 3.1. BGA sökme-takma istasyonu (BGA rework station). 3.2. Boundary Scan Test Standardı 1990 yılında JTAG (Joint Test Action Group) tarafından BGA kılıf tipindeki malzemelerin kontrol ve testini mümkün kılacak ‘BOUNDARY SCAN TEST’ (BS) standardı geliştirildi. IEEE Std. 1149.1 standardı olarak kabul edildi. Bu standarda bazı kayaklarda JTAG da denilir. PCB üzerinde veri yolu üzerinde kullanılan entegrelerin (IC) içerisine BS donanım mimarisinin konulması zorunlu hale getirildi. BS test çalışmaları; malzeme, PCB ve modül seviyesindeki testlerde kullanılmaktadır. Bu testlerde analog, dijital veya karışık (mixed) BS testleri mümkün olmaktadır. |
![]() Şekil 3.2. Bir entegre içerisindeki BS Test donanım mimarisi. Şekil 3.2.’de görüldüğü gibi, IC devre içerisinde iken (in-circuit test) yaklaşık 5 adet bağlantı yapılarak BS testi yapmak mümkündür. Bu bacak isimleri; TDI, TDO, TMS, TCK ve TRST ’dir. IC deki bu bacaklar sadece BS testi işlemine ayrılmıştır. Basit bir seri haberleşme protokolü ile devre içerisinde veri yoluna bağlı tüm entegreler, fonksiyonel şekilde test edilebilmektedir. BS testi ile yapılan testler şunlardır; sistem erişim testi, BS test erişimi, hafıza testi, flash programlama, FPGA / CPLD programlama, CPU emulatörü, entegrenin sağlamlığı, bacaklarındaki lehim temas durumu, malzeme bacaklarındaki açık veya kısa devre bağlantılar. |
![]() Şekil 3.3. BS test entegre zincir yapısı. BS test yapılırken veri yoluna bağlı olan malzemelerden birinin bacaklarından bağlantı yapılarak tamamının testini yapmak mümkündür. BS test işlemlerini yapmak için kullanılan dil ‘Boundary Scan Description Language (BSDL)’dir. VHDL (Very High Speed Integrated Circuit Hardware Description Language) dili içerisinde BSDL kullanılabilir. BSDL yazılımı, bir VHDL editörü ile düzenlenip derlenebilir. BSDL test analizörlerini, test sinyallerini ve arıza belirleme rutinlerini içerir. Bir entegrenin BSDL tanımı ve standart bilgisi yardımıyla içerisindeki yazılıma erişilebilir, ilgili test verileri alınabilir, kaydedilebilir. BSDL, VHDL gibi genel amaçlı bir donanım tanımlama dili değildir. BSDL, 1149.1 uygulaması hakkında mimari, yapısal veya ayrıntılı tasarım bilgisi sağlamaz. Kısaca entegrelere BS testi için gerekli erişim yönergelerini sağlar. BSDL test edilecek malzeme içerisindeki donanım yapıların çalışması, register yapıların tanımlanması gibi donanım ayarlamalarını içermez. Bunlar zaten BS Test rutini içerisinde standart olarak mevcuttur. Böylece olası bir donanımsal mantık hatası yapılması da engellenmiş olur. BSDL, BS test uygulamasında zorunlu olarak girilmesi gereken parametreleri belirtmek için tasarlanmıştır. |
![]() Şekil 3.4. BSDL ’in test sürücüsü olarak kullanılması. Elektronik malzemelerde BS testi yapabilmek için, ATE yazılımı IC ’lerin BSDL tanımlarını kullanır. Bu tanımlamalar entegre üreticileri tarafından tasarlanır. BSDL den hangi pinlerin TAP pinleri olduğunu belirler. BS test entegre test zincirinin sırasını belirler. Bunlar bilindikten sonra, BS test kullanarak elektronik kart üzerindeki hangi düğüm noktalarının (test nodes) test edileceği belirlenip uygun testler hazırlanabilir. 3.3. Boundary Scan Test Cihazları BS test cihazları BGA gibi kılıf tipindeki malzemelerin üretilmesine paralel şekilde geliştirilmiştir. Birçok üretici firma bulunmaktadır. BS test cihazları bir bilgisayardan arayüz yazılımı sayesinde test yapmaktadırlar. Yaklaşık bir el tipi multimetre ebatlarında, yalnızca BS testi yapanlar olduğu gibi, komplike fonksiyonel test cihazlarına veya ATE sistemlerine entegre edilmiş türleri de vardır. BS test cihazları; bilgisayar yazılımı, test modülü ve elektronik kart bağlantı platformu olmak üzere 3 kısma ayrılabilir. Resim 3.2.‘de bir BS test cihazı görülmektedir. |
![]() Resim 3.2. Bir boundaryscan test cihazı. BS test cihazı analog, dijital ve karmaşık (mixed) fonksiyonel otomatik test yapabilirler. Bu testleri yapabilmek için BS test cihazının yazılım kütüphanesinden veri yolunda bulunan malzeme isimleri seçilir. Yazlım ortamında Şekil 3.3.’de görülen zincir yapısı oluşturulur. Veri yolundaki malzemelerin bacaklarından birine veya PCB üzerinde tanımlanmış BS test (Jtag) pinlerine bağlantı yapılır. Resim 3.3.’de bu bağlantı resimleri görülmektedir. Yazılım ortamında, yapılması istenilen tüm BS testleri ilgili malzemeler ve menülerden test çeşidi seçilerek yapılır. Veri yolundaki tüm malzemeler kolayca fonksiyonel test edilmiş olur. Ayrıca devre içerisinde programlı malzemelerin programlarına okuma-yazma da yapılabilir. Günümüzde elektronik devre üreticileri malzemelerin lehimleme işleri bittikten sonra bu metot ile devre içi programlama yapmaktadırlar. |
![]() Resim 3.3. Bir boundaryscan test cihazı PCB bağlantısı. Örnek olarak, bir programlı malzemenin devre içi okuma ve yazma (jtag programlama) özelliği yardımı ile test edilmesi yapılacaktır. 3.4. JTAG-ICSP Devre içi Programlama Uygulaması İşletme envanterinde çalışan tüm elektronik cihaz, modül ve kartların programlarının yedeklenmesi, program bilgi bankası oluşturulması çok önemlidir. Olası arızalarda onarım başarısızlığının en büyük sebepleri arasında program veri kayıpları gelmektedir. Bu nedenle programlama örneği burada verilecektir. |
![]() Resim 3.4. PIC16F628A-ISP malzeme seçim menüsü. Malzeme seçildiğinde information (bilgi) dosyası ekrana gelecektir. Şekil 3.5. ’de seçilen malzeme için bilgiler görülmektedir. |
![]() Şekil 3.5. PIC16F628A-ISP malzeme bilgi penceresi görünümü. Bilgi penceresinde SP610P ISP test adaptörü olan ISP-HEADER01 ‘in, programlı malzemenin hangi bacaklarına irtibatlanacağı bilgisi mevcuttur. Bilgi dosyasında en sağ kısımda ISP adaptörü ile 5 adet bağlantının elektronik malzemeye yapılması gerektiği görülmektedir. ISP özelliğini destekleyen mikrodenetleyicilerin bulunduğu elektronik kartlarda, programlayıcının dişi ISP pinlerinin (female header) kolayca irtibatlanabileceği erkek pinler (male header) genellikle bulunur. Devre üzerindeki bu erkek pinlerin, programlanacak elektronik malzeme pinlerinden hangilerine irtibatlı olduğu tespit edilmelidir. Bunun için PIC16F628A entegresi datasheet ’inden pinout’ larına bakılır. Şekil 3.6. ’da PIC16F628A pinout ‘ları görülmektedir. |
![]() Şekil 3.6. PIC16F628A pinout görünümü. Programlayıcı bilgi sayfası resmine tekrar dönülerek, elektronik malzemenin hangi bacaklarına temas edileceğini belirlenir. Bunlar pinout ’lara bakılarak belirlenir. ISP adaptörünün 1 nolu kahverengi (brown) renkli kablosu, PGC yani PIC16F628A’nın 12 nolu pinine irtibatlanmalıdır. PIC16F628A ’nın 12 nolu pininin PCB üzerinde hangi erkek header ’a irtibatlı olduğu, multimetrenin buzzer konumu ile kolayca belirlenir. Resim 3.5. ‘de bu belirleme işlemi görülmektedir. |
![]() Resim 3.5. PIC16F628A pinlerinin PCB de irtibatlı olduğu header pinlerini belirleme. Benzer şekilde diğer header ’lar da belirlenir. ISP adaptörünün 4 nolu sarı (yellow) renkli kablosu, PGD yani PIC16F628A’nın 13 nolu pinine irtibatlanmalıdır. ISP adaptörünün 8 nolu gri (grey) renkli kablosu, MCLR yani PIC16F628A’nın 4 nolu pinine irtibatlanmalıdır. ISP adaptörünün 9 nolu beyaz (white) renkli kablosu, VSS (GND) yani PIC16F628A’nın 5 nolu pinine irtibatlanmalıdır. ISP adaptörünün 10 nolu siyah (black) renkli kablosu, VDD (VCC) yani PIC16F628A’nın 14 nolu pinine irtibatlanmalıdır. Multimetre ile belirlenen header ‘lara ISP adaptörü kabloları irtibatlanır ve SP610P programlayıcıya adaptör yerleştirilir. Eğer PCB üzerinde erkek header ’lar yok ise, entegrenin programlama için gerekli olan yukarıda belirttiğimiz ilgili pinlerine irtibatlı olan en uygun noktalara mikrotest klipsleri ile bağlantı yapılır. Resim 3.6. ‘da programlayıcı ISP adaptörü ile PCB bağlantıları yapılmış şekliyle görülmektedir. |
![]() Resim 3.6. PIC16F628A ISP adaptörü PCB bağlantıları görünümü. Bağlantılar yapıldıktan sonra programlayıcı çalıştırılır, PC ortamındaki yazılım açılır. Konunun başında belirttiğimiz gibi, iki adet elektronik kart olduğunu ve programlarının sağlam olup olmadığını karşılaştırmak istiyoruz. Öncelikle birinci karta ISP bağlantıları yapılır. Programlayıcı ana menüsü ‘device’ kısmından PIC16F628A(ISP) malzemesi seçilir. Açılan pencerede ‘Read’ e tıklanarak, malzeme içeriğinin programlayıcı RAM ’ine alınması sağlanır. Programlayıcının enerjisi artık kapatılmaz. Aksi halde RAM ’de bulunan bilgi silinecektir. İkinci karta ISP bağlantısı yapılarak, ‘verify’ a tıklanır. RAM ‘deki bilgi ile elektronik malzeme içeriği birebir karşılaştırılır. Eğer bir adet bit değeri farkı var ise, hata verecektir. ‘‘Verification OK’ şeklinde sonuç verir ise, programlar birebir aynıdır ve sağlamdır. Yaptığımız test neticesi Resim 3.7. ’de görüldüğü gibi ‘‘Verification OK’ şeklindedir. |
![]() Resim 3.7. PIC16F628A verify testi görünümü. Test sonucuna göre iki malzemenin de programı aynıdır ve sağlamdır. En az 5 kez ‘verify’ yaparak malzemeye performans testi yapılmış olur, her seferinde ‘Verify OK’ veriyor ise sorun yoktur. Aksi durumda malzeme fiziksel problemli veya bağlantılarımızda bir sorun vardır. |
![]() Resim 3.8. PIC16F628A programlama görünümü. Program OK’ ifadesini alamıyor iseniz, bağlantıları kontrol edip tekrar deneyiniz. Bağlantılarınızdan emin iseniz ve ısrarla program yapılamıyor ise, malzeme fiziksel arızalı olabilir. Elektronik malzeme satıcılarından sağlam bir malzeme temin edilip programlanır. Başarılı program sonrası, en az 5 kez ‘verify’ yapılması önerilir. Kaynaklar;
Yazar; |