Ano ang isang JTAG programmer? In-circuit emulator Bakit pumili ng JTAG programmer

-Ano ang gusto nila?

- "Ku" gusto nila...

(Kin-tsa-tsa)

Kaya, may pangangailangan na gumawa ng isang simple (medyo, siyempre) in-circuit emulator para sa AVR. Mayroong supply para sa demand na ito.

Sinusuportahan ng AVR Studio ang JTAG ICE at maaaring mag-install ng mga update sa firmware dito. Ito ang ating gagamitin. Siyempre, mahirap i-assemble ang device na ito sa iyong tuhod, napakaraming detalye, ngunit kung magsusulat ka ng mga programa na mas kumplikado kaysa sa "Hello Word", kung gayon ang circuit board ay mabilis na nagiging isang mahalagang item.

Mga sinusuportahang device.

ATmega16(L), ATmega162(L), ATmega169(L o V), ATmega32(L), ATmega323(L), ​​​​ATmega64(L), ATmega128(L).

Habang inilalabas ang mga bagong bersyon ng firmware, lumalawak ang listahang ito. Maaari mong suriin ito sa website na www.atmel.com.

Mga posibilidad

  • Ganap na katugma sa AVR Studio
  • Sinusuportahan ang lahat ng AVR device na may JTAG interface
  • Ginagaya ang lahat ng digital at analog function na ipinatupad sa chip
  • Mga breakpoint, kabilang ang para sa pagbabago ng mga variable na halaga
  • Mga breakpoint sa programa at memorya ng data
  • Interface ng programmer para sa flash, eeprom, fuse at lock-bits.
  • USB interface na may computer (virtual COM port)
  • Pinapagana ang JTAG ICE device mula sa USB
  • Ang boltahe ng supply ng device na ina-debug ay mula 1.8 hanggang 6 volts

Kumokonekta sa device na ina-debug

Ang mga AVR pin na ginamit para sa JTAG interface ay maaaring gamitin bilang pangkalahatang layunin na mga pin sa circuit. Posibleng ikonekta ang isang emulator, i.e. alisin ang posibleng mga salungatan sa output-to-output na kagamitan, at isaalang-alang ang mga tampok na ito ng isang partikular na pagpapatupad ng circuit kapag nagde-debug sa programa.

Ito ay isang diagram ng pagkonekta sa debugger cable sa device. Maaaring hindi gamitin ang SRST.

Pagkonekta ng JTAG ICE sa STK500 gamit ang isang ATmega323 o isang ATmega16

Indikasyon

Mayroong kasing dami ng limang LED sa device. Ang kanilang layunin ay ang mga sumusunod:

  • VD1, VD2 - indikasyon ng palitan sa PC
  • VD3 - indikasyon ng kapangyarihan ng device na ina-debug
  • VD4 - JTAG ICE power supply mula sa USB port
  • VD5 - makipagpalitan sa device sa pamamagitan ng JTAG

Pagpapatupad.

Ang circuit diagram, naka-print na circuit board, firmware para sa U1 ay ibinigay sa apendiks. Format - gaya ng dati, PCAD-2002 ASCII. Mayroong pagkakaiba sa pagganap mula sa pagmamay-ari na pagpapatupad - isang USB->COM converter ang ipinakilala. Sa katunayan, ang dokumentasyon ay hindi nagrerekomenda ng gayong koneksyon, ngunit ginamit ko ito sa loob ng ilang taon at hindi nakakita ng anumang karagdagang mga glitches maliban sa mga karaniwan. Ang AT90S2313 (U1) ay wala na sa produksyon, ngunit maaari itong palitan ng AtTiny2313, na inaalalang iprograma ang mga kinakailangang piyus upang matiyak ang pagiging tugma. Sa totoo lang, kailangan lang ito para sa programming D2 (AtMega16), kung paano ito gawin - basahin ang HELP sa AVR Studio, seksyong "JTAG ICE Manual Firmware Upgrade". Posible na ang mga problema ay lilitaw kapag nagprograma ng U1, kung gayon sulit na i-short-circuiting ang input ng RESET D2 sa lupa, o marahil ay idiskonekta ang MISO pin nito upang hindi ito makagambala. Sa anumang kaso, ito ay isang beses na kaganapan.

