Programer za odpravljanje napak oznake j izdelamo sami. Odpravljanje napak v vezju AVR prek JTAG ICE

Še en preprost v smislu proizvodnje je programator COM. Če uporabljate alternativni način vrat COM Bitbang, vmesnika COM vrat RS232 ni treba pretvoriti v SPI, ki je potreben za programiranje. Vse, kar ostane, je, da nivoje signala vrat COM (-12V, +12V) spravite na zahtevane ravni (0, +5V). To je tisto, kar počne
Programatorsko vezje COM za mikrokontrolerje AVR:

To programatorsko vezje je precej pogosto in je znano kot programator Gromov. Ime je prišlo od avtorja programa Genadija Gromova, ki je predlagal takšno shemo.

Za sestavljanje programatorja Gromov potrebujemo naslednje:

Diode KD522, KD510, 1N4148 ali podobne. Uporabite lahko vse upore, ki jih najdete. Kot kabel lahko uporabite kabel IDE. Pri povezovanju zanke se mora za bolj stabilno delovanje programatorja vsaka "signalna" žica izmenjevati z "ozemljitveno" žico. To bo zmanjšalo raven motenj, povzročenih v linijah, in s tem povečalo dolžino žice za programiranje. Dolžina kabla naj bo znotraj 50 cm. Potrebujete tudi konektor za priključitev na programabilno napravo.
Za programiranje v vezju Atmel priporoča naslednje standardne priključke:


Če se nameravate resno ukvarjati z mikrokontrolerji, naj bodo priključki standardni. Za enkratno programiranje naprave priporočam uporabo programatorja (ti konektorji se uporabljajo za povezavo gumbov in LED diod ohišja računalnika z matično ploščo - to sem vzel) in moških zatičev PLS na plošči. To omogoča čim večjo poenostavitev postavitve plošče naprave, saj so nožice za programator nameščene v neposredni bližini nog mikrokontrolerja. Noge MOSI, MISO, SCK mikrokontrolerjev AVR so vedno nameščene skupaj, zato je zanje mogoče uporabiti trojni konektor. Izvajamo ločene povezave za "ozemljitev" - GND in "ponastavitev" - ponastavitev.

Sestavljanje programatorja COM ni težko:

Za ta programator namenoma ne priskrbim tiskanega vezja, saj je vezje preprosto in se ubadanje z ožičenjem in jedkanjem plošče preprosto ne opravičuje.

Da bi naš programator COM deloval potreben, na katerega bomo priključili programator za mikrokontroler.

— Ker način Bitbang ni standarden za vrata COM računalnika, so možne okvare (čeprav tega nisem doživel). To še posebej velja za prenosnike. Kot rešitev te težave lahko priporočamo »poigravanje« z nastavitvami COM vrat (hitrost, podatkovni biti, možnosti nadzora pretoka, velikosti medpomnilnika ...).
— Priporočljivo je, da najprej priključite ločen konektor za ozemljitev, da izenačite ozemljitveni potencial programabilne naprave in računalnika. Za tiste, ki ne vedo, če je vaš računalnik priključen na navadno vtičnico, brez ozemljitvenega kontakta, potem je zaradi posebnosti filtra napajanja računalnika na ohišju računalnika vedno potencial 110 V.

Zaključek:

— Gromov programator COM je preprost in zanesljiv. Nisem ga prenehal uporabljati niti po sestavljanju USB programatorja (če se kakšen mikrokontroler neha programirati z USB programatorjem, ga bom zagotovo še enkrat preveril z Gromovovim programatorjem).
— Ker je programator Gromov sestavljen na pasivnih elementih, ne potrebuje napajanja. Še več, zaradi parazitskega napajanja je mikrokrmilnik mogoče programirati, ne da bi nanj sploh priključili vir napajanja! Čeprav odsvetujem programiranje na ta način, je dejstvo samo po sebi zanimivo.
— Za uporabnike Algorithm Builder obstaja lep bonus! Ta programator se lahko uporablja za odpravljanje napak na čipu (programska oprema JTAG).

V zadnjem času so mikrokrmilniki ARM postali razširjeni tako med profesionalnimi razvijalci kot med začetniki elektronike. Razvoj NXP je zelo priljubljen. To podjetje proizvaja široko paleto izdelkov - od poceni in z nizko porabo energije do visoko zmogljivih, ki podpirajo vmesnike, kot sta USB in Ethernet.

