Instruktioner för att använda jtag-programmerare. AVR in-circuit felsökning via JTAG ICE

Instruktioner för att använda jtag-programmerare.  AVR in-circuit felsökning via JTAG ICE
Instruktioner för att använda jtag-programmerare. AVR in-circuit felsökning via JTAG ICE

Varje person som är mer eller mindre intresserad av elektronik idag vet vad "firmware" är. Många personer i den här kategorin stötte på situationen med "firmware-krasch". Den mest obehagliga undertypen av situationen är "tegel" -tillståndet. Nedanför snittet finns lite teori och praktik för att "spruta" med hjälp av recensionens hjälteenhet.

Jag reparerar inte professionellt elektronik och försöker inte tjäna pengar på det. Men forskningsklian, i kombination med minimal kunskap inom området elektronik och datavetenskap, driver mig ibland att komma in i magen på någon nästa enhet (och, som ett resultat, oplanerade köp).

Bakgrund.

En gång när jag besökte en vän stötte jag på en satellittuner som låg i en skräphög, fortfarande ganska modern.

Det visade sig att enheten var felaktig med följande symtom: den laddades en gång vid det andra försöket, sedan började den starta på det tredje, sedan på det femte, sedan på det tionde, sedan slutade det helt. Servicecentret debiterade ett otillräckligt belopp för reparationer som ett resultat, en ny tuner köptes helt enkelt, och denna kastades i en hög med skräp. Ägaren gick glatt med på erbjudandet att köpa den för en symbolisk summa, som ett resultat blev jag ägare till en felaktig Skyway Light-tuner med en nästan komplett uppsättning - jag hittade en fjärrkontroll, en strömförsörjning och till och med en fjärransluten IR-mottagare.

Första starten.

Konstigt nog tändes det för mig inte den tjugonde gången, utan bara den tredje. Jag skannade kanalerna och började visa. Men när jag försökte starta Youtube-applikationen frös den. De följande tio omstarterna med strömbrytarmetoden ledde inte till någonting. Den tidigare ägaren lurade mig inte.

Första misstanken. Näring.

Internet är fullt av rapporter om att återuppliva tuners genom att återställa matningsspänningarna. Vanligtvis räcker det att byta ut svullna elektrolytkondensatorer i den "kalla" delen av strömförsörjningen. Men detta lovade helt klart att inte vara mitt fall. För det första är strömförsörjningen avlägsen, att ersätta den med en liknande från en fungerande tuner hjälpte inte. För det andra fanns det inga stora elektrolytkondensatorer på kortet, mest små signalkondensatorer i analoga kretsar.

Andra misstanken. Firmware.

Det var inte möjligt att uppdatera firmware vare sig från flashenheten genom att trycka på ned-knappen, eller genom COM-porten med hjälp av Porter Express-programmet. I det första fallet blinkade läsindikatorn på flashenheten i flera sekunder, varefter det blev tyst. I den andra visade programmet ett "inspelningsfel"-meddelande utan någon förklaring, vilket inte passade det. Så här kom jag till den tredje misstanken.

Den tredje misstanken. Flash minneschip.

Flera fakta föranledde denna idé. För det första, i nedladdningskonsolen, som blev tillgänglig efter anslutning via COM-porten, dök meddelandet "CRC-fel" upp vid start. För det andra, när man försökte ta bort tunerkonfigurationen med Porter Express, blev den sammanslagna filen annorlunda varje gång, och matchade inte den föregående under en byte-för-byte-jämförelse.

En snabb studie av Aliexpress visade att ett sådant chip kan köpas för lite pengar. Men här dök huvudproblemet upp: det räcker inte att bara köpa en flash-enhet. Den måste blinka. Antingen på programmeraren eller direkt på tavlan. I mitt fall är detta Spansion S29GL256P90TFCR2-chippet - parallellt flashminne i ett TSOP-56-paket. Sökandet efter en sådan programmerare, antingen bland elektronikvänner eller i nätbutiker till ett adekvat pris, lyckades inte. Det enda alternativet kvar är att flasha flashenheten direkt på kortet efter lödning. Och här, för första gången, uttalades en fras mentalt, som vanligtvis låter som en mening på elektronikforum: "bara JTAG kommer att hjälpa."