Konklusyon.

Kaya, tipunin namin ang board, i-program ang U1 sa isang programmer sa pamamagitan ng XP1 connector, pagkatapos ay ikonekta ang lahat sa USB, i-install ang mga driver mula sa FTDIchip (i-download ang pinakabagong mga virtual COM port driver mula sa www.ftdichip.com). Programming D2. Ikinonekta namin ang lahat ng kahihiyan na ito sa device na ina-debug. Kami ay nagagalak, nagagalak, dumura sa direksyon ng mga masamang hangarin na si J

Ang lahat ng mga lalaki ay dapat na nakabusangot! At magalak!

(Kin-tsa-tsa)


Schematic diagram ng JTAG ICE in-circuit emulator

Paglalagay ng mga elemento sa emulator PCB

Naka-print na circuit board - tingnan mula sa gilid ng mga bahagi (Comp)

Naka-print na circuit board - tingnan mula sa gilid ng paghihinang (Solder)

Kapag bumubuo at nagde-debug ng mga programa para sa mga microcontroller, lumitaw ang mga tanong na may kaugnayan sa pagprograma at pag-debug ng programa sa isang tunay na circuit. Kung walang mga espesyal na problema sa pagprograma ng mga microcontroller ng AVR, dahil maraming mga circuit para sa "pagbuhos" ng firmware sa isang kristal, ang isa sa pinakasimpleng naturang mga circuit ay isang circuit na tinatawag na "limang mga wire", kung gayon walang ganoong mayaman na pagpipilian kapag nag-debug ng isang programa.

Upang i-debug ang isang program, posibleng gumamit lamang ng dalawang opsyon - isang software simulator at isang in-circuit na JTAG emulator-programmer. Ang isang software simulator, bilang panuntunan, ay hindi maaaring isaalang-alang ang lahat ng mga operating feature ng circuit, tulad ng mga panlabas na impluwensya, magkasanib na operasyon sa iba pang mga device, atbp. Sa hardware JTAG programmer-debuggers, nagiging posible na step-by-step na i-debug ang isang program nang direkta sa microcontroller mismo na naka-install nang direkta sa circuit, tingnan at baguhin ang lahat ng mga rehistro ng microcontroller, magtakda ng mga breakpoint at, siyempre, in-circuit programming ng microcontroller. Ngunit ang halaga ng orihinal AVR JTAG ICE MkII na ginawa ng Atmel ay nagbabago sa paligid ng 300 euros, at ang analogue nito AVDRAGON mass-produce, nagkakahalaga ito ng humigit-kumulang 3,000 rubles, na napakamahal para sa mga taong gumagawa ng mga device sa AVR microcontrollers "para sa kanilang sarili."
Ngunit sa kabutihang palad, nakagawa kami ng isang clone ng orihinal AVR JTAG ICE, na makabuluhang mas mura kaysa sa orihinal at nagbibigay-daan sa programming at pag-debug ng mga AVR microcontroller na may JTAG interface.

Fig 1. Circuit diagram ng AVR JTAG ICE clone

Ang diagram ng electrical circuit ay ipinapakita sa Fig. 1. Ang batayan ng JTAG na ito ay ang DD3 AVR ATMega16 microcontroller. Ang DD2 MAX232 chip ay gumaganap bilang isang converter ng RS232 interface sa mga antas ng TTL UART. Ang DD1 chip ay idinisenyo upang protektahan ang input at output circuit ng DD3 microcontroller at tumugma sa boltahe ng mga antas ng logic kapag gumagamit ng panlabas na kapangyarihan.

Maaaring kunin ang JTAG power mula sa mga power circuit ng device na na-debug sa pamamagitan ng ikaapat na pin na vTref XP3, at maaari ding gamitin sa labas sa pamamagitan ng XP1 at XP2 connectors. Ang panlabas na boltahe ay maaaring nasa hanay mula 7 hanggang 15V. Kapag gumagamit ng panlabas na pinagmumulan ng kuryente, ang vTref pin ng XP3 connector ay hindi kailangang ikonekta.
Ang LED HL2 ay nagpapakita ng pagkakaroon ng kapangyarihan, ang HL1 ay ang JTAG operating mode.