Bralce želim opozoriti na svoj razvoj, ki ga osebno uporabljam morda najpogosteje. To je preprost programator v vezju, ki ga lahko preprosto naredite z lastnimi rokami. Programator je zasnovan za programiranje široko uporabljenih mikrokrmilnikov ARM serije NXP, LPC2xxx. Gre za mikrokontrolerje z jedri ARM7, Cortex-M0 in Cortex-M3. Poleg tega je z njim mogoče programirati poceni 8-bitne mikrokontrolerje iz serije LPC9xx, z izjemo najpreprostejših iz serije LPC901.
Podrobnejši seznam najdete tukaj.
www.ru.nxp.com/products/microcontrollers
Programator se priključi na USB priključek in ne potrebuje dodatnega napajanja. Sestavljen je na samo dveh mikrovezjih in enem tranzistorju.
Naprava se lahko uporablja ne samo za programiranje plošče z mikrokontrolerjem, ampak tudi za komunikacijo z njim preko emuliranih serijskih vrat.

riž. 1. Shema električnega tokokroga, prvi del.

Programator je sestavljen na osnovi mikrovezja FTDI - FT232RL
www.ftdichip.com/Products/ICs/FT232R.htm
Za uspešno programiranje ne pozabite prenesti in namestiti gonilnika za čip, ki je primeren za operacijski sistem, ki ga uporabljate.
Najdete ga tukaj:
www.ftdichip.com/FTDrivers.htm
Filter L1 lahko zamenjate z uporom z uporom 10 ... 22 Ohmov.
LED diode VD1, VD3, upornosti R3, R4 je mogoče izključiti, če indikacija prenosa in sprejema podatkovnih paketov prek USB ni potrebna.


riž. 2. Električna shema, drugi del.

Za programiranje mikrokontrolerjev serije LPC2000 se uporablja konektor X3, za programiranje LPC900 X1.


riž. 3. Shema električnega vezja, drugi del samo za programiranje mikrokontrolerjev serije LPC2000.

Mikrokontrolerji serije LPC900 se ne uporabljajo pogosto; če morate programirati samo LPC2000 ARM, je mogoče drugi del vezja močno poenostaviti. Poenostavljen del je prikazan na sliki 3.


Slika 4. Shema namestitve.


Slika 5. Videz programerja.
Tako SMD kot izhodne LED se lahko uporabljajo kot LED.
Kot tranzistor bo primeren skoraj vsak tranzistor z neposrednim prevodom, primeren za pinout.

Seznam uporabljenih delov, shema vezja in plošče v formatu PCAD 2006 se nahajajo v priloženem arhivu.
docs.google.com/open?id=0B8EEcNDjnzhhUUZJbjc2cEx3NHM
Programiranje lahko opravite z brezplačnim programom Flash Magic
www.flashmagictool.com
Več o povezovanju različnih mikrokontrolerjev s programatorjem in procesu programiranja v vezju vam bom povedal v

  • Uradni programator, ki ga proizvaja Atmel, stane približno 300 evrov(brez dostave in carinjenja). Cenejša možnost - neuradne "klone" najdete za približno $150 .
  • Možnost je še cenejša, a zahteva trud, saj... iz kategorije "naredi sam":
    na spletu preko iskalnika ( klon AVR-JTAGICE mkII) zlahka najdete diagram z vdelano programsko opremo programatorja, ki ga spremljajo navodila za sestavljanje.

Značilnosti programerja

  • Popolna podpora za programiranje JTAG, podpira tudi vmesnike ISP in DebugWire.
  • Povezava z osebnim računalnikom se izvede prek vmesnika USB 1.1 ali RS-232
  • Prelomne točke na naslovih programskega pomnilnika in podatkovnega pomnilnika
  • Vse operacije in prekinitvene točke se izvajajo v realnem času
  • Napetost, ki se napaja v vezju, ki se odpravlja, je 1,8-5,5 V
  • Napetost zunanjega napajanja je 9-12V, razhroščevalnik se lahko napaja tudi iz USB vhoda

Programator AVR-JTAGICE3