Lite om JTAG.

Nästan varje modernt system-på-chip har förmågan att felsöka och testa. Oftast är det implementerat som ett seriellt gränssnitt med in-, utgångs-, klocka-, välj- och återställningssignaler, vilket kallas JTAG. Vanligtvis är dessa stift dragna på brädet i form av stift eller kuddar. Problemet är att endast det elektriska gränssnittet är standardiserat. Kommandona för att styra ett specifikt chip är dessutom individuella, de flesta tillverkare avslöjar dem inte och de måste listas ut med omvänd konstruktion. Det är därför det praktiskt taget inte finns några offentliga verktyg för att arbeta med moderna populära chipset.

Beställ en adapter.

Att googla på kommersiella produkter som kan fungera med min ST40-chipset ledde mig till ejtag.ru-resursen, där det finns en reparationsgemenskap och en liten onlinebutik. Efter att ha letat efter den billigaste adaptern och sett till att den kan fungera med ST40 inledde jag förhandlingar med Toad och började inköpsprocessen. Processen skiljer sig från vad vi är vana vid i populära nätbutiker. Inga PayPal eller tvister. Vi registrerar oss, lägger varan i varukorgen och gör en beställning. Efter en tid kommer ett meddelande med WM-plånboksnumret och beloppet som ska betalas. Vi betalar, betalningsbekräftelse kommer och några dagar senare - meddelande om leverans. Allt som återstår är att vänta. Garantin för transaktionen är säljarens goda namn.

Kvitto, uppackning, registrering.

En plastpåse med rysk post, inuti insvept i bubbelplast och placerad i en antistatisk påse, en adapter, en USB A hane - Mini USB-kabel, en kabel med ett tiostiftsblock (kommer att synas på andra bilder vid tillfället av inspelningen var den ansluten till tunern), en adapter för blinkande seriella flashenheter av de mest populära serierna - 25:e, 93:e och i teorin 24:e.

För att uppskatta storlekar

Foton på insidan

Inuti finns en mikrokontroller med ett 8051-kommandosystem och ett buffertchip.


Skärmdumpen visar hela köpprocessen, inklusive begäran om registreringskod efter mottagandet:

Beställ en ny flash-enhet på Aliexpress.

Jag kommer inte att beskriva det i detalj. Jag beställde den, det tog nästan två månader, den kom i en plastblister som låg i standardförpackning.

Jag beställde 2 stycken, ifall jag dödade en vid omlödning.

Omlödning av en flash-enhet.

Att löda små chips har beskrivits många gånger på Youtube. Nyckeln till framgång här är närvaron av en lödstation med en hårtork, bra flöde och raka händer. Kort sagt: vi blåser bort det gamla chipet, förtinar kuddarna med lågsmältande lod, applicerar flussmedel, blåser med en hårtork (med rätt luftflöde och temperatur) tills chipet sitter på plats, går över toppen med en vanlig lödkolv för tillförlitlighet.

Bilden visar att det inte blev särskilt bra. Benen rörde sig lite, och synen av otvättad fluss kan få vissa reparatörer att trycka handen mot ansiktet. Men för personligt bruk duger det.

Firmware.

JTAG pinout för min tuner finns på butiksforumet. Vi löder till kontaktdynorna på brädet.

Allt är klart för firmware.

Låt oss starta programmet.

Välj processortyp från listan. Klicka på knappen "Anslut".

En massa serviceinformation går igenom listan. Knapparna "Läs" och "Skriv" och "Radera" blir aktiva. Vanligtvis rekommenderas det att bara flasha starthanteraren och sedan flasha den genom den på vanligt sätt från ett USB-minne. Men jag laddade upp en full dump, 32 megabyte - jag var för lat för att bry mig om att packa upp en separat bootloader. Firmware tog ungefär en halvtimme, resultatet är på bilden:

Resume.

Vid utveckling och felsökning av program för mikrokontroller uppstår frågor relaterade till programmering och felsökning av programmet i en riktig krets. Om det inte finns några speciella problem med att programmera AVR-mikrokontroller, eftersom det finns många kretsar för att "hälla" firmware i en kristall, är en av de enklaste sådana kretsarna en krets som kallas "fem trådar", så finns det inget så rikt val vid felsökning av en programmera.

För att felsöka ett program är det möjligt att använda endast två alternativ - en mjukvarusimulator och en in-circuit JTAG emulator-programmerare. En mjukvarusimulator kan som regel inte ta hänsyn till alla driftsegenskaper hos kretsen, såsom yttre påverkan, gemensam drift med andra enheter etc. Med hårdvara JTAG programmerare-debuggers blir det möjligt att steg-för-steg felsöka ett program direkt i själva mikrokontrollern installerad direkt i kretsen, se och ändra alla register för mikrokontrollern, ställa in brytpunkter och, naturligtvis, in-circuit programmering av mikrokontrollern. Men kostnaden för originalet AVR JTAG ICE MkII producerad av Atmel fluktuerar runt 300 euro, och dess analog AVDRAGON massproducerat kostar det cirka 3 000 rubel, vilket är väldigt dyrt för människor som skapar enheter på AVR-mikrokontroller "för sig själva".
Men lyckligtvis lyckades vi skapa en klon av originalet AVR JTAG ICE, som kostar betydligt mindre än originalet och tillåter programmering och felsökning av AVR-mikrokontroller med ett JTAG-gränssnitt.

Fig 1. Kretsschema för AVR JTAG ICE-klonen

Det elektriska kretsschemat visas i fig. 1. Grunden för denna JTAG är DD3 AVR ATMega16 mikrokontroller. DD2 MAX232-chippet fungerar som en omvandlare av RS232-gränssnittet till TTL UART-nivåer. DD1-chippet är utformat för att skydda ingångs- och utgångskretsarna på DD3-mikrokontrollern och matcha spänningen på logiska nivåer när extern ström används.

JTAG-ström kan tas från strömkretsarna på enheten som felsöks genom det fjärde stiftet vTref XP3, och kan även användas externt via XP1- och XP2-kontakterna. Extern spänning kan ligga i intervallet från 7 till 15V. När du använder en extern strömkälla behöver inte vTref-stiftet på XP3-kontakten anslutas.
LED HL2 visar närvaron av ström, HL1 är JTAG-driftsläget.

JTAG är ansluten till mikrokontrollern som felsöks via en vanlig tiopolig kontakt. Anslutningsschemat som visas i fig. 2.


Fig 2. Anslutningsschema för AVR JTAG ICE till enheten som felsöks

Det finns flera alternativ för BootLoader-startladdare för JTAG-firmware, men enligt min mening gjordes det mest framgångsrika alternativet av Vitaly Krotevich (Vit). Dess bootloader replikerar närmast den proprietära och låter dig uppdatera JTAG-firmware direkt från AVRStudio utan att starta om JTAG och gå in i programmeringsläge via BootStart. Om du inte planerar att uppdatera JTAG-firmwaren kan du inte flasha starthanteraren, utan bara "flasha" den ursprungliga firmware från .

För att "koppla" starthanteraren till JTAG kan du använda AVReal, PonyProg, STK200, "fem trådar" programmerare eller någon annan tillgänglig och kompatibel med AVR ISP. Programmeraren är ansluten till ISP-programmeringskontakten XP4. Firmware-fil JTAG_ICE.hex.

Ett exempel på säkringsprogrammering visas i figur 3.


Fig 3. Inställning av säkringar för AVR JTAG ICE

Ett exempel på AVR JTAG ICE-drift visas i figur 4. Som ett exempel lästes ATMega128-signaturen


