Jtag programlayıcıyı kullanma talimatları. JTAG ICE aracılığıyla AVR devre içi hata ayıklama

Jtag programlayıcıyı kullanma talimatları.  JTAG ICE aracılığıyla AVR devre içi hata ayıklama
Jtag programlayıcıyı kullanma talimatları. JTAG ICE aracılığıyla AVR devre içi hata ayıklama

Bugün elektronikle az çok ilgilenen herkes "ürün yazılımının" ne olduğunu biliyor. Bu kategorideki birçok kişi “ürün yazılımı çökmesi” durumuyla karşılaştı. Durumun en rahatsız edici alt türü “tuğla” durumudur. Kesimin altında, incelemenin kahraman cihazını kullanarak "püskürtme" konusunda küçük bir teori ve pratik var.

Elektronikleri profesyonel olarak tamir etmiyorum ve bundan para kazanmaya çalışmıyorum. Ancak araştırma isteği, elektronik ve bilgisayar bilimleri alanındaki asgari bilgiyle birleştiğinde, bazen beni bir sonraki cihazın (ve bunun sonucunda plansız satın almaların) cesaretine girmeye itiyor.

Arka plan.

Bir keresinde bir arkadaşımı ziyaret ederken, bir çöp yığınının içinde duran, hâlâ oldukça modern bir uydu alıcısıyla karşılaştım.

Cihazın şu belirtilerle arızalı olduğu ortaya çıktı: Bir kez ikinci denemede yüklendi, ardından üçüncü denemede yeniden başlatılmaya başladı, sonra beşinci denemede, sonra onuncu denemede yeniden başlatıldı ve sonra tamamen durdu. Servis merkezi onarımlar için yetersiz miktarda ücret talep etti; sonuç olarak yeni bir tuner satın alındı ​​​​ve bu çöp yığınına atıldı. Sahibi, onu sembolik bir meblağ karşılığında satın alma teklifini memnuniyetle kabul etti ve sonuç olarak, neredeyse eksiksiz bir sete sahip hatalı bir Skyway Light tunerinin sahibi oldum - bir uzaktan kumanda, bir güç kaynağı ve hatta bir uzaktan IR alıcısı buldum.

İlk başlangıç.

İşin tuhafı, benim için yirminci kez değil, yalnızca üçüncü kez açıldı. Kanalları taradım ve göstermeye başladım. Ancak Youtube uygulamasını başlatmaya çalıştığımda dondu. Güç anahtarı yöntemini kullanan sonraki on yeniden başlatma hiçbir şeye yol açmadı. Önceki sahibi beni yanıltmadı.

İlk şüphe. Beslenme.

İnternet, besleme voltajlarını eski haline getirerek ayarlayıcıların yeniden canlandırılmasıyla ilgili raporlarla doludur. Genellikle güç kaynağının "soğuk" kısmındaki şişmiş elektrolitik kapasitörlerin değiştirilmesi yeterlidir. Ancak bu açıkça benim durumum olmayacağına söz verdi. İlk olarak, güç kaynağı uzaktır, çalışan bir tunerden benzer bir güç kaynağıyla değiştirilmesi yardımcı olmadı. İkincisi, kartta büyük elektrolitik kapasitörler yoktu, çoğunlukla analog devrelerde küçük sinyal kapasitörleri vardı.

İkinci şüphe. Aygıt yazılımı.

Firmware'i flash sürücüden aşağı düğmesine basarak veya COM bağlantı noktası üzerinden Porter Express programını kullanarak güncellemek mümkün değildi. İlk durumda, flash sürücüdeki okuma göstergesi birkaç saniye boyunca yanıp söndü ve ardından sessizlik oluştu. İkincisinde program hiçbir açıklama yapmadan “kayıt hatası” mesajı verdi ve bu da kendisine yakışmadı. Üçüncü şüpheye bu şekilde ulaştım.

Üçüncü şüphe. Flaş bellek yongası.

Bu fikre çeşitli gerçekler yol açtı. İlk olarak COM portu üzerinden bağlandıktan sonra kullanıma sunulan indirme konsolunda başlangıçta “CRC hatası” mesajı belirdi. İkinci olarak, Porter Express'i kullanarak tuner yapılandırmasını kaldırmaya çalışırken, birleştirilmiş dosya her seferinde farklı çıktı ve bayt bayt karşılaştırması sırasında öncekiyle eşleşmedi.