Ang JTAG ay konektado sa microcontroller na na-debug sa pamamagitan ng karaniwang ten-pin connector. Ang diagram ng koneksyon kung saan ay ipinapakita sa Fig. 2.


Fig 2. Connection diagram ng AVR JTAG ICE sa device na ina-debug

Mayroong ilang mga pagpipilian para sa BootLoader bootloader para sa JTAG firmware, ngunit sa aking opinyon, ang pinakamatagumpay na opsyon ay ginawa ni Vitaly Krotevich (Vit). Ang bootloader nito ay pinakamalapit na ginagaya ang pagmamay-ari at nagbibigay-daan sa iyong i-update ang JTAG firmware nang direkta mula sa AVRStudio nang hindi nire-reboot ang JTAG at pumapasok sa programming mode sa pamamagitan ng BootStart. Kung hindi mo planong i-update ang JTAG firmware, hindi mo maaaring i-flash ang bootloader, ngunit "i-flash" lamang ang orihinal na firmware mula sa .

Upang "hardwire" ang bootloader sa JTAG, maaari mong gamitin ang AVReal, PonyProg, STK200, "five wires" programmer, o anumang iba pang available at tugma sa AVR ISP. Ang programmer ay konektado sa ISP programming connector XP4. Firmware file JTAG_ICE.hex.

Ang isang halimbawa ng fuse programming ay ipinapakita sa Figure 3.


Fig 3. Pagse-set ng mga piyus para sa AVR JTAG ICE

Ang isang halimbawa ng operasyon ng AVR JTAG ICE ay ipinapakita sa Figure 4. Bilang halimbawa, binasa ang pirma ng ATMega128


Figure 4. Pagbasa ng ATMega128 microcontroller signature gamit ang AVR JTAG ICE


Fig 5. Larawan ng tuktok na layer ng PCB trace, na may mga inilapat na elemento


Fig 6. Larawan ng ilalim na layer ng PCB trace, na may mga inilapat na elemento

Mga larawan ng tapos na device:

P.S. Ang circuit diagram at bakas ng naka-print na circuit board ay binuo ng may-akda ng artikulo, ang bootloader ay ginamit ni Vitaliy Krotevich (aka Vit), ang firmware ay mula sa orihinal na AVRStudio.

Ang mga sumusunod na mapagkukunan ay ginamit sa pagsulat ng artikulong ito:
1 http://onembedding.bialix.com/files/jtag_vit/
2. Opisyal na AVR JTAG ICE User Guide JTAGuserguide.pdf

Maaari mong i-download ang firmware at PCB file sa ibaba

Listahan ng mga radioelement

Pagtatalaga Uri Denominasyon Dami TandaanMamiliNotepad ko
DD1 Buffer IC, driver

CD74AC244

1 Sa notepad
DD2 RS-232 interface IC

MAX232

1 ST232BD Sa notepad
DD3 MK AVR 8-bit

ATmega16

1 ATMega16-16PI Sa notepad
DA1 Linear na regulator

LM78L05

1 Sa notepad
VD1, VD2 Rectifier diode

SM4007PL

2 Sa notepad
VD3 Zener diode

BZX55C5V1

1 SMBJ5.0A Sa notepad
VD4, VD5 Schottky diode

SM5819PL

2 Sa notepad
HL1, HL2 LEDKR-3216-22 Sa notepad
C1, C2, C4-C6, C9-C13, C16 Kapasitor0.1 µF10 Sa notepad
C3 1 Sa notepad
C7 Electrolytic kapasitor470 µF 10 V1 Tantalum Sa notepad
C8 Kapasitor1200 pF1 Sa notepad
C14, C15 Kapasitor22 pF2 Sa notepad
R1 Resistor

36 kOhm

1 Sa notepad
R2 Resistor

150 kOhm

1 Sa notepad
R3-R6 Resistor

10 kOhm

4 Sa notepad
R4, R10 Resistor

4.7 kOhm

2 Sa notepad
R9, R11-R15 Resistor

200 Ohm