Figur 4. Läsning av ATMega128-mikrokontrollersignaturen med AVR JTAG ICE


Fig 5. Bild av det översta lagret av PCB-spåret, med applicerade element


Fig 6. Bild av bottenskiktet av PCB-spåret, med applicerade element

Foton av den färdiga enheten:

P.S. Kretsschemat och spåret av det tryckta kretskortet utvecklades av artikelns författare, startladdaren användes av Vitaliy Krotevich (aka Vit), firmwaren kom från den ursprungliga AVRStudio.

Följande källor användes när den här artikeln skrevs:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Officiell AVR JTAG ICE användarguide JTAGuserguide.pdf

Du kan ladda ner firmware och PCB-filer nedan

Lista över radioelement

Beteckning Typ Valör Kvantitet NoteraHandlaMitt anteckningsblock
DD1 Buffert IC, drivrutin

CD74AC244

1 Till anteckningsblock
DD2 RS-232 gränssnitt IC

MAX232

1 ST232BD Till anteckningsblock
DD3 MK AVR 8-bitars

ATmega16

1 ATmega16-16PI Till anteckningsblock
DA1 Linjär regulator

LM78L05

1 Till anteckningsblock
VD1, VD2 Likriktardiod

SM4007PL

2 Till anteckningsblock
VD3 Zenerdiod

BZX55C5V1

1 SMBJ5.0A Till anteckningsblock
VD4, VD5 Schottky diod

SM5819PL

2 Till anteckningsblock
HL1, HL2 LEDKR-3216-22 Till anteckningsblock
C1, C2, C4-C6, C9-C13, C16 Kondensator0,1 µF10 Till anteckningsblock
C3 1 Till anteckningsblock
C7 Elektrolytisk kondensator470 µF 10 V1 Tantal Till anteckningsblock
C8 Kondensator1200 pF1 Till anteckningsblock
C14, C15 Kondensator22 pF2 Till anteckningsblock
R1 Motstånd

36 kOhm

1 Till anteckningsblock
R2 Motstånd

150 kOhm

1 Till anteckningsblock
R3-R6 Motstånd

10 kOhm

4 Till anteckningsblock
R4, R10 Motstånd

4,7 kOhm

2 Till anteckningsblock
R9, R11-R15 Motstånd

200 Ohm

7 Till anteckningsblock
R16 Motstånd

Det finns många mikrtillgängliga på Internet. Jag presenterar en version av en in-circuit universell USB-programmerare med felsökningsmöjligheter, som jag använder. Du kan montera denna programmerare med dina egna händer.

Grunden för programmeraren är FT2232D-chippet. Det är en USB till två UART-portar-omvandlare. Det speciella är att den "övre" kanalen A kan fungera i JTAG, SPI och I 2 C-lägen, vilket krävs för att programmera mikrokontroller, olika minneschips etc.

Utvecklingen av denna USB-programmerare utförs på en dator med hjälp av bibliotek från FTDI Chip.

Enheten får ström från USB-gränssnittet. Om den är korrekt monterad behöver kretsen inte konfigureras. Enhetens funktion beror på mjukvaruutvecklarens skicklighet. Motstånd R8, R9, R12, R13, R14, R15, R16 är strömbegränsande om de är felaktigt anslutna till enheten i enlighet med detta, terminalerna på den programmerbara enheten ska inte vara anslutna till andra element i kretsen, eller ha sådana pull-ups; som inte skulle förvränga den logiska logiken vid bildande av spänningsdelarnivåer. Chip U1 används för att spara användarinställningar.

