Kullanılabilecek birkaç JTAG konektörü var, bu nedenle hangisinin ve pimlerin nasıl konumlandırıldığını söylemek zor.
Bir büyüteç alıp mikrodenetleyici modelini okumanızı öneririm. Model ile internette veri sayfasını bulabileceksiniz. Mikrodenetleyiciden PIN'e bir göz atın ve kaç tane JTAG çıkışı olduğunu görün. Bazı yeni yongaların izleme çıktıları vardır, bazılarının yoktur. Bu, seçeneklerinizi gerçekten daraltabilir.
Çeşitli JTAG bağlayıcılarına hızlıca göz atmak için buraya bir göz atmak isteyebilirsiniz.
Değerli başka bir şey çeşitli mikrodenetleyicilerin belirli bir biti olduğundan, ayarlandığında JTAG konektörlerinin devre dışı bırakıldığından bahsedilir. Bu, hiç kimsenin aygıt yazılımını çalmaya veya sistemde hata ayıklamaya çalışmadığından emin olmak için serbest bırakıldığında yapılır. JTAG'yi tekrar etkinleştirmenin tek yolu, mikro denetleyiciyi sıfırlamaktır. Bu, dahili flaşın tamamen sıfırlanmasına neden olur, dolayısıyla tüm donanım yazılımı kaybolur ...
JTAG başlangıçta donanım cihazlarını test etmek / doğrulamak için oluşturuldu. Sürece sınır tarama adı verilir ve JTAG, çalışma grubundan sonra adlandırılmıştır: J oint T est A ction G roup, 1980'lerde bir ara.
Fikir, donanımı test etmek için kullanılabilecek bir arayüz tanımlamaktı (mikro denetleyiciler ve üretimden sonra bağlı çevre birimleri). Yani donanımın geliştirilmesinden ve ardından üretilmesinden sonra.
JTAG'a göre sınır taraması yapmak için kullanılan cihazlara JTAG probları denir. Eskiden makinenizin paralel bağlantı noktasına bağlıydılar, ancak günümüzde daha çok USB aracılığıyla bağlanıyorlar ve FTDI yongalarından birine dayanıyorlar.
PCB'de yongalar ve çevre birimleri bir TAP'ye bağlı "papatya zinciri" (test erişim portu). Böylece çeşitli bileşenleri tek bir bağlantı noktasından test edebilirsiniz.
BYPASS talimatı, zincirde daha önceki bir aygıta komutlarınızı yok saymasını ve bunları iletmesini söylemek için kullanılır.
IDCODE , cihazı ve birkaç temel özelliği tanımlamak için kullanılır.
Bazı teknik ayrıntılara ayrıntılı bir genel bakış burada bulunabilir: JTAG - Teknik bir genel bakış, ancak Wikipedia makalesi ve referans listesi de değerli bilgiler sağlar. Bunun WWW ortaya çıkmadan önce yapıldığını ve bununla ilgili birçok bilginin ölü ağaçlara yasaklandığını unutmayın.
Sınır taraması terimi, süreci açıklamak için hâlâ kullanılmaktadır ve normalde iletişime geçeceğiniz BSDL kısaltmasının ( sınır taraması açıklama dili) bir parçasını oluşturmaktadır. ile bir cihazı / çipi sınır taraması yapacaksanız ve satıcı bunu yapmanızı bekliyorsa. Aksi takdirde, bu konuda oldukça gizli olma eğilimindedirler. Gizliliğin nedeni, donanım tasarımlarının bir kısmını vermeleridir ve bu donanım satıcılarının çoğu bunu bir ticari sektör olarak kabul eder. Hata ayıklamakta olduğum tam silikon revizyon olmasa da, NDA kapsamında BSDL dosyasına erişim elde etme şansım oldu. Ama BSDL dosyasının sahip olduğum yonganın silikon revizyonuyla gayet iyi çalışacağından emin oldum. Ancak donanımınızı yok etme gücünüz yoksa, BSDL verilerinizin bağlandığınız donanımla eşleştiğinden emin olmalısınız .
Bugünlerde JTAG yalnızca test . Elbette donanımda hata ayıklama, testin bir alt kümesidir, bu yüzden demek istediğim bu değil. Demek istediğim, JTAG problarının, aksi takdirde geçersiz olan donanım üzerinde ürün yazılımını flaş etmenize izin vermesidir. Ve bu, tuğlalı donanımın hatalarını gidermede gereklidir .
JTAG'yi kullanırken yapmanız gereken birkaç sorun var bağlayıcıları tanımlamanın bir yana üstesinden gelin. Ve yanıtında bahsedilen Mellowcandle'ı görmezden geleceğim.
Her şeyi doğru anladığınızdan emin olmalısınız, aksi takdirde örneğin donanımınızı kızartabilirsiniz. .
Genellikle PCB'nizde yazılı TMS, TCK, TDI vb. bulursunuz, böylece bir cihazla uğraştığınızı bilirsiniz JTAG'yi destekleyen. Büyüteçler yardımcı olabilir;)
Ancak bu gerçekten gizli bir sanat değil - iğneler etiketlenmediğinde ve üçüncü taraf belgelerine güvenmeniz gerektiğinde daha zor hale geliyor.
Elbette panonuzun yalnızca pinler / kişiler yerine bir JTAG başlığı olması da mümkündür.
Evet, gerçekten de önünüzdeki çipin türünü tanımlamanız ve hangi voltajı beklediğini bulmanız gerekir, çünkü aksi takdirde çipinizi veya JTAG probunuzu veya her ikisini birden kızartabilirsiniz .
Şanslıysanız, cihazınızda ne olduğunu ve örtük olarak hangi voltajı beklediğini öğrenmenize yardımcı olan bir JTAG başlığı vardır. Bildiğim kadarıyla ARM ve MIPS için yarı standartlar var. İlki için Mellowcandle'ın yanıtına ve ikincisi için buna ve buna bakın.
Varsayımı doğrulamak için bulabileceğiniz tüm mevcut belgeleri kullanın yaparsın. DSL yönlendiricilerinde genellikle MIPS CPU'lar bulunur, ancak ARM de yaygındır ve muhtemelen diğerleri de vardır. OpenWRT gibi projeler, donanım hakkında çok sayıda bilgiye sahiptir, hatta donanımlar tarafından doğrudan desteklenmezler.
Genellikle donanım satıcıları McCraigor Wiggler'ı veya aşırı derecede pahalı bir JTAG sondasını desteklediklerini iddia ediyorlar. Bunun anlamı, "desteklenmeyen" (satıcı tarafından) bir JTAG probu kullanmıyorsanız, kendi başınızasınız demektir! Çalışmayacağı anlamına gelmez, ancak yaptığınız şeyden (voltaj, gönderdiğiniz JTAG komutları vb.) Kesinlikle emin olmanız gerektiği anlamına gelir.
Not: bazen JTAG araştırmaları için hata ayıklayıcı veya emülatör terimlerini duyacaksınız.
JTAG pinout'u bulmak için, Google'da "JTAG Finder" için pek çok isabet var. Ayrıca kendi uygulamam var:
Bu mbed için ama denedim kolayca taşınabilir hale getirmek için (orijinal sürüm bir Stellaris panosu içindi).
Temel yaklaşımı açıklayan yorumdan bir alıntı:
Genel fikir: 1) Herhangi bir 2 pini TMS ve TCK olarak seçin 2) bunları kullanarak, TAP'yi sıfırlayın ve sonra DR'yi kaydırarak, diğer tüm pinlerin durumunu gözlemlerken 3) TAP ID gibi herhangi bir şey alan her pin için (yani bit 0, 1'dir): 4) Pimi TDI olarak kullanarak, bilinen bir düzende TAP'ye besleyin 5) kaydırmaya devam edin ve pimlerin geri kalanını izleyin 6) kalan pimlerden herhangi biri desen aldıysa, bu TDO'dur
Bir multimetre ile olası bir JTAG bağlantısını nasıl belirlediğime dair bir video oluşturdum. İşte hangi pinlerin bağlı olduğunu ve VCC em için standart bir JTAG pin çıkışı ile eşleştiğini gösteren bir resim > ve GND . Bu, zorunlu olmasa da JTAG olabileceğinin bir göstergesidir.