7 Sa notepad
R16 Resistor
  • Ang isang opisyal na programmer na ginawa ng Atmel ay nagkakahalaga ng humigit-kumulang 300 euro(nang walang delivery at customs clearance). Isang mas murang opsyon - makakahanap ka ng hindi opisyal na "mga clone" para sa tungkol sa $150 .
  • Ang pagpipilian ay mas mura, ngunit nangangailangan ng pagsisikap, dahil... mula sa kategoryang "gawin mo ito sa iyong sarili":
    sa web sa pamamagitan ng isang search engine ( I-clone ang AVR-JTAGICE mkII) madali kang makakahanap ng isang diagram na may firmware ng programmer na sinamahan ng mga tagubilin sa pagpupulong.

Mga katangian ng programmer

  • Buong suporta para sa JTAG programming, sinusuportahan din ang mga interface ng ISP at DebugWire.
  • Ang koneksyon sa PC ay isinasagawa gamit ang USB 1.1 o RS-232 interface
  • Mga breakpoint sa memorya ng programa at mga address ng memorya ng data
  • Ang lahat ng mga operasyon at breakpoint ay isinasagawa sa real time
  • Ang boltahe na ibinibigay sa circuit na na-debug ay 1.8-5.5 V
  • Ang panlabas na boltahe ng supply ng kuryente ay 9-12V, ang debugger ay maaari ding paganahin mula sa isang USB port

Programmer AVR-JTAGICE3

Opisyal na programmer para sa Atmel microcontrollers ng AVR family na sumusuporta sa JTAG debugging at programming interface.

Sa tingin ko para sa pag-debug ng mga AVR microcontroller sa AVR Studio 5 na kapaligiran ay ang pinakamahusay na pagpipilian. Siyanga pala, wala akong mahanap na hindi opisyal na mga clone. Kung may nakakaalam, mangyaring ipaalam sa akin sa mga komento sa pahina.

Noong sinimulan kong gamitin ito, nakaranas ako ng ilang mga paghihirap sa paggamit nito - tila ito ay napakahirap, at kailangan kong patuloy na i-restart ang kapaligiran ng AVR Studio para ito ay "mabuhay".

Sa prinsipyo, ang lahat ay naging simple - hindi mo dapat subukang magsagawa ng anumang iba pang mga aksyon sa programmer habang tumatakbo ang pag-debug, halimbawa, pagtawag sa isang window na may mga setting ng fuse. Sa paglipas ng panahon, nasanay ako at nagamit ito nang walang anumang problema.

Kabilang sa mga pakinabang, i-highlight ko ang maliliit na dimensyon nito (kumpara sa hinalinhan nitong AVR-JTAGICE mkII) at versatility - bilang karagdagan sa interface ng JTAG, available din ang aWire, SPI at PDI.

Ang isa sa mga kahirapan ay ang gastos nito. Sa tingin ko ito ay medyo disente - mga 15,000 rubles sa pamamagitan ng mga opisyal na dealer sa Russia.

Mga katangian ng programmer:

  • Sinusuportahan ang mga interface ng JTAG, aWire, SPI at PDI
  • 3 hardware breakpoints at 1 maskable
  • Simbolikong pag-debug ng mga kumplikadong uri ng data
  • Hanggang sa 128 software breakpoints
  • Sinusuportahan ang mga microcircuits na may mga boltahe ng supply mula 1.8 hanggang 5.5V
  • Mataas na bilis (pagda-download ng 256KB na programa ~14 seg. (XMEGA sa pamamagitan ng JTAG) interface)
  • Pinapagana ng USB.

AVR-JTAG-USB programmer

Ang programmer na ito ay ginagamit para sa Atmel microcontrollers ng AVR family na sumusuporta sa JTAG debugging at programming interface. Ang programmer na ito ay isang clone ng orihinal na programmer ng Atmel. Ginagawa ito ng kumpanya ng Olimex at naiiba sa opisyal sa pagkakaroon ng isang mas kanais-nais na presyo (humigit-kumulang 4,000 rubles sa pamamagitan ng mga opisyal na dealers sa Russia, at natural, maaari mo itong makuha nang mas mura nang direkta mula sa ibang bansa), habang sa mga tuntunin ng pag-andar ito ay medyo maaasahan at wala akong reklamo habang nagtatrabaho dito. Gumagana at pinapagana mula sa USB port ng computer.