Uradni programator za mikrokrmilnike Atmel iz družine AVR, ki podpirajo vmesnik za razhroščevanje in programiranje JTAG.

Mislim, da je za odpravljanje napak mikrokontrolerjev AVR v okolju AVR Studio 5 najboljša izbira. Mimogrede, nisem mogel najti nobenega neuradnega klona. Če kdo ve, naj mi sporoči v komentarjih na strani.

Ko sem ga začel uporabljati, sem imel nekaj težav z uporabo - zdelo se je, da je strašno hrošč in sem moral nenehno znova zaganjati okolje AVR Studio, da je "oživel".

Načeloma se je vse izkazalo za preprosto - ne smete poskušati izvajati nobenih drugih dejanj s programatorjem, medtem ko se izvaja odpravljanje napak, na primer priklic okna z nastavitvami varovalke. Sčasoma sem se ga navadil in ga uporabljam brez težav.

Med prednostmi bom izpostavil majhne dimenzije (v primerjavi s predhodnikom AVR-JTAGICE mkII) in vsestransko uporabnost – poleg vmesnika JTAG so na voljo še aWire, SPI in PDI.

Ena od težav je njegova cena. Mislim, da je precej spodobno - približno 15.000 rubljev prek uradnih trgovcev v Rusiji.

Lastnosti programatorja:

  • Podpira vmesnike JTAG, aWire, SPI in PDI
  • 3 prelomne točke strojne opreme in 1, ki jo je mogoče maskirati
  • Simbolično odpravljanje napak kompleksnih podatkovnih tipov
  • Do 128 prekinitvenih točk programske opreme
  • Podpira mikrovezja z napajalno napetostjo od 1,8 do 5,5 V
  • Visoka hitrost (prenos 256KB programa ~14 sekund (XMEGA prek JTAG) vmesnik)
  • USB napajanje.

AVR-JTAG-USB programator

Ta programator se uporablja za mikrokrmilnike Atmel iz družine AVR, ki podpirajo vmesnik za odpravljanje napak in programiranje JTAG. Ta programator je klon prvotnega programatorja Atmel. Proizvaja ga podjetje Olimex in se od uradnega razlikuje po ugodnejši ceni (približno 4.000 rubljev prek uradnih trgovcev v Rusiji, seveda pa ga lahko dobite ceneje neposredno iz tujine), medtem ko je glede funkcionalnosti precej zanesljiv in nimam nobenih pritožb med delom z njim. Deluje in se napaja iz USB vhoda računalnika.

Edina lastnost, na katero je vredno biti pozoren vnaprej, je, da bo AVR Studio, ko ga uporabljate kot razvojno orodje, deloval samo pod AVR Studio 4. Če boste delali na AVR Studio 5, potem je popolnoma neuporaben za odpravljanje napak, ker ne podpira. Zato sem za peto različico kupil še en programator - AVR-JTAGICE3.

Značilnosti programerja

  • Programiranje vseh AVR mikrokontrolerjev s podporo JTAG vmesnika;
  • Ciljna napetost 3,0 - 5,0 V;
  • Napajanje preko vmesnika USB;
  • JTAG konektor je združljiv z Atmel 2x5 pin JTAG konektorjem;
  • Združljiv z Atmel AVR STUDIO za programiranje, emulacijo v realnem času, odpravljanje napak, izvajanje programa po korakih, nastavitev prekinitvenih točk, izpis pomnilnika itd.;
  • Popolna emulacija vseh analognih in digitalnih funkcij;
  • Popolna programska podpora prek vrat JTAG;
  • Posodobitev prek AVR STUDIO;
  • Vmesniški priključek USB je tipa “A”.

Vsebina: programator/emulator AVR-JTAG-USB.
Za delovanje boste morda potrebovali kabel USB "AA" - SCUAA-1

Mikrokontrolerje ATmega lahko razdelimo v dve kategoriji: tiste, ki se programirajo samo preko ISP (bus MISO, MOSI, SCK žice + reset control) in tiste, ki imajo poleg JTAG vmesnik.

Iz nabora "vroče priljubljenih" krmilnikov Arduino spada ATmega v prvo kategorijo 8 ATmega 168 ATmega 328P. Toda v drugi kategoriji je tudi en primer: ATmega2560, ki se uporablja v Arduino/Freeduino MEGA 2560.