Aliexpress'in hızlı bir incelemesi, böyle bir çipin çok az parayla satın alınabileceğini gösterdi. Ancak burada asıl sorun ortaya çıktı: sadece bir flash sürücü satın almak yeterli değil. Flashlanması gerekiyor. Ya programlayıcıda ya da doğrudan tahtada. Benim durumumda bu, TSOP-56 paketindeki Spansion S29GL256P90TFCR2 yongası - paralel flash bellektir. Böyle bir programcının elektronik mühendisi arkadaşlar arasında veya çevrimiçi mağazalarda uygun fiyata aranması başarılı olmadı. Geriye kalan tek seçenek, lehimlemeden sonra flash sürücüyü doğrudan karta flaşlamaktır. Ve burada, ilk kez, genellikle elektronik forumlarındaki bir cümleye benzeyen bir cümle zihinsel olarak söylendi: "yalnızca JTAG yardımcı olacaktır."

JTAG hakkında biraz.

Hemen hemen her modern çip üzerindeki sistem hata ayıklama ve test etme yeteneğine sahiptir. Çoğu zaman JTAG adı verilen giriş, çıkış, saat, seçme ve sıfırlama sinyallerini içeren seri bir arayüz olarak uygulanır. Tipik olarak bu pinler, kart üzerinde pin veya ped şeklinde yönlendirilir. Sorun yalnızca elektrik arayüzünün standartlaştırılmasıdır. Belirli bir çipi kontrol etmeye yönelik komutlar bireyseldir; üstelik çoğu üretici bunları açıklamaz ve bunların tersine mühendislik kullanılarak çözülmesi gerekir. Bu nedenle, kamuya açık alanda modern popüler yonga setleriyle çalışmak için pratikte hiçbir araç yoktur.

Bir adaptör sipariş edin.

ST40 yonga setimle çalışabilen ticari ürünleri Google'da aramak beni bir onarım topluluğunun ve küçük bir çevrimiçi mağazanın bulunduğu ejtag.ru kaynağına yönlendirdi. En ucuz adaptörü araştırıp ST40 ile çalışabileceğinden emin olduktan sonra Toad ile görüşmelere başladım ve satın alma sürecine başladım. Süreç, popüler çevrimiçi mağazalarda alışık olduğumuzdan farklıdır. PayPal veya anlaşmazlık yok. Kayıt oluyoruz, ürünü sepete ekliyoruz ve sipariş veriyoruz. Bir süre sonra WM cüzdan numarasını ve ödenecek tutarı içeren bir mesaj gelir. Ödeme yapıyoruz, ödeme onayı geliyor ve birkaç gün sonra sevkiyat bildirimi geliyor. Geriye kalan tek şey beklemek. İşlemin garantisi satıcının iyi ismidir.

Makbuz, ambalajdan çıkarma, kayıt.

İçi baloncuklu ambalaja sarılmış ve antistatik bir torbaya yerleştirilmiş Rus postasından oluşan plastik bir torba, bir adaptör, bir USB A erkek - Mini USB kablosu, on pinli bloklu bir kablo (o sırada diğer fotoğraflarda görülecektir) çekim sırasında tunere bağlanmıştı), en popüler serilerin (25., 93. ve teoride 24.) seri flash sürücülerinin yanıp sönmesi için bir adaptör.

Boyutları tahmin etmek için

İç mekan fotoğrafları

İçinde 8051 komut sistemine ve tampon çipine sahip bir mikrodenetleyici bulunur.


Ekran görüntüsü, alındıktan sonra kayıt kodu talebi de dahil olmak üzere tüm satın alma sürecini gösterir:

Aliexpress'den yeni bir flash sürücü sipariş edin.

Detaylı olarak anlatmayacağım. Sipariş verdim, neredeyse iki ay sürdü, standart bir pakette plastik bir kabarcıklı olarak geldi.

Yeniden lehimleme sırasında birini öldürmem ihtimaline karşı 2 parça sipariş ettim.

Bir flash sürücüyü yeniden lehimleme.

Küçük talaşların lehimlenmesi Youtube'da defalarca anlatıldı. Burada başarının anahtarı, saç kurutma makinesi, iyi akı ve düz ellere sahip bir lehimleme istasyonunun varlığıdır. Kısacası: eski çipi üfliyoruz, pedleri düşük erime noktalı lehimle kalaylıyoruz, akı uyguluyoruz, çip yerine oturuncaya kadar saç kurutma makinesiyle (doğru hava akışı ve sıcaklıkta) üfliyoruz, düzenli lehimleme ile üstten geçiyoruz güvenilirlik için demir.

Fotoğraf, durumun pek de iyi sonuçlanmadığını gösteriyor. Bacaklar hafifçe hareket etmiştir ve yıkanmamış fluxun görüntüsü bazı tamircilerin ellerini yüzlerine bastırmasına neden olabilir. Ancak kişisel kullanım için işe yarayacaktır.

Aygıt yazılımı.

Ayarlayıcımın JTAG pin çıkışı mağaza forumunda. Karttaki kontak pedlerine lehim yapıyoruz.