U2-stift (kanal A):
24 - ADBUS0 – utgång - i JTAG TCK-läge, i SPI SK-läge;
23 - ADBUS1 – utgång - i JTAG TDI-läge, i SPI DO-läge;
22 - ADBUS2 – ingång - i JTAG TDO-läge, i SPI DI-läge;
21 - ADBUS3 – utgång - i JTAG TMS-läge, i SPI-läge som en hjälpsignal (CS);
20 - ADBUS4 – i JTAG-läge ingång/utgång, i SPI-läge hjälputgång. Detta stift används för att ge en RESET-signal till mikrokontrollern;
15 - AСBUS0 – fritt programmerbar ingång/utgång i alla lägen (används som tillval för att mata ström till den programmerbara enheten);
13 - AСBUS1 – fritt programmerbar ingång/utgång i alla lägen.

I princip är dessa slutsatser multifunktionella. Deras beteende bestäms av det valda läget när porten öppnas.

Kanal B används för att felsöka den programmerbara enheten. För att göra detta behöver du bara ha en oanvänd UART-port i mikrokontrollern. Nästa är en fråga om teknik. I mikrokontrollerprogrammet använder vi den formaterade utdatafunktionen printf() på rätt ställen.

40 -BDBUS0 – utgång - i UART TXD-läge;
39 -BDBUS1 – ingång - i UART RXD-läge;
28 - BСBUS2 - utgång - i UART-läge LED-indikator (tänds vid överföring av data via USB);
27 - BСBUS3 – utgång - LED-indikator i UART-läge (lyser vid mottagning av data via USB).

Nedan är programmerarens kretskort

Idag stöder denna universella programmerare AVR-mikrokontroller via JTAG- och SPI-gränssnitt. Dessutom är hastigheten för Atmega64 firmware via JTAG inte mer än 5 sekunder, via SPI inte mer än 8 sekunder. I princip kan du flasha vilka mikrokontroller som helst som specifikationen för programmeraren gäller. För närvarande pågår till exempel utveckling för att stödja NEC-mikrokontroller.

Arbetsformuläret är uppdelat i två delar: till vänster finns tabeller för att arbeta med FLASH (överst) och EEPROM (nederst), här kan du öppna filer eller ladda ner firmware från mikrokontrollern, göra verifiering, redigera innehållet i minnesceller; till höger finns ett textfält för felsökning, data från kanal B visas här, du kan även skriva in text där som kommer att skickas till porten (funktionellt är detta en analog till HyperTerminal). Utvecklingen sker på Visual C#-plattformen för Windows. Det går även att utvecklas på andra språk. Programmeraren kan även arbeta under Linux.

Använd litteratur:
1. A.V. Evstigneev "AVR-mikrokontroller från Tiny och Mega-familjerna från ATMEL", M. Förlag "Dodeka-XXI", 2005.
2. Future Technology Devices International Ltd. "FT2232D Dual USB UART/FIFO I.C." , Datablad, 2006.
3. Future Technology Devices International Ltd. "Programmeringshandbok för programutveckling D2XX", dokument, 2009.
4. Future Technology Devices International Ltd. "Programmers Guide for High Speed ​​​​FTCJTAG DLL", Application note AN_110, 2009.
5. Future Technology Devices International Ltd. "Programmers Guide for High Speed ​​​​FTCSPI DLL", Application note AN_111, 2009.
6. Andrew Troelsen "C# och .NET-plattformen" M., S-P. Peter, 2007.

Du kan ladda ner mjukvarukällorna och det tryckta kretskortet i formatet nedan

Borisov Alexey () Syzran, Samara-regionen.

Lista över radioelement

Beteckning Typ Valör Kvantitet NoteraHandlaMitt anteckningsblock
U1 ChipsAT93C46D-8S1 Till anteckningsblock
U2 ChipsFT2232D1 Till anteckningsblock
VT1 MOSFET transistor

BSS84

1 Till anteckningsblock
C1 Kondensator0,01 µF1 Till anteckningsblock
C2, C3 Kondensator27 pF2 Till anteckningsblock
C4, C5, C7, C9, C10 Kondensator0,1 µF5 Till anteckningsblock
C6 Kondensator0,033 µF1 Till anteckningsblock
C8 Elektrolytisk kondensator10 µF1 Till anteckningsblock
R1 Motstånd

2,2 kOhm