JTAG- to je mehanizem, ki vam omogoča samodejno nadzorovanje kakovosti namestitve tiskanih vezij: ali je nekaj v kratkem stiku ali, nasprotno, slabo spajkano. Zelo uporabna stvar v industrijskem merilu, še posebej, ko na eni plošči "srečno" sobivajo čipi različnih podjetij (odprt je standard IEEE 1149.1, na katerem temelji JTAG). Toliko bolj logično je, da so številni proizvajalci čipov dodali možnost programiranja in razhroščevanja svojih čipov prek istega JTAG-a.

Zakaj je JTAG morda potreben v vsakdanjem življenju?

Naprava z blagovno znamko ATMEL stane veliko (in sem jo že kupil, potem je ostalo nič negativne vsote denarja):

Kaj storiti? Rekel sem že, da je standard odprt, proces programiranja preko JTAG pa je dobro dokumentiran - samo odprite poljuben podatkovni list za mikrokontroler ATMEL z vmesnikom JTAG.

Mimogrede, nekoč, na zori nastanka mikrokrmilnikov iz ATMEL-a, je konkurenčno podjetje Microchip dražilo ATMEL, demonstrativno razstavilo nekakšno instrumentalno napravo za razvijalca programov za mikrokrmilnike ATMEL in pokazalo, da je sestavljena na mikrokrmilnikih iz njegove proizvodnje - torej na PIC. Vendar je bilo to neverjetno dolgo nazaj, svet je zdaj popolnoma drugačen (c).

Na internetu je veliko možnosti za domače kopije blagovne znamke AVR JTAG ICE. Eno od teh do popolne sramote poenostavljeno najdemo npr. Kaj je najbolj smešno - dela, čeprav je sestavljen iz praktično enega MK: ATmega16. Prvotni programator uporablja čip, ki je popolnoma združljiv z ATmega16, kar omogoča nalaganje lastniške vdelane programske opreme v domači programator (vendar je malo verjetno, da se bodo pojavili novi, ker je bil AVR JTAG ICE opuščen).

Najprej morate dobiti glavno komponento - mikrokrmilnik ATmega16-16PU in kvarc 7,3728 MHz, nato sestavite minimalno vezje za programiranje na testni plošči:

Shema - klasično, je potreben za zagon ATmega. Naj vas spomnim, kaj se običajno naredi v tem primeru:

  • priključite napajanje - vse GND in VCC (običajno vsaj dva zatiča GND);
  • postavite 100 nF (ali 0,1 µF - kar vam je ljubše) kondenzator za filtriranje šuma med GND in VCC, bližje nogam ATmega;
  • povežite kvarc med XTAL1 in XTAL2 in ju povežite skozi dva enaka kondenzator na maso (razpon vrednosti je naveden v dokumentaciji, ni ga treba uporabiti 22 pF, možno je npr. 33 pF);
  • povlecite vrvico za ponastavitev na VCC skozi upor 10K in obesite kondenzator 100 nF na maso, da zagotovite rahlo zakasnitev na liniji za ponastavitev po priključitvi napajanja.
Videti bo nekako tako (vse se varno prilega na 300+100 maketo):

Vezje prek vtiča ISP povežemo s programatorjem in ga napajamo iz njega, nato preklopimo vdelano programsko opremo in nastavimo varovalke:

avrdude -C avrdude.conf -c usbasp -p m16 -U hfuse:w:0x1f:m -U lfuse:w:0xcf:m

avrdude -C avrdude.conf -c usbasp -p m16 -U flash:w:miniICE.hex

Če je bila operacija uspešna, je polovica bitke narejena. Lahko previdno izbrisati priključek ISP in pretvorite vezje v naslednjo obliko:

Na postavitvi je videti takole:

Verjetno ste opazili, da sem v vezju uporabil čip serijskih vrat USB - FT232RL. To je veliko bolj priročno kot vrata COM iz več razlogov. Toda SSOP ne morete priključiti na navigacijsko ploščo, zato uporabljam adapter, ki ga sam izdelam:

V klasični različici je vrstic JTAG nekoliko več kot na diagramu:

Obvezni signali so TCK, TDO, TDI in TMS (ura, podatkovni izhod, podatkovni vnos in nadzor testnega načina).

NSRST in NTRST sta nadzor ponastavitve na vodilu JTAG. V našem primeru niso potrebni, saj se ponastavitev MC lahko sproži z zaporedjem ukazov na linijah obveznih signalov.

Zdaj pa poglejmo prehrano. Zaželeno je, da se programator v vezju napaja iz vezja, ki se programira. To takoj reši problem povezovanja nivojev programabilnega vezja in programatorja. Po drugi strani pa, če ima programator pretvornik nivoja signala, razlika med VCC programatorja in tarčo ni več problem (če ne štejemo zapletenosti vezja programatorja).

Iz obvezne vrstice VTref Naprava mora biti napajana. Teoretično ga potrebuje pretvorniški čip zgornje ravni v programatorju. Ampak, če namerava JTAG ICE napajati iz cilja, potem linija Vdobava. Zaradi enostavnosti jih je mogoče kombinirati, vendar to ni nujno.

Odvisno od položaja mostička SV2 v vezju ATmega16, se bo napajal iz USB ali iz cilja. Bil sem prelen, da bi namestil preklopni mostiček na matično ploščo, ker naj bi se napajal samo iz cilja. Toda preden sem ga vklopil, sem to trikrat preveril USB napajanje ni priloženo . Za zanesljivost na plošči USB-TTL Odprl se je mostiček za napajanje. Naslednji kontakt M8RX povezuje se z nogo MK RX, M8TX- iz TX.

Preko AVR Studia se povežemo s programatorjem in če je vse pravilno povezano, potem lahko preberemo podpis in firmware.

(Napravo desno bom zagotovo pogledal kasneje, zaenkrat lahko samo ponovim, da ima notri ATmega128)

Edina pomanjkljivost klona AVR JTAG ICE je razmeroma majhen seznam podprtih MK:

  • ATmega128
  • ATmega128A
  • ATmega16
  • ATmega162
  • ATmega165
  • ATmega169
  • ATmega16A
  • ATmega32
  • ATmega323
  • ATmega32A
  • ATmega64
  • ATmega64A