Ang tanging tampok na dapat bigyang pansin nang maaga ay kapag ginamit bilang isang tool sa pag-unlad, ang AVR Studio ay gagana lamang sa ilalim ng AVR Studio 4. Kung ikaw ay gagana sa AVR Studio 5, kung gayon ito ay ganap na walang silbi para sa pag-debug, dahil hindi suportado. Samakatuwid, para sa ikalimang bersyon bumili ako ng isa pang programmer - AVR-JTAGICE3.

Mga katangian ng programmer

  • Programming ng lahat ng AVR microcontrollers na may suporta sa interface ng JTAG;
  • Target na boltahe 3.0 - 5.0V;
  • Pinapatakbo ng USB interface;
  • Ang JTAG connector ay katugma sa Atmel 2x5 pin JTAG connector;
  • Tugma sa Atmel AVR STUDIO para sa programming, real-time na emulation, debugging, sunud-sunod na pagpapatupad ng program, pagtatakda ng mga breakpoint, memory dump, atbp.;
  • Buong emulation ng lahat ng analog at digital function;
  • Buong suporta sa programming sa pamamagitan ng JTAG port;
  • Update sa pamamagitan ng AVR STUDIO;
  • Ang USB interface connector ay uri ng "A".

Mga Nilalaman: AVR-JTAG-USB programmer/emulator.
Para sa operasyon, maaaring kailangan mo ng USB cable na "AA" - SCUAA-1

1 Paglalarawan

Ang AVR JTAG ay isang tool para sa pag-debug ng mga device batay sa pamilya ng Atmel AVR ng mga microcontroller. Ang AVR JTAG ay isang kumpletong analogue ng AVR JTAG ICE ng Atmel. Para sa higit pang impormasyon sa kung paano gumagana ang AVR Studio sa AVR JTAG, maaaring gamitin ang dokumentasyon mula sa Atmel.

Upang gumana sa AVR JTAG, ginagamit ang AVR Studio program mula sa Atmel. Sinusuportahan ng AVR JTAG ang lahat ng microcontroller ng pamilya na may interface ng JTAG:

    ATmega16;
    ATmega162;
    ATmega169;
    ATmega32;
    ATMega323;
    ATMega64;
    ATmega128.

Ang suporta para sa mga bagong device ay ibinibigay sa pamamagitan ng pag-update ng AVR JTAG firmware, na kasama sa AVR Studio.

Figure 1 Lokasyon ng mga connector at indicator sa AVR JTAG board

Saklaw ng paghahatid

Kasama sa package ng AVR JTAG ang:

  • AVR JTAG board;
  • suplay ng kuryente ng mains;
  • cable para sa pagkonekta ng AVR JTAG sa isang computer;
  • cable para sa pagkonekta ng AVR JTAG sa device na ina-debug;
  • CD na may software at reference na impormasyon.

Larawan 2 Ang hitsura ng board

Koneksyon

Upang awtomatikong makita ng AVR Studio ang AVR JTAG, dapat mong ikonekta ang AVR JTAG sa iyong computer, ang target na device, at magbigay ng power sa AVR JTAG at target na device bago simulan ang AVR Studio.

Kumokonekta sa isang computer

Kumokonekta ang AVR JTAG sa isang karaniwang COM port sa isang computer. Ang isang 9-pin na "tuwid" na cable (kasama sa paghahatid) ay ginagamit para sa koneksyon.

Kapag nagsimula ang AVR Studio, awtomatiko itong naghahanap ng mga device na sinusuportahan nito, na ina-access ang lahat ng COM port sa computer sa pagkakasunud-sunod. Hihinto ang paghahanap sa sandaling mahanap ang isang sinusuportahang device. Halimbawa, kung nakakonekta ang AVR Prog sa COM1 at nakakonekta ang AVR JTAG sa COM2, AVR Prog lang ang makikita ng AVR Studio. Samakatuwid, kapag sinimulan ang AVR Studio, tiyaking hindi pinagana ang iba pang device na sinusuportahan nito, o pagkatapos simulan ang AVR Studio, manu-manong itakda ang port kung saan nakakonekta ang AVR JTAG.