1 0,05W Till anteckningsblock
R2 Motstånd

10 kOhm

1 0,05W Till anteckningsblock
R3, R4 Motstånd

27 Ohm

2 0,05W Till anteckningsblock
R5 Motstånd

470 Ohm

1 0,05W Till anteckningsblock
R6, R7 Motstånd

1,5 kOhm

2 0,05W Till anteckningsblock
R8-R16 Motstånd

Jag hittade ett foto i mitt arkiv som visade tillverkningsprocessen för JTAG-programmeraren som jag behövde för att återuppliva satellittunern. Nu lite mer detaljer om vilken typ av "odjur" JTAG är:

JTAG(förkortning för engelska) Gemensam testaktionsgrupp; uttalas "jay-tag") är namnet på arbetsgruppen för utvecklingen av IEEE 1149-standarden. Senare blev denna förkortning fast förknippad med det specialiserade hårdvarugränssnittet som utvecklats av denna grupp baserat på IEEE 1149.1-standarden. Standardens officiella namn Standard Test Access Port och Boundary-Scan arkitektur. Gränssnittet är utformat för att ansluta komplexa digitala kretsar eller PCB-nivåenheter till standard test- och felsökningsutrustning. För den som är intresserad, se hela artikeln på Wikipedia.

Låt oss nu återgå till verksamheten, mina vänner gav mig en satellittuner, den vanligaste och enklaste Globo på en Ali M3329B-processor. Med sådana symtom slog det inte på alls, först skyllde jag på strömförsörjningen, men efter att ha kontrollerat alla spänningar med en multimeter visade det sig att allt var bra med strömförsörjningen. Efter att ha studerat några olika artiklar om att reparera dessa mottagare kom jag till slutsatsen att av symtomen att döma var firmware helt förlorad, och den kan återställas genom att flasha den genom en JTAG-programmerare. Det fanns också tanken att den var helt utbränd och inte gick att återställa, men jag föredrog ändå att tro att firmware via JTAG skulle hjälpa.

För produktion valde jag detta schema:

Ström tillförs kretsen från mottagaren som den är ansluten till. Det finns inget behov av att använda en extern strömkälla för kretsen av två skäl. För det första är strömförbrukningen mycket liten och skapar inte ytterligare belastning på mottagarens strömförsörjning, och för det andra förbättrar strömförsörjningen från samma källa som processorn med flashminne matchningen av logiska nivåer.

74HC244 är inte en inverterande buffert. Chipet innehåller två oberoende fyra-bitars buffertar. Varje buffert har sin egen utgångsaktiveringssignal (aktiv låg). Det finns inga Schmitt-triggers vid ingångarna. Mikrokretsen är gjord med "snabb" CMOS-teknik, vilket säkerställer hög prestanda. Den kraftfulla strömutgången gör det möjligt att bibehålla hög prestanda även med en kapacitiv belastning. Prestandan hos 74HC244 är jämförbar med den för chips baserade på Schottky-dioder, medan 74HC244 behåller fördelarna med CMOS-chips, d.v.s. hög brusimmunitet och låg strömförbrukning. Mikrokretsens ingångar är skyddade från skador av statisk elektricitet med hjälp av dioder.

Tyvärr, jag hittade inte 74HC244 i mina förråd. Jag hittade bara en analog till 74F244, som skilde sig något i matningsspänningen Vcc. 74HC244 har en rekommenderad spänning på 2 till 6 V, och 74F244 har en rekommenderad spänning på 4,5 till 5,5 V. Även om maxgränserna är från -0,5 till +7 V, så jag bestämde mig för att inte bry mig och börja tillverka.

Genom att ta det ursprungliga diagrammet i den första bilden och rita om det i DipTrace-programmet, fick vi det här diagrammet:

Allt spårades automatiskt, bara en rad spårades inte, men detta problem löstes av två SMD-byglar. Bilden ovan är ett kretskort redo för tillverkning.

