Donanım Tasarımında Test Edilebilir Tasarım (DFT — Design for Testability) Yaklaşımı
Ürün geliştirme süreçlerinde test edilebilirlik hayati öneme sahiptir. Geliştirdiğiniz bir yazılım, bir donanım veya elektromekanik bir ürün olabilir. Her ürünün geliştirme, üretim ve üretim sonrası basamakları için test edilebilir nitelikte olması her aşamada kalite, zaman ve maliyet avantajı sağlayacaktır. Eğer geliştirdiğiniz ürün bir yazılım ise TDD, CI/CD gibi geliştirme tekniklerini ve araçlarını kullanmalısınız. Bu bir donanım ise DFT (Design for Testability) yaklaşımı ile ürün geliştirilmelidir.
Bu yazımda sizlere, donanım tasarımında Test Edilebilir Tasarım (DFT — Design for Testability) yaklaşımından genel hatlarıyla bahsetmek istiyorum. Özetle sürdürülebilir ürünlerin olmazsa olmazı bu yaklaşım, tasarım, üretim öncesi, üretim, kalite ve üretim sonrası süreçlerde sürekli denetimi mümkün kılan bir yaklaşımdır. Tasarlanan sistemlerin güvenilir, çalışır, üretilebilir ve müşteri taleplerini karşılayabilir olması gerekir. Bu nedenle tasarlanan sistemin test edilebilir olması gerekliliği ortaya çıkar. Önceki bir paylaşımımda benzer bir teknik olan Üretim ve Montaj İçin Tasarım (DfMA) konusuna değinmiştim. Bu yazımı da okumak isterseniz aşağıdaki linki tıklayabilirsiniz.
Üretim aşamasından itibaren değerli olan başlıca test işlemleri şöyledir.
Bileşen İşlevsellik Testi
Tasarımı oluşturan bileşenlerin görevlerini tam olarak yerine getirip getirmediği, ilgili bileşenin bağlantılarının doğruluğu ve sistem üzerindeki görevinden ziyade temel fonksiyonlarını gerçekleştirip gerçekleştiremediği test edilir. Örneğin;
- Giriş ve çıkış birimleri çalışıyor mu?
- Donanım üzerindeki gerilim değerleri olması gerektiği gibi mi?
- Buton ve göstergeler doğru çalışıyor mu?
- Haberleşme katmanları aktif mi?
- Sensörler yanıt veriyor mu?
- Bellekler hatasız mı? gibi gibi..
Tüm Sistem İşlevsellik Testi
Tüm sistemin bir bütün olarak tüm fonksiyonlarının test edildiği süreçtir. Bu süreçte donanımın amacına uygun olarak görevleri yerine getirip getirmediği test edilir. Örneğin;
- Sensör tepkileri yerinde mi?
- Giriş ve çıkışlar ile ilgili görevler yapılıyor mu?
- Komutlara verilen yanıtlar doğru mu?
- İşletim sistemi kararlı mı?
- Temel fonksiyonlar yerine getiriliyor mu?
Uyumluluk Testleri
Geliştirilen donanımın birlikte çalışacağı farklı çevre birimleri ile uyumlu çalışıp çalışmadığına yönelik testlerdir. Örneğin;
- Çevre birimler ile haberleşme sağlıklı mı?
- Sensör kartlarından gelen veriler değerlendirilebiliyor mu?
- Protokol uyum sorunları var mı?
Şimdi şunu düşünüyor olabilirsiniz. “ Bu ve buna benzer testler her ürün için yapılıyor, yapılmak zorunda zaten. Aksi durumda kalite kontrolden geçmeyecektir. “ Elbette test edilmeden hiçbir ürün sahaya çıkmaz, çıkmamalıdır. Ancak tasarımın bu testlere uygun olup olmaması test sürelerini, test maliyetlerini ve test kalitesini doğrudan etkiler. DFT sayesinde 10 dk. sürecek bir manuel test işleminin 1 dk. ve altında otomatik olarak yapılması ve de hatasız sonuçlanması mümkündür.
DFT güdümlü tasarımlarda tüm bu testlerin hızlı, hatasız ve mümkün olduğunca otomatik yapılması esastır. Bu otonom testleri yapmak için pek çok araç ve yöntem geliştirilmiştir. Bu yöntemlerin başında FPT(Flying Probe Test), MDA(Manufacturing Defect Analyser), Optik / X-Işını Tarama ve ICT ( In Circuit Tester) gelmektedir. Ancak ben daha çok Diyagnostik Test Düzeneği ile test etme ve tasarıma özel Test Aracı Geliştirme konusu üzerinde duracağım. Devre içi test (ICT- In Circuit Testing) olarak da bilinen bir yöntemden bahsedeceğim. Diğer test araçları genelde pahalı ekipmanlar gerektirir ve uygulama için bir ekip ihtiyacı muhtemeldir.
DFT neden yapılmalıdır? ( Ağırlıklı olarak gömülü sistemler dikkate alınarak anlatılmıştır.)
- Ürün geliştirme aşamasında bazı öncül testlerin yapılabilmesi,
- Üretim sırasında kısa devre, açık devre ve lehim kalitesinin analizi,
- Bootloader, Test FW ve App. FW yüklemelerinin otomatik yapılması,
- Üretim sonrasında bileşen ve işlevsellik testlerinin yapılabilmesi,
- Masaüstünde ve sahada ölçü aletlerinin ilgili test noktalarına sorunsuz, bağlanabilmesi,
- Konfigürasyon yönetiminde kullanmak ve kalite birimleri için rapor oluşturulması,
- Sahaya giden ürünün sahada testlerinin ve gerekli müdahalenin yapılabilmesi için DFT güdümlü geliştirme yapılmalıdır.
DFT Güdümlü tasarım için yapılması gereken hazırlık ve uygulamalar;
PCB taraftaki hazırlıklar
- Test için gerekli ölçüm noktalarının planlanması
Bu planlama yapılırken geliştirme aşaması ve üretim aşaması olarak iki farklı planlama yapılabilir. Prototip ve geliştirme süreçlerinde ihtiyaç duyacağınız bir kısım test noktalarına seri üretimde ihtiyacınız olmayabilir. Hatta maliyet açısından bu test noktalarını koymamanız daha faydalı olacaktır.
- Test Noktaları Neler Olabilir?
Tüm güç devreleri giriş ve çıkışları, tüm analog ve dijital GND ‘ler, haberleşme bağlantıları, On Board haberleşme hatları ( I2C, SPI, 1Wire, Uart, RMII vs.), Tüm giriş ve çıkışlar, MCU programlama ve test bağlantıları ( RST, ICSP, JTAG, SWIO, SWCLK vs.), analog giriş ve çıkışlar, devreye özel bağlantılar gibi, gibi..
- Uygun noktalara Test Pad ve Test Pinlerinin konumlandırılması
Test noktaları belirlendikten sonra test fikstürünün çalışabilmesi için uygun noktalara bu padler yerleştirilir. PCB boyutu küçülüdükçe bu padlerin yerleşimi zorlaşacaktır. Test padinin uygulanamadığı noktalarda Via, Vida, Header ve TRH lehim noktaları da test noktası olarak belirlenebilir ve programlanabilir. Her tip test noktası için farklı türde yaylı test pini tercihi yapılabilir.
- Özel Test ve Bağlantı Portlarının Sunulması (Data Loggers, DAQ, DAS, Analizörler vs.)
Test Fikstürünüze uygun Test Pad’ lerinin planlanması
Bu planlama yapılırken;
PCB‘ nin büyüklüğü, malzeme büyüklüğü ve yoğunluğu, test pad’ e ait elektriksel bilgiler, test fikstürünüzün nitelikleri, kullanılacak olan pin tipleri gibi noktalara dikkat edilmelidir. Ayrıca test edilecek donanıma özel geliştirilmiş olan test aracının da özellikleri dikkate alınmalıdır.
Gömülü Yazılım tarafındaki hazırlıklar
Testlerin Test Aracı ile yapılabilmesi için, donanımın test aracı ile uyumlu olması ve test prosedürlerine yönelik bir test yazılım modülünü içeriyor olması gerekir.
Bu test yazılımı;
- Tasarım süreçlerine yönelik bir test yazılımı olabilir.
- Donanım üretimi sonrası testlere yönelik bir test yazılımı olabilir.
- App. firmware içinde test aracına uygun bir dahili bir modül olarak olabilir.
- App. firmware içinde saha testlerini yapabilmek için tasarlanmış bir modül olabilir.
Hangi tipte bir test yazılımı sunulursa sunulsun, yazılımın planlanan test aracı ile uyumlu olması ve güncellemelerinin de bu test aracına paralel yapılması gereklidir.
Eğer sadece üretim aşamasında kullanılacak bir test FW hazırlanmış ise bu yazılım test işlemleri sonrasında yerini App. FW’ ine bırakır. Bu sayede eğer üretim için şirket dışı bir partnerden destek alıyorsanız, partnerinizin ürününüzü test edilmiş olarak size göndermesini sağlayabilirsiniz. Partneriniz test aracınızı, test FW ve test fikstürünüzü üretim öncesi sizden talep eder. Ancak App. FW paylaşmamış olursunuz. Bu da bilgi güvenliği açısından kritiktir.
Test Aracı tarafındaki Hazırlıklar
Test Aracı, geliştirilen ürüne veya ilgili ürün ailesine özel bir tasarımdır diyebiliriz. Test fikstürünüz ile entegre bir şekilde test edilecek ürüne özel tasarlanır ve fikstür sayesinde ürüne bağlanır. Gelişmiş fikstürler size programlanabilir test aracı sunabilir ancak bu her zaman ekonomik olmayabilir. Test aracı veya test kontrol ünitesi projeye özgün olarak hazırlanabilir. Bu birim, testi yönetecek olan ve raporlamayı sağlayacak olan yazılım ile test edilecek ürün arasında bir köprü vazifesi görecektir. Bu test ünitesi, test edilecek olan ürün ve bilgisayar yazılımı ile sürekli haberleşerek test aşamalarını yürütür.
Fikstür kapatıldığında, test pinleri test edilecek ürünün test padlerine temas etmiş olur ve test işleminin başlaması için gerekli bildirim yazılım tarafına iletilir. Test aracı, test ürünü üzerinde olması gereken gerilim seviyelerini kontrol ederek süreci başlatır ve hazır ise test başlar. Testi, yazılım tarafı başlatır ve test aracı test edilecek ürüne hazır olmasını bildirerek ve ilk adım atılmış olur. Test edilecek ürün test moduna geçer ve ilk komutu bekler. Test aşama aşama ilerletilir ve her aşama kayıt edilir. Testten geçen aşamalar olumlu, geçemeyen aşamalar ise olumsuz olarak raporlanır. Test tümüyle olumlu sonuçlandığında ürün kimlik bilgileri ile birlikte rapor saklanır.
Farklı ürünler için farklı test süreçleri işletilebilir. Verdiğim örnek genel hatlarıyla işlemi anlatabilmek için verilmiştir. Ürüne göre kimi ürünler bileşen ağırlıklı test edilirken kimi ürünler yazılım ağırlıklı olarak test edilebilir. Test süresince buton, gösterge, ses gibi müdahale gerektiren uygulamalar olabilir. Bu tip testlerin yapılabilmesi için sürekli testi takip edecek bir test mühendisinin teste eşlik etmesi gerebilir.
Test Pinleri
Uygulama gerekliliklerine göre farklı tipte test pinleri üretilmiştir. Test noktasının elektriksel ve sinyal karakteristiklerine uygun Test padi uygulama gerekliliği gibi aynı zamanda uygun Test pini seçimi de kritiktir.
Uygulamaya Göre Test Pini Türleri
- Genel Kullanım Test Pinleri
- Yüksek Akım Test Pinleri
- Yüksek Frekans Test Pinleri
Kullanıma Göre Test Pinleri
- Pad Tip Test Pinleri
Test için hazırlanmış olan test padlerine uygulamak üzere kullanılan pinlerdir. Akım, frekans ve test padinin boyutlarına göre çeşitlilik gösterir.
- VIA Tip Test Pinleri
Maskelenmemiş VIA’ lar üzerine uygulama yapmak için kullanılan test pinleridir.
- Lehim Üstü Test Pinleri (TRH)
Özellikle TRH malzemelerin lehimlenmiş padleri üzerinden uygulama yapmaya yönelik pinlerdir.
- Pin Header ve Vidalara yönelik uygulama pinleri
Esen Kalın.
Uğur TARLACI / 2024
ugurtarlaci@yahoo.com