Kung ang COM port kung saan nakakonekta ang AVR JTAG ay ginagamit ng iba pang mga program (halimbawa, isang terminal), hindi ma-detect ng AVR Studio ang AVR JTAG. Pakisara ang mga program na ito bago simulan ang AVR Studio.

Kumokonekta sa device na ina-debug

Upang kumonekta sa device na na-debug, 6 na linya ang ginagamit: TCK, TDO, TDI, TMS, VTref at GND ay kinakailangan para gumana nang tama ang AVR JTAG sa device na na-debug.

Bukod pa rito, ang linya ng nSRST ay maaaring ikonekta sa device na ina-debug (ginagamit upang kontrolin at subaybayan ang microcontroller reset line). Ang paggamit ng signal na ito ay hindi kinakailangan para sa pag-debug, gayunpaman, kung ang microcontroller program ay nagtatakda ng JTD bit sa MCUCSR register, ang JTAG interface ay hindi paganahin at mangangailangan ang AVR JTAG na makapagmaneho ng reset line ng microcontroller upang paganahin ito. .


Figure 3 Pagkonekta ng AVR JTAG sa device na ina-debug

Koneksyon ng kuryente

Ang AVR JTAG ay pinapagana ng panlabas na AC o DC power supply (kasama). Upang ikonekta ang pinagmulan sa AVR JTAG, isang 2.5 mm jack ang ginagamit. Ang polarity ng DC source ay hindi mahalaga.

Upang matukoy ng AVR Studio ang AVR JTAG, kinakailangan na ang kapangyarihan ng AVR JTAG at ang device na ina-debug ay naka-on bago magsimula ang pag-debug (gamit ang Start Debugging AVR Studio na button).

  1. i-on ang kapangyarihan ng device na ina-debug;
  2. i-on ang kapangyarihan ng AVR JTAG;
  3. ilunsad ang AVR Studio.

Pag-update ng software

Ang pag-update ng AVR JTAG firmware ay maaaring gawin nang awtomatiko o manu-mano.

Awtomatikong pag-update

Nagaganap ang awtomatikong pag-update kung nakita ng AVR Studio na ang bersyon ng firmware na kasama sa AVR Studio ay mas malaki kaysa sa bersyon ng firmware ng AVR JTAG. Sa kasong ito, ang AVR Studio ay nagpapakita ng kaukulang mensahe at sinenyasan kang i-update ang firmware. Kung sumang-ayon ang user na magsagawa ng pag-update ng software, magpapakita ang AVR Studio ng dialog na may mga tagubilin para sa pag-update ng software. Upang i-update ang software, sundin ang mga hakbang na ito:

  1. i-click ang pindutang "Ok" sa dialog ng AVR Studio;
  2. sa lalabas na dialog ng AVR Prog, i-click ang button na "Programa";

Kumpleto na ang pag-update ng software ng AVR JTAG.

Manu-manong pag-update

Maaaring kailanganin ang manu-manong pag-update ng AVR JTAG software kung ang awtomatikong pag-update ng software ay naantala sa ilang kadahilanan (pagkawala ng kuryente, atbp.). Sa kasong ito, hindi matutukoy ng AVR Studio ang AVR JTAG, alamin ang bersyon ng software nito at simulan ang mga awtomatikong pag-update ng software.

Upang magsagawa ng manu-manong pag-update ng software:

  1. patayin ang kapangyarihan ng AVR JTAG;
  2. alisin ang jumper sa AVR JTAG board;
  3. i-on ang kapangyarihan ng AVR JTAG;
  4. patakbuhin ang programa ng AVR Prog;
  5. pumili ng file na may extension na .EBN para sa programming mula sa JTAGICE folder na matatagpuan sa folder kung saan naka-install ang AVR Studio;
  6. pindutin ang pindutan ng "Programa";
  7. pagkatapos makumpleto ang pag-update ng firmware, isara ang window ng AVR Prog;
  8. mag-install ng jumper sa AVR JTAG board;
  9. Power cycle ang AVR JTAG.

