Soru:
JTAG'yi nasıl belirlerim ve kullanırım?
mrduclaw
2013-03-29 23:32:04 UTC
view on stackexchange narkive permalink

Ben tam anlamıyla bir yazılımcıyım. Ancak periyodik olarak donanımı parçalara ayırdığımda JTAG bağlantı noktalarını ve RS232 bağlantı noktalarını aramamı biliyorum. Şimdiye kadar her zaman şanslıydım ve RS232 portuna pinleri lehimleyebildim ve seri bir bağlantı kurabildim.

Gelecekte şanssız olduğum zamanlar için birisi bana ne açıklayabilir? JTAG (yani yalnızca bir tür JTAG var mı ve onu seri için DB-9 gibi tek bir bağlantı noktasına bağlamayı bekleyebilirim?) Ve bunu yerleşik bir sistemden aygıt yazılımını dökmek için nasıl kullanacağım? yoksa tümü üreticiye özel mi?

Dört yanıtlar:
#1
+24
Mellowcandle
2013-03-30 01:54:24 UTC
view on stackexchange narkive permalink

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 ...

Bunu deneyimlerime göre (ileri teknoloji cihazlar) JTAG'yi etkinleştirmek için donanımdan sıfırlamanın işe yaramadığından daha sık eklemek istiyorum. Bu arayüzler genellikle bir sigorta atılarak kalıcı olarak kilitlenir. Diğer durumlarda, olası kilit açma girişimleri arasında önemli gecikmelerle (bir saniyeye kadar milisaniye) 64 bit anahtarlarla parola ile korunurlar. Sadece onları bir grup cihazla kaba kuvvetlendirmeyi düşünmek istemediğinizden emin olmak için. Ve sizi biraz kandırmak için bazen size 1 kilit açma denemesi yapmaktan hoşlanırlar ve ardından soğuk sıfırlamaya kadar sıfırlamayı sessizce görmezden gelirler.
#2
+21
0xC0000022L
2013-04-25 00:17:13 UTC
view on stackexchange narkive permalink

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 .

Olası sorunlar

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. .

JTAG pinlerini tanımlayın

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.

Mikro denetleyiciyi tanımlayın

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.

JTAG araştırmaları

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.

Araçlar

JTAG kullanmak için FLOSS

GDB () bazı senaryolarda (ör. OpenOCD) bunlarla bağlantılı olarak kullanılabilir.

"Ucuz "JTAG araştırmaları

Not: bazen JTAG araştırmaları için hata ayıklayıcı veya emülatör terimlerini duyacaksınız.

  • AVR JTAGICE, Atmel - eğer AVR kontrol cihazlarını kullanıyorsunuz bunlar tercih edilen problardır
  • JTAGkey2 ve arkadaşları, Amontec
  • PicoTAP, Gopel - PicoTAP de bir süre önce bir öğrenme kitinde (CD ve benzeri) ücretsiz olarak verildi
  • Olimex'ten birkaç ucuz JTAG çözümü var (özellikle OpenOCD)
  • BusBlaster, Dangerous Prototypes
  • Son fakat bir o kadar da önemli: lehimleme ile ilgileniyorsanız: OpenJTAG
#3
+8
Igor Skochinsky
2013-06-19 21:35:57 UTC
view on stackexchange narkive permalink

JTAG pinout'u bulmak için, Google'da "JTAG Finder" için pek çok isabet var. Ayrıca kendi uygulamam var:

http://mbed.org/users/igorsk/code/JTAG_Search/

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  
#4
+7
samuirai
2013-06-19 18:54:25 UTC
view on stackexchange narkive permalink

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.

example JTAG connector



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...