Pravijo tudi, da je podprt AT90CAN128, vendar tega ni mogoče preveriti :(

2019-10-11 Datum zadnje posodobitve programa: 2019-10-11

Janus z dvema obrazoma

Odločili smo se, da bomo tega programerja poklicali " Janus".

Zakaj? Ker je v rimski mitologiji Janus dvoličen bog vrat, vhodov in izhodov ter začetkov in koncev. Kakšna povezava? Zakaj naš programator ChipStar-Janus dvoličen?

Evo zakaj:

  • Po eni strani, ta programator je preprost. Razdeljeno kot brezplačen projekt, mogoče je enostavno narediti sam.
  • Po drugi strani, podjetje ga je razvijalo dolgo časa poklicno angažiran razvoj in proizvodnja različne elektronske opreme, vključno s programatorji.
  • Po eni strani, ta programator je preprost, na prvi pogled nima zelo impresivnih lastnosti.
  • Po drugi strani, deluje skupaj z strokovni program(mimogrede, popolnoma enako kot drugi profesionalni ChipStar programerji).
  • Po eni strani, ponujamo ta programator brezplačno prost sklopov.
  • Po eni strani, prodajamo ga tudi v končani obliki, kot običajni proračunski izdelek.
  • Po eni strani, domačega programatorja ne pokriva garancija (kar je naravno).
  • Po eni strani, če si ga lahko sestavil, potem ga lahko popraviš, programator pa je tako preprost, da se pravzaprav nima kaj pokvariti.
  • Po eni strani, preprosto je v vezju programer
  • Po eni strani, prek preprostih razširitvenih adapterjev podpira programiranje NAND FLASH in druga mikrovezja so že "v vtičnici".

Torej programer ChipStar-Janus za marsikaterega strokovnjaka je lahko prava rešitev v situaciji, ko razni preprosti ali amaterski programerji niso več dovolj, bolj kompleksen programer pa se zdi odveč ali pa zanj ni dovolj dodeljenega proračuna.

Kaj nas je spodbudilo k razvoju tega programatorja.

Obstaja veliko različnih preprostih specializiranih programerjev, primernih za self-made.

Veliko je poceni kitajski programerji v pripravljeni obliki.

Kar nekaj jih je amaterski razvoj, ki je po kakovosti pogosto boljši od slednjega.

Zdi se, kakšen je smisel druge obrti?

Že dolgo časa razvijamo, izdelujemo in podpiramo univerzalne programerje, predvsem za namene. Imamo bogate izkušnje pri delu z najrazličnejšimi mikrovezji. Pogosto nas kontaktirajo ljudje, ki so katerega od zgoraj omenjenih “izdelkov” že zbrali in pogosto kupili. Za naše strokovnjake je pogosto nemogoče pogledati zasnove vezij, kakovost izdelave in še posebej programsko opremo teh naprav brez smeha/solz/groze (podčrtaj, kot je primerno). Nič hudega, ko programer stane "tri kopejke", ga kupiš, nekateri delajo, drugi ne, a denarja ni veliko. Pogosto pa nas razmerje med ceno in zmogljivostjo takih naprav milo rečeno preseneti. Rad bi vzkliknil: ne stane toliko!

Poleg vsega naštetega obstaja posebna kategorija programerjev, primernih za lastno proizvodnjo - to so programerji (natančneje programska vezja in programska oprema), ki so jih razvili strokovnjaki iz podjetij, ki proizvajajo mikrovezja (predvsem mikrokontrolerje). Takšni programatorji so zasnovani precej profesionalno, v njihovem načrtovanju ni "napak". Podpirajo vse deklarirane čipe. Obstajata pa dve "majhni" pomanjkljivosti: seznam programabilnih mikrovezij je zelo omejen (kar je povsem razumljivo) in programska oprema je zelo špartanska - praviloma brez nepotrebnih funkcij - samo izbrisati, zapisati, preveriti. Pogosto celo funkcije branje mikročipa ni.

Torej programer ChipStar-Janus v začetni konfiguraciji je programator v vezju. V tem načinu podpira mikrokontrolerje PIC in AVR podjetja Mikročip, nekatere arhitekture mikrokrmilnikov MCS51, mikrokontrolerji podjetja STMicroelectronics in številni drugi, pa tudi serijski pomnilniški čipi z vmesnikom I2C(večinoma epizoda 24). Na razširitveni konektor programatorja lahko priključite preproste adapterje in začnete programirati pomnilniške čipe "v vtičnici".

Zdaj se programiranje izvaja "v vtičnici":

  1. EPROM) z vmesnikom I2C(serija 24xx);
  2. serijski flash pomnilniški čipi (Serial FLASH) z vmesnikom SPI (SPI Flash);
  3. serijski pomnilniški čipi (Serial EPROM) z vmesnikom M.W. (serija 93xx);
  4. mikrovezja NAND FLASH;

Programator in programska oprema podpirata tehnologijo samostojnega dodajanja mikrovezij v treh klikih. Dodajanje mikrovezij je bilo doslej izvedeno NAND in I2C. V zelo bližnji prihodnosti je načrtovana implementacija te tehnologije za MW čipe ( serija 93xx) In AVR. Tako ne dobite samo programerja, ampak močno orodje za samostojno delo.

Trije načini do programatorja ChipStar-Janus

1. način:
Programator v celoti sestavite sami

Metoda je primerna za tiste, ki imajo čas, izkušnje in željo, vendar omejena finančna sredstva. Ali samo radoveden.

Algoritem dejanj:

2. način:
Programator sestavite sami z nakupom že pripravljenega tiskanega vezja in mikrokrmilnika vdelane programske opreme

Metoda je podobna prejšnji, le da se boste rešili najtežjih operacij: izdelava tiskanih vezij in utripanje vdelane programske opreme mikrokrmilnika brez programatorja.

Algoritem dejanj:

  1. Preberite pogoje uporabe samosestavljenega programatorja.
  2. Preberite navodila za sestavljanje programatorja.
  3. Prenesite celotno dokumentacijo za programer.
  4. Kupite komplet za sestavljanje (gotovo tiskano vezje in mikrokrmilnik z že posnetim firmwareom).
  5. Kupite potrebno opremo za sestavljanje programatorja v skladu z


Deliti