På tavlan signerade jag också alla stift, men tyvärr signerade jag utsignalerna felaktigt, vilket kan ses på originalkällan 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI och 6- RST , men jag fick det GND, TMS, TCK, TDI, TDO, och RST, jag gjorde ett misstag när jag signerade kontakterna, enligt diagrammet stämmer allt, enligt originalkällan, d.v.s. 1- GND, 2- TCK, 3- TMS, 4- TDO, 5- TDI och 6- RST.

PCB med korrekta stiftbeteckningar:

Egentligen är det viktigaste en getinax, en fil, en liten handsåg, sandpapper. En skruvmejsel och en skärare för att dela getinaxen i 2 delar, eftersom min bit var foliebelagd på båda sidor, och vår bräda är enkel, ensidig.

Efter att ha gjort allt arbete och vridit getinaxen till brädans storlek (cirka 55x50 mm), tar vi COMET-rengöringsmedlet i pulver och en disksvamp. Vi rengör getinaxen från spår av fett och smuts. Det är bättre att inte torka bort det återstående vattnet, utan att låta det torka.

Medan getinaxen torkar går vi till datorn och skriver ut vårt diagram på en laserskrivare och fotopapper i spegelbild, vilket indikerar maximal utskriftskvalitet. Det är viktigt att inte glömma att ställa in spegelbilden, annars får vi allt på tavlan ut och in!

Och så, getinaxen är klar, kretskortet är tryckt, passande noggrant kanterna på getinaxen till designen av kretskortet på fotopapper, fäst det på getinaxen med självhäftande papperstejp, ta strykjärnet och sätt in det till maxtemperaturen.

Naturligtvis foliesidan av getinaks till det tryckta kretskortets mönster.

När järnet har värmts upp, tryck hårt, börjar vi stryka - jämnt värma getinaks från papperssidan. Vi värmer ett bräde av denna storlek i högst 30-60 sekunder, annars sprids tonern. Jag rekommenderar att du ställer in en timer på din telefon så att tiden är nära dig, framför dina ögon. När allt är klart, låt brädan svalna.

Vi river av fotopapperet från tavlan, framför oss ligger en färdig tavla, som återstår att etsa i järnklorid FeCl₃, om det finns mindre brister, innan etsning, korrigerar vi spåren med en skalpell och en tunn markör för diskar.

Under etsningsprocessen med järnklorid är det nödvändigt att kontinuerligt röra om lösningen, till exempel genom att skaka glasvarorna. Om storleken på brädan inte är särskilt stor kan du placera brädan på ytan av lösningen med mönstret nedåt - det finns ingen anledning att skaka den, men det är svårt att spåra slutet av etsningsprocessen. Etsningstiden med järnklorid sträcker sig från 5 till 50 minuter och beror på temperaturen, koncentrationen av lösningen och dess förorening med koppar, och tjockleken på kopparfolien. Efter etsning ska skivan sköljas med rinnande vatten och torkas.

Som ett resultat får vi detta kretskort

Vi rengör även tonern med Comet-pulver, den håller ganska bra, och för att inte skada brädspåren rengör vi den långsamt.

Efter rengöring av tonern ser vi ett snyggt, vackert kretskort


Låt oss nu börja löda elementen:

  • En officiell programmerare producerad av Atmel kostar ungefär 300 euro(utan leverans och tullklarering). Ett billigare alternativ - du kan hitta inofficiella "kloner" för ungefär $150 .
  • Alternativet är ännu billigare, men kräver ansträngning, eftersom... från kategorin "gör det själv":
    på webben via en sökmotor ( klon AVR-JTAGICE mkII) kan du enkelt hitta ett diagram med programmerarens firmware tillsammans med monteringsanvisningar.

Programmerarens egenskaper

  • Fullt stöd för JTAG-programmering, stöder även ISP och DebugWire-gränssnitt.
  • Anslutning till PC görs med USB 1.1 eller RS-232 gränssnitt
  • Brytpunkter vid programminne och dataminnesadresser
  • Alla operationer och brytpunkter exekveras i realtid
  • Spänningen som tillförs kretsen som felsöks är 1,8-5,5 V
  • Den externa strömförsörjningsspänningen är 9-12V, debuggern kan även drivas från en USB-port