Ang manu-manong pag-update ng AVR JTAG software ay nakumpleto.

Mayroong ilang mga pagsasaayos ng iba't ibang mga programmer na nagpapahintulot sa iyo na muling isulat ang mga pag-unlad ng software sa isang microcontroller. Maaari silang magkakaiba, idinisenyo para sa mga propesyonal o, sa kabaligtaran, magkaroon ng isang pinasimple na interface. Ang bayani ng artikulong ito ay kabilang din sa mga huling programmer. Matututuhan mo hindi lamang kung ano ito, kundi pati na rin kung paano gumawa ng JTAG programmer gamit ang iyong sariling mga kamay. Makakakita ka ng mga diagram at litrato kung ano ang magiging hitsura ng resulta.

Ano ang isang JTAG programmer?

Ito ay isang pinasimpleng bersyon ng propesyonal na AVR JTAG ICE, na, gaya ng maaari mong hulaan mula sa pangalan nito, ay idinisenyo para sa mga microcontroller ng programming ng pamilyang AVR. Ang pangunahing pagkakaiba nito ay kahit na ang isang hindi propesyonal ay maaaring tipunin ito, at ang pangwakas na gastos ay maraming beses na mas mababa kaysa sa pagbili ng isang pabrika. Sa katunayan, ang mekanismong ipinakita sa artikulo ay isang replika ng Tsino, kaya maaari ding mabili ang AVR programmer na ito. Samakatuwid, maaari naming matapat na sabihin na mayroon ding isang pagpipilian sa pagbili. Ngunit ang pagpupulong ng do-it-yourself ay magbibigay-daan sa iyo upang maiwasan ang mga posibleng negatibong kahihinatnan dahil sa mura at mababang kalidad ng mga biniling bahagi sa panahon ng produksyon.

Bakit pumili ng JTAG programmer?

Ang pangunahing bagay ay ang mababang gastos at kadalian ng pagpupulong. Maaaring i-program ng JTAG programmer ang lahat ng device na may interface ng JTAG. Upang gumana sa pamamagitan ng isang computer, ang AVR Studio development environment na bersyon 4 o mas mataas ay kinakailangan. Ang AVR programmer na ito ay makakapagtrabaho sa kanila.

Mga disadvantages ng programmer

Ang pinakabagong mga bersyon ng mga pamilya ng microcontroller ay hindi ma-program nang walang karagdagang trabaho. Mayroon ding mga makabuluhang problema sa mga kinatawan na may mas mababa sa 40 binti at 16 KB ng memorya. Tulad ng nakikita mo, ang bilog ng mga potensyal na kliyente ay medyo limitado. Ngunit maraming mga sikat na modelo ang nahulog sa ilalim nito, kaya ito ay madaling gamitin.

Scheme

Ang circuit ng programmer ay simple; nangangailangan ito ng ATMega16 at ilang karagdagang electronics upang gumana. MAX232 (para sa pagtatrabaho sa COM) at FT232RL (para sa pagtatrabaho sa USB) ay maaaring gamitin bilang isang interface. Ito ay nagkakahalaga ng pagbanggit na kapag ginagamit ang pangalawang pagpipilian, ang pagkonekta ng kapangyarihan sa pamamagitan ng USB ay hindi inirerekomenda. Sa ganitong mga kaso, dahil sa isang error o oversight, ang mga proteksiyon na diode ay maaaring makatanggap ng boltahe, at magkakaroon ng boltahe sa mga terminal ng FT232RL. Ito ay maaaring humantong sa pagkabigo ng programmer o ang object ng programming. Ang nuance na ito ay malulutas sa pamamagitan ng pagbibigay ng kapangyarihan sa pamamagitan ng board.

Upang gawing mas madali para sa mga hindi kwalipikado, ang programmer ay idinisenyo para sa MAX232, ngunit ang ibang opsyon ay nangangailangan lamang ng pag-install ng ibang connector.

Mga setting