Firmware için her şey hazır.

Programı başlatalım.

Listeden işlemci tipini seçin. “Bağlan” düğmesine tıklayın.

Listede bir dizi hizmet bilgisi dolaşır; “Oku”, “Yaz” ve “Sil” düğmeleri aktif hale gelir. Genellikle yalnızca önyükleyicinin flaşlanması ve ardından bir USB flash sürücüden normal şekilde flaşlanması önerilir. Ancak 32 megabaytlık tam bir döküm yükledim - ayrı bir önyükleyici paketini açmakla uğraşamayacak kadar tembeldim. Ürün yazılımı yaklaşık yarım saat sürdü, sonuç fotoğrafta:

Sürdürmek.

Mikrodenetleyiciler için programlar geliştirirken ve hata ayıklarken, programın gerçek bir devrede programlanması ve hata ayıklanmasıyla ilgili sorular ortaya çıkar. AVR mikro denetleyicilerinin programlanmasında özel bir sorun yoksa, bellenimi bir kristale "dökmek" için çok sayıda devre olduğundan, bu tür en basit devrelerden biri "beş kablo" adı verilen bir devredir, o zaman hata ayıklama sırasında bu kadar zengin bir seçenek yoktur. programı.

Bir programda hata ayıklamak için yalnızca iki seçeneği kullanmak mümkündür - bir yazılım simülatörü ve bir devre içi JTAG emülatör-programlayıcı. Bir yazılım simülatörü, kural olarak, dış etkiler, diğer cihazlarla ortak çalışma vb. Gibi devrenin tüm çalışma özelliklerini hesaba katamaz. Donanım JTAG programcı-hata ayıklayıcıları ile, doğrudan devreye monte edilmiş mikro denetleyicinin kendisindeki bir programda adım adım hata ayıklamak, mikro denetleyicinin tüm kayıtlarını görüntülemek ve değiştirmek, kesme noktalarını ayarlamak ve tabii ki devre içi programlama mümkün hale gelir mikrodenetleyicinin. Ancak orijinalin maliyeti AVR JTAG BUZ MkII Atmel tarafından üretilenler 300 avro civarında dalgalanıyor ve analogu AVDRAGON seri üretim, yaklaşık 3.000 rubleye mal oluyor ve bu, AVR mikrodenetleyicileri üzerinde "kendileri için" cihazlar oluşturan insanlar için çok pahalı.
Ama neyse ki orijinalinin bir klonunu yaratmayı başardık AVR JTAG BUZ Orijinalinden önemli ölçüde daha düşük maliyetli olan ve AVR mikrokontrolörlerinin JTAG arayüzü ile programlanmasına ve hata ayıklanmasına olanak tanıyan.

Şekil 1. AVR JTAG ICE klonunun devre şeması

Elektrik devre şeması Şekil 2'de gösterilmektedir. 1. Bu JTAG'ın temeli DD3 AVR ATMega16 mikro denetleyicisidir. DD2 MAX232 yongası, RS232 arayüzünün TTL UART seviyelerine dönüştürücüsü olarak görev yapar. DD1 yongası, DD3 mikro denetleyicisinin giriş ve çıkış devrelerini korumak ve harici güç kullanıldığında mantık seviyelerinin voltajını eşleştirmek için tasarlanmıştır.

JTAG gücü, dördüncü pin vTref XP3 aracılığıyla hata ayıklanan cihazın güç devrelerinden alınabileceği gibi, XP1 ve XP2 konektörleri aracılığıyla da harici olarak kullanılabilir. Harici voltaj 7 ila 15V aralığında olabilir. Harici bir güç kaynağı kullanırken XP3 konektörünün vTref pininin bağlanmasına gerek yoktur.
LED HL2 gücün varlığını gösterir, HL1 ise JTAG çalışma modudur.

JTAG, standart on pinli bir konnektör aracılığıyla hata ayıklaması yapılan mikro denetleyiciye bağlanır. Bağlantı şeması Şekil 2'de gösterilmektedir. 2.


Şekil 2. AVR JTAG ICE'nin hata ayıklaması yapılan cihaza bağlantı şeması

JTAG ürün yazılımı için BootLoader önyükleyicileri için birkaç seçenek var, ancak bence en başarılı seçenek Vitaly Krotevich (Vit) tarafından yapıldı. Önyükleyicisi, tescilli olanı en yakın şekilde kopyalar ve JTAG aygıt yazılımını, JTAG'ı yeniden başlatmadan ve BootStart aracılığıyla programlama moduna girmeden doğrudan AVRStudio'dan güncellemenize olanak tanır. JTAG ürün yazılımını güncellemeyi planlamıyorsanız, önyükleyiciyi flaş edemezsiniz, ancak yalnızca orijinal ürün yazılımını .