Programmerare AVR-JTAGICE3

Officiell programmerare för Atmel-mikrokontroller i AVR-familjen som stöder JTAG-felsöknings- och programmeringsgränssnittet.

Jag tror att för felsökning av AVR-mikrokontroller i AVR Studio 5-miljön är det bästa valet. Förresten, jag kunde inte hitta några inofficiella kloner. Om någon vet, låt mig veta i kommentarerna till sidan.

När jag började använda den upplevde jag vissa svårigheter att använda den - det verkade som att den var fruktansvärt buggig och jag var tvungen att hela tiden starta om AVR Studio-miljön för att den skulle "vakna till liv".

I princip visade sig allt vara enkelt - du bör inte försöka utföra några andra åtgärder med programmeraren medan felsökning pågår, till exempel genom att ringa upp ett fönster med säkringsinställningar. Med tiden har jag vant mig vid den och använder den utan problem.

Bland fördelarna kommer jag att lyfta fram dess små dimensioner (jämfört med sin föregångare AVR-JTAGICE mkII) och mångsidighet – förutom JTAG-gränssnittet finns även aWire, SPI och PDI tillgängliga.

En av svårigheterna är dess kostnad. Jag tycker att det är ganska anständigt - cirka 15 000 rubel genom officiella återförsäljare i Ryssland.

Programmerarens egenskaper:

  • Stöder JTAG, aWire, SPI och PDI-gränssnitt
  • 3 hårdvarubrytpunkter och 1 maskerbar
  • Symbolisk felsökning av komplexa datatyper
  • Upp till 128 mjukvarubrytpunkter
  • Stöder mikrokretsar med matningsspänningar från 1,8 till 5,5V
  • Hög hastighet (laddar ner 256KB-program ~14 sek. (XMEGA via JTAG) gränssnitt)
  • USB-driven.

AVR-JTAG-USB-programmerare

Denna programmerare används för Atmel-mikrokontroller i AVR-familjen som stöder JTAG-felsöknings- och programmeringsgränssnittet. Denna programmerare är en klon av den ursprungliga Atmel-programmeraren. Den tillverkas av Olimex-företaget och skiljer sig från den officiella genom att ha ett mer förmånligt pris (cirka 4 000 rubel via officiella återförsäljare i Ryssland, och naturligtvis kan du få det billigare direkt från utlandet), medan det när det gäller funktionalitet är ganska pålitlig och jag har inga klagomål när jag arbetar med det uppstod. Fungerar och får ström från datorns USB-port.

Den enda funktionen som är värd att uppmärksamma i förväg är att när den används som ett utvecklingsverktyg kommer AVR Studio endast att fungera under AVR Studio 4. Om du ska arbeta på AVR Studio 5, så är det absolut värdelöst för felsökning, eftersom stöds inte. Därför köpte jag en annan programmerare för den femte versionen - AVR-JTAGICE3.

Programmerarens egenskaper

  • Programmering av alla AVR-mikrokontroller med stöd för JTAG-gränssnitt;
  • Målspänning 3,0 - 5,0V;
  • Drivs av USB-gränssnitt;
  • JTAG-kontakten är kompatibel med Atmel 2x5-stifts JTAG-kontakt;
  • Kompatibel med Atmel AVR STUDIO för programmering, realtidsemulering, felsökning, steg-för-steg programexekvering, inställning av brytpunkter, minnesdump, etc.;
  • Full emulering av alla analoga och digitala funktioner;
  • Fullständigt programmeringsstöd via JTAG-port;
  • Uppdatering via AVR STUDIO;
  • USB-gränssnittskontakten är typ "A".

Innehåll: AVR-JTAG-USB programmerare/emulator.
För drift kan du behöva en USB-kabel "AA" - SCUAA-1