Isinasaalang-alang na mayroong mga kinakailangang circuit, kailangan mo lamang i-ukit ang board. Susunod, ang lahat ay maingat na konektado, soldered sa lugar, at ang pagpapatakbo ng programmer ay nasuri sa pamamagitan ng pag-flash ng bootloader. Pagkatapos ay dapat mong i-update ang firmware para sa JTAG programmer na may AVR Studio sa pinakabagong bersyon o hangga't kinakailangan. Ang programmer ay konektado sa adaptor. Kung ito ay gumagana, pagkatapos ay maaari kang magpatuloy sa susunod na seksyon, na binabalangkas ang mga nuances ng operasyon at programming. Dapat pansinin na ang lahat ng kinakailangang mga wire ay naroroon, sila ay matatagpuan lamang sa hindi pamantayan.

Upang maghanda para sa trabaho, dapat mong itakda ang Fuse bits. Nakadepende sila sa notasyon kung saan isinasagawa ang gawain. Para sa isang mas mahusay na pag-unawa, ipinakita namin ang sumusunod na talahanayan:

Direktang notasyon (Datasheet, UniProf)

Baliktad na notasyon (AVR DUDE GUI, PonyProg)

Paano mo malalaman kung alin ang pipiliin? Ang sagot sa tanong ay simple: dapat kang kumonekta sa microcontroller at simulang basahin ang parehong mga piraso. Bigyang-pansin ang SPIEN - kung may checkmark sa tapat nito, nangangahulugan ito na ang notasyon ay kabaligtaran. Kung wala ito, ibig sabihin ay tuwid. Kung ang lahat ay ginawa nang tama, pagkatapos ay handa na ang programmer na i-flash ang mga microcontroller. Ngunit kung pagkatapos ay hindi niya magawa ang firmware, muling basahin at suriin muli ang lahat.

Nagtatrabaho sa programmer

Para sa higit na kalinawan, ibibigay ang isang halimbawa ng programming LED blinking. Sa una, dapat mong ilunsad ang studio at lumikha ng isang bagong proyekto. Pagkatapos ay pumili ng isang programming language (sa kasong ito assembler) at itakda ang pangalan ng proyekto. Ang program mismo ay magagawang matukoy na ikaw ay gumagamit ng JTAG programmer. Dapat mong piliin ito bilang platform, at sa window sa tabi nito - ang microcontroller na na-program nito. Susunod, ang lahat ay medyo karaniwan - kailangan mo lamang ipasok ang teksto para sa programa. Upang masuri ng mga mambabasa ang paggana nito, iminumungkahi naming subukan ang JTAG programmer gamit ang code na tinukoy sa artikulo. Makikita mo na ang mga diode ay nagsimulang kumurap nang napakabilis, na hindi nakakagulat, dahil walang pagkaantala na ibinigay dito. Kaya, mayroong isang programmer at mga tagubilin para sa paglikha at paggamit nito. Ang kailangan mo lang gawin ay mapagtanto ang paglipad ng iyong imahinasyon.

Medyo tungkol sa pagsasanay. Upang suriin, ikonekta ang 3 LED sa port A. Pagkatapos ito ay konektado sa board: apat na interface wires (TCK, TDI, TMS, TDO) at 2 power Vcc pumunta sa positibo, at GND ay konektado sa ground. Yun nga lang, may pagkain, makaka-move on ka na. Sa studio, kailangan mong i-compile ang code at patakbuhin ito. Ang proyekto ay mabilis na mag-compile, ma-flash kaagad at magsisimulang magtrabaho. Upang subaybayan ang proseso ng pagpapatupad, maaari mong pindutin ang F11, at pagkatapos ay makikita mo kung aling linya ng code ang kasalukuyang naka-on. Upang gawin ito, ilipat lamang ang cursor sa row na nag-o-on sa LED, at ito ay sisindi. Marami pang eksperimento. Tandaan na upang magawa ang isang bagay, kailangan mong magtrabaho. Hayaang maging mabagal ang pag-unlad, ngunit sa paglipas ng panahon magagawa mong makuha ang eksaktong gusto mo, ang pangunahing bagay ay hindi sumuko at magpatuloy sa pag-eksperimento na may diin sa teoretikal na batayan (walang paraan kung wala ito).