Önyükleyiciyi JTAG'a "sabitlemek" için AVReal, PonyProg, STK200, "beş telli" programlayıcıyı veya mevcut ve AVR ISP ile uyumlu diğer herhangi bir programı kullanabilirsiniz. Programlayıcı ISP programlama konnektörü XP4'e bağlanır. Firmware dosyası JTAG_ICE.hex.

Sigorta programlamanın bir örneği Şekil 3'te gösterilmektedir.


Şekil 3. AVR JTAG ICE için sigortaların ayarlanması

AVR JTAG ICE işleminin bir örneği Şekil 4'te gösterilmektedir. Örnek olarak ATMega128 imzası okunmuştur.


Şekil 4. AVR JTAG ICE kullanarak ATMega128 mikrodenetleyici imzasının okunması


Şekil 5. Uygulanan elemanlarla birlikte PCB izinin üst katmanının görüntüsü


Şekil 6. Uygulanan elemanlarla birlikte PCB izinin alt katmanının görüntüsü

Bitmiş cihazın fotoğrafları:

Not: Baskılı devre kartının devre şeması ve izi makalenin yazarı tarafından geliştirildi, önyükleyici Vitaliy Krotevich (diğer adıyla Vit) tarafından kullanıldı, ürün yazılımı orijinal AVRStudio'dandı.

Bu makaleyi yazarken aşağıdaki kaynaklardan yararlanılmıştır:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Resmi AVR JTAG ICE Kullanıcı Kılavuzu JTAGuserguide.pdf

Firmware ve PCB dosyalarını aşağıdan indirebilirsiniz.

Radyo elemanlarının listesi

Tanım Tip Mezhep Miktar NotMağazanot defterim
GG1 Tampon IC, sürücü

CD74AC244

1 Not defterine
DD2 RS-232 arayüzü entegresi

MAX232

1 ST232BD Not defterine
DD3 MK AVR 8 bit

ATmega16

1 ATmega16-16PI Not defterine
DA1 Doğrusal regülatör

LM78L05

1 Not defterine
VD1, VD2 Doğrultucu diyot

SM4007PL

2 Not defterine
VD3 Zener diyot

BZX55C5V1

1 SMBJ5.0A Not defterine
VD4, VD5 Schottky diyot

SM5819PL

2 Not defterine
HL1, HL2 NEDEN OLMUŞKR-3216-22 Not defterine
C1, C2, C4-C6, C9-C13, C16 Kapasitör0,1 uF10 Not defterine
C3 1 Not defterine
C7 Elektrolitik kapasitör470 uF 10 V1 Tantal Not defterine
C8 Kapasitör1200pF1 Not defterine
C14, C15 Kapasitör22pF2 Not defterine
R1 Direnç

36 kOhm

1 Not defterine
R2 Direnç

150 kOhm

1 Not defterine
R3-R6 Direnç

10 kOhm

4 Not defterine
R4, R10 Direnç

4,7 kOhm

2 Not defterine
R9, R11-R15 Direnç

200Ohm

7 Not defterine
R16 Direnç

İnternette çok sayıda mikrodenetleyici programlayıcı devresi bulunmaktadır. Kullandığım, hata ayıklama özelliklerine sahip devre içi evrensel USB programlayıcının bir versiyonunu sunuyorum. Bu programlayıcıyı kendi ellerinizle monte edebilirsiniz.

Programcının temeli FT2232D çipidir. USB'den iki UART bağlantı noktasına dönüştürücüdür. Tuhaflık, "üst" kanal A'nın mikrodenetleyicileri, çeşitli bellek yongalarını vb. programlamak için gerekli olan JTAG, SPI ve I 2 C modlarında çalışabilmesidir.

Bu USB programlayıcının geliştirilmesi, FTDI Chip kütüphaneleri kullanılarak bir bilgisayarda gerçekleştirilir.

Cihaz gücünü USB arayüzünden almaktadır. Doğru şekilde monte edilirse devrenin yapılandırılmasına gerek yoktur. Cihazın çalışması yazılım geliştiricisinin becerisine bağlıdır. R8, R9, R12, R13, R14, R15, R16 dirençleri cihaza yanlış bağlanırsa akım sınırlayıcıdır; buna göre programlanabilir cihazın terminalleri devredeki diğer elemanlara bağlanmamalı veya bu tür çekmelere sahip olmamalıdır. bu, gerilim bölücü seviyelerini oluştururken mantıksal mantığı bozmaz. Chip U1 kullanıcı ayarlarını kaydetmek için kullanılır.

U2 pinleri (kanal A):
24 - ADBUS0 – çıkış - JTAG TCK modunda, SPI SK modunda;
23 - ADBUS1 – çıkış - JTAG TDI modunda, SPI DO modunda;
22 - ADBUS2 – giriş - JTAG TDO modunda, SPI DI modunda;
21 - ADBUS3 – çıkış - JTAG TMS modunda, SPI modunda yardımcı sinyal (CS) olarak;
20 - ADBUS4 – JTAG modunda giriş/çıkışta, SPI modunda yardımcı çıkışta. Bu pin mikrodenetleyiciye RESET sinyali sağlamak için kullanılır;
15 - AСBUS0 – tüm modlarda serbestçe programlanabilir giriş/çıkış (isteğe bağlı olarak programlanabilir cihaza güç sağlamak için kullanılır);
13 - AСBUS1 – tüm modlarda serbestçe programlanabilen giriş/çıkış.

Prensip olarak bu sonuçlar çok işlevlidir. Davranışları, bağlantı noktası açıldığında seçilen mod tarafından belirlenir.

Kanal B, programlanabilir cihazda hata ayıklamak için kullanılır. Bunu yapmak için mikrodenetleyicide yalnızca kullanılmayan bir UART bağlantı noktasının olması gerekir. Sonrası teknoloji meselesi. Mikrodenetleyici programında formatlanmış çıktı fonksiyonunu printf() doğru yerlerde kullanıyoruz.

40 -BDBUS0 – çıkış - UART TXD modunda;
39 -BDBUS1 – giriş - UART RXD modunda;
28 - BСBUS2 – çıkış - UART modunda LED göstergesi (USB üzerinden veri iletirken yanar);
27 - BСBUS3 – çıkış - UART modunda LED göstergesi (USB üzerinden veri alırken yanar).

Aşağıda programcı devre kartı bulunmaktadır

Bugün bu evrensel programcı, JTAG ve SPI arayüzleri aracılığıyla AVR mikrokontrolörlerini desteklemektedir. Ayrıca, Atmega64 ürün yazılımının JTAG aracılığıyla hızı 5 saniyeden, SPI aracılığıyla 8 saniyeden fazla değildir. Prensip olarak, programcı spesifikasyonunun geçerli olduğu herhangi bir mikro denetleyiciyi flaşlayabilirsiniz. Örneğin şu anda NEC mikrokontrolörlerini destekleyecek geliştirmeler devam ediyor.

Çalışma formu iki bölüme ayrılmıştır: solda FLASH (üstte) ve EEPROM (altta) ile çalışmaya yönelik tablolar vardır, burada dosyaları açabilir veya mikrodenetleyiciden ürün yazılımını indirebilir, doğrulama yapabilir, bellek hücrelerinin içeriğini düzenleyebilirsiniz; sağda hata ayıklama için bir metin alanı vardır, burada B kanalından gelen veriler görüntülenir, ayrıca bağlantı noktasına gönderilecek metni de oraya girebilirsiniz (işlevsel olarak bu HyperTerminal'in bir analogudur). Geliştirme Windows için Visual C# platformunda gerçekleştirilmektedir. Başka dillerde de geliştirilmesi mümkündür. Programcı Linux altında da çalışabilir.

Kullanılan literatür:
1.A.V. Evstigneev “ATMEL'den Minik ve Mega ailelerin AVR mikrodenetleyicileri”, M. Yayınevi “Dodeka-XXI”, 2005.
2. Geleceğin Teknolojisi Cihazları Uluslararası Ltd. “FT2232D Çift USB UART/FIFO I.C.” ,Veri Sayfası, 2006.
3. Geleceğin Teknolojisi Cihazları Uluslararası Ltd. “Yazılım Uygulama Geliştirme D2XX Programcı Kılavuzu”, Belge, 2009.
4. Geleceğin Teknolojisi Cihazları Uluslararası Ltd. “Yüksek Hızlı FTCJTAG DLL için Programcılar Kılavuzu”, Uygulama notu AN_110, 2009.
5. Geleceğin Teknolojisi Cihazları Uluslararası Ltd. “Yüksek Hızlı FTCSPI DLL için Programcılar Kılavuzu”, Uygulama notu AN_111, 2009.
6. Andrew Troelsen “C# ve .NET platformu” M., S-P. Peter, 2007.

Yazılım kaynaklarını ve baskılı devre kartını aşağıdaki formatta indirebilirsiniz.

Borisov Alexey () Syzran, Samara bölgesi.

Radyo elemanlarının listesi

Tanım Tip Mezhep Miktar NotMağazanot defterim
U1 ÇipAT93C46D-8S1 Not defterine
U2 ÇipFT2232D1 Not defterine
VT1 MOSFET transistörü

BSS84

1 Not defterine
C1 Kapasitör0,01 µF1 Not defterine
C2, C3 Kapasitör27pF2 Not defterine
C4, C5, C7, C9, C10 Kapasitör0,1 uF5 Not defterine
C6 Kapasitör0,033 µF1 Not defterine
C8 Elektrolitik kapasitör10 uF1 Not defterine
R1 Direnç

2,2 kOhm

1 0,05W Not defterine
R2 Direnç

10 kOhm

1 0,05W Not defterine
R3, R4 Direnç

27Ohm

2 0,05W Not defterine
R5 Direnç

470Ohm

1 0,05W Not defterine
R6, R7 Direnç

1,5 kOhm

2 0,05W Not defterine
R8-R16 Direnç

Arşivimde uydu alıcısını yeniden canlandırmak için ihtiyaç duyduğum JTAG programlayıcının üretim sürecini gösteren bir fotoğraf buldum. Şimdi JTAG'ın ne tür bir "canavar" olduğuna dair biraz daha ayrıntı:

JTAG(İngilizce'nin kısaltması) Ortak Test Eylem Grubu; "jay-tag" olarak telaffuz edilir), IEEE 1149 standardının geliştirilmesine yönelik çalışma grubunun adıdır. Daha sonra bu kısaltma, bu grup tarafından IEEE 1149.1 standardını temel alarak geliştirilen özel donanım arayüzüyle sıkı bir şekilde ilişkilendirildi. Standardın resmi adı Standart Test Erişim Bağlantı Noktası ve Sınır Tarama Mimarisi. Arayüz, karmaşık dijital devreleri veya baskılı devre kartı düzeyindeki cihazları standart test ve hata ayıklama ekipmanına bağlamak için tasarlanmıştır. İlgilenenler için makalenin tamamına bakınız: Vikipedi.

Şimdi işimize dönelim, arkadaşlarım bana Ali M3329B işlemcideki en yaygın ve basit Globo olan bir uydu alıcısı verdi. Bu tür semptomlarla hiç açılmadı, ilk başta güç kaynağını suçladım, ancak tüm voltajları bir multimetre ile kontrol ettikten sonra güç kaynağında her şeyin yolunda olduğu ortaya çıktı. Bu alıcıların onarımı ile ilgili birkaç farklı makaleyi inceledikten sonra, semptomlara bakılırsa donanım yazılımının tamamen kaybolduğu ve bir JTAG programcısı aracılığıyla yanıp sönerek geri yüklenebileceği sonucuna vardım. Ayrıca tamamen yandığı ve geri yüklenemeyeceği düşüncesi de vardı ama yine de JTAG aracılığıyla ürün yazılımının yardımcı olacağına inanmayı tercih ettim.

Üretim için bu şemayı seçtim:

Devreye bağlı olduğu alıcıdan güç sağlanır. İki nedenden dolayı devre için harici bir güç kaynağı kullanılmasına gerek yoktur. Birincisi, akım tüketiminin çok küçük olması ve alıcının güç kaynağı üzerinde ek yük oluşturmaması, ikincisi ise flash belleğe sahip işlemci ile aynı kaynaktan güç sağlanması mantıksal seviyelerin eşleşmesini iyileştirmektedir.

74HC244 bir evirici tampon değildir. Çip iki bağımsız dört bitlik arabellek içerir. Her tamponun kendi çıkış etkinleştirme sinyali vardır (aktif düşük). Girişlerde Schmitt tetikleyicileri yoktur. Mikro devre, yüksek performans sağlayan "hızlı" CMOS teknolojisi kullanılarak yapılmıştır. Güçlü akım çıkışı, kapasitif yükte bile yüksek performansın korunmasını mümkün kılar. 74HC244'ün performansı Schottky diyotlarına dayanan çiplerle karşılaştırılabilirken 74HC244, CMOS çiplerinin avantajlarını korur; yüksek gürültü bağışıklığı ve düşük güç tüketimi. Mikro devrenin girişleri, diyotlar kullanılarak statik elektriğin neden olduğu hasarlardan korunur.

Maalesef malzemelerimde 74HC244'ü bulamadım. Yalnızca Vcc besleme voltajında ​​biraz farklılık gösteren 74F244'ün bir analogunu buldum. 74HC244'ün önerilen voltajı 2 ila 6 V, 74F244'ün önerilen voltajı ise 4,5 ila 5,5 V'dir. Maksimum sınırlar -0,5 ila +7 V arasında olmasına rağmen, bu yüzden uğraşmamaya ve üretime başlamaya karar verdim.

İlk görseldeki orijinal diyagramı alıp DipTrace programında yeniden çizdiğimizde şu diyagramı elde ettik:

Her şey otomatik olarak takip edildi, sadece bir hat takip edilmedi ancak iki SMD jumper ile bu sorun çözüldü. Yukarıdaki resim üretime hazır bir baskılı devre kartıdır.

Kart üzerinde tüm pinleri de imzaladım fakat çıkış sinyallerini maalesef hatalı imzalamışım orjinal kaynakta görüldüğü gibi 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI ve 6- RST , ancak GND, TMS, TCK, TDI, TDO ve RST'yi aldım, kişileri imzalarken bir hata yaptım, şemaya göre her şey doğru, orijinal kaynağa göre, yani. 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI ve 6- RST.

Doğru pin tanımlarına sahip PCB:

Aslında asıl önemli olan bir getinax, bir eğe, küçük bir el testeresi, zımpara kağıdıdır. Parçam her iki tarafı da folyo ile kaplandığından ve tahtamız basit, tek taraflı olduğundan, getinax'ı 2 parçaya ayırmak için bir tornavida ve bir kesici.

Tüm işleri yaptıktan sonra getinax'ı tahta boyutuna (yaklaşık 55x50 mm) çevirerek toz halindeki COMET temizlik maddesini ve bulaşık süngerini alıyoruz. Getinax'ı yağ ve kir izlerinden temizliyoruz. Kalan suyu silmemek, kurumasını beklemek daha iyidir.

Getinax kururken bilgisayara gidip diyagramımızı lazer yazıcıda ve fotoğraf kağıdında maksimum baskı kalitesini gösteren ayna görüntüsünde yazdırıyoruz. Ayna görüntüsünü ayarlamayı unutmamak önemlidir, aksi takdirde tahtadaki her şey ters yüz olur!

Ve böylece, getinax hazır, baskılı devre kartı basılıyor, getinax'ın kenarlarını fotoğraf kağıdı üzerindeki baskılı devre kartının tasarımına dikkatlice oturtuyor, yapışkan kağıt bantla getinax'a tutturuyor, ütüyü alıp yerleştiriyor maksimum sıcaklığa.

Doğal olarak getinakların folyo tarafı baskılı devre kartına göre yapılır.

Ütü ısındığında, sıkıca bastırarak ütülemeye başlarız - getinakları kağıt tarafından eşit şekilde ısıtırız. Bu boyuttaki bir kartı en fazla 30-60 saniye ısıtıyoruz, aksi takdirde toner yayılacaktır. Zamanın yakınınızda, gözünüzün önünde olması için telefonunuza bir zamanlayıcı ayarlamanızı öneririm. Her şey bittiğinde tahtanın soğumasını bekleyin.

Fotoğraf kağıdını tahtadan yırtıyoruz, önümüzde demir klorür FeCl₃ ile kazınmaya devam eden bitmiş bir tahta var, küçük kusurlar varsa, dağlamadan önce izleri bir neşter ve ince bir işaretleyici ile düzeltiyoruz. diskler.

Ferrik klorürle aşındırma işlemi sırasında, örneğin cam eşyaları çalkalayarak çözeltiyi sürekli karıştırmak gerekir. Tahtanın boyutu çok büyük değilse, tahtayı çözeltinin yüzeyine desen aşağı bakacak şekilde yerleştirebilirsiniz - sallamaya gerek yoktur, ancak dağlama işleminin sonunu takip etmek zordur. Ferrik klorürle aşındırma süresi 5 ila 50 dakika arasında değişir ve sıcaklığa, çözeltinin konsantrasyonuna, bakırla kirlenmesine ve bakır folyonun kalınlığına bağlıdır. Aşındırma işleminden sonra tahta akan su ile durulanmalı ve kurutulmalıdır.

Sonuç olarak, bu baskılı devre kartını elde ediyoruz

Toneri de Comet tozuyla temizliyoruz, oldukça iyi dayanıyor ve tahta raylarına zarar vermemek için yavaşça temizliyoruz.

Toneri temizledikten sonra düzgün ve güzel bir baskılı devre kartı görüyoruz


Şimdi elemanları lehimlemeye başlayalım:

  • Atmel tarafından üretilen resmi programcının maliyeti yaklaşık olarak 300 euro(teslimat ve gümrükleme olmadan). Daha ucuz bir seçenek - resmi olmayan "klonları" yaklaşık olarak bulabilirsiniz $150 .
  • Bu seçenek daha da ucuz ama çaba gerektiriyor çünkü... "kendin yap" kategorisinden:
    bir arama motoru aracılığıyla web'de ( AVR-JTAGICE mkII klonu) montaj talimatlarıyla birlikte programlayıcı donanım yazılımını içeren bir diyagramı kolayca bulabilirsiniz.

Programcı özellikleri

  • JTAG programlama için tam destek, ayrıca ISP ve DebugWire arayüzlerini de destekler.
  • PC'ye bağlantı USB 1.1 veya RS-232 arayüzü kullanılarak gerçekleştirilir
  • Program belleğindeki ve veri belleği adreslerindeki kesme noktaları
  • Tüm işlemler ve kesme noktaları gerçek zamanlı olarak yürütülür
  • Hata ayıklanan devreye sağlanan voltaj 1,8-5,5 V'tur
  • Harici güç kaynağı voltajı 9-12V'dir, hata ayıklayıcıya bir USB bağlantı noktasından da güç verilebilir.

Programcı AVR-JTAGICE3

JTAG hata ayıklama ve programlama arayüzünü destekleyen AVR ailesinin Atmel mikro denetleyicilerinin resmi programcısı.

AVR Studio 5 ortamında AVR mikrokontrolörlerinde hata ayıklamak için en iyi seçim olduğunu düşünüyorum. Bu arada resmi olmayan bir klon bulamadım. Bilen varsa sayfaya yorum olarak yazsın.

Kullanmaya başladığımda, kullanırken bazı zorluklar yaşadım - son derece hatalı görünüyordu ve "hayata geçmesi" için AVR Studio ortamını sürekli yeniden başlatmam gerekiyordu.

Prensip olarak, her şeyin basit olduğu ortaya çıktı - hata ayıklama çalışırken programcıyla başka herhangi bir işlem gerçekleştirmeye çalışmamalısınız, örneğin sigorta ayarlarının bulunduğu bir pencereyi çağırmak. Zamanla alıştım ve sorunsuz kullandım.

Avantajları arasında, küçük boyutlarını (önceki AVR-JTAGICE mkII ile karşılaştırıldığında) ve çok yönlülüğünü vurgulayacağım - JTAG arayüzüne ek olarak aWire, SPI ve PDI da mevcuttur.

Zorluklardan biri maliyetidir. Oldukça makul olduğunu düşünüyorum - Rusya'daki resmi bayiler aracılığıyla yaklaşık 15.000 ruble.

Programcı özellikleri:

  • JTAG, aWire, SPI ve PDI arayüzlerini destekler
  • 3 donanım kesme noktası ve 1 maskelenebilir
  • Karmaşık veri türlerinde sembolik hata ayıklama
  • 128'e kadar yazılım kesme noktası
  • 1,8 ila 5,5V besleme voltajına sahip mikro devreleri destekler
  • Yüksek hız (256KB programı indirme ~14 sn. (JTAG aracılığıyla XMEGA) arayüzü)
  • USB destekli.

AVR-JTAG-USB programlayıcı

Bu programcı, JTAG hata ayıklama ve programlama arayüzünü destekleyen AVR ailesinin Atmel mikro denetleyicileri için kullanılır. Bu programcı orijinal Atmel programcısının bir klonudur. Olimex şirketi tarafından üretiliyor ve resmi olandan daha uygun bir fiyata sahip olmasıyla farklılaşıyor (Rusya'daki resmi bayiler aracılığıyla yaklaşık 4.000 ruble ve doğal olarak yurt dışından daha ucuza alabilirsiniz), işlevsellik açısından ise oldukça güvenilir ve onunla çalışırken hiçbir şikayetim olmadı. Bilgisayarın USB bağlantı noktasından çalışır ve güç alır.

Önceden dikkat edilmesi gereken tek özellik, bir geliştirme aracı olarak kullanıldığında, AVR Studio'nun yalnızca AVR Studio 4 altında çalışacağıdır. AVR Studio 5 üzerinde çalışacaksanız, hata ayıklama için kesinlikle işe yaramaz çünkü desteklenmiyor. Bu nedenle beşinci versiyon için başka bir programcı satın aldım - AVR-JTAGICE3.

Programcı özellikleri

  • Tüm AVR mikrodenetleyicilerinin JTAG arayüz desteği ile programlanması;
  • Hedef voltajı 3,0 - 5,0V;
  • USB arayüzü ile güçlendirilmiştir;
  • JTAG konektörü Atmel 2x5 pinli JTAG konektörüyle uyumludur;
  • Programlama, gerçek zamanlı emülasyon, hata ayıklama, adım adım program yürütme, kesme noktalarını ayarlama, bellek dökümü vb. için Atmel AVR STUDIO ile uyumludur;
  • Tüm analog ve dijital fonksiyonların tam emülasyonu;
  • JTAG portu üzerinden tam programlama desteği;
  • AVR STUDIO aracılığıyla güncelleme;
  • USB arabirim konektörü “A” tipindedir.

İçerik: AVR-JTAG-USB programlayıcı/emülatör.
Çalıştırmak için bir USB kablosu “AA” - SCUAA-1'e ihtiyacınız olabilir