HappyJTAG2 - JTAG a SPI AVR8 interface
EMBEDDED JTAG !
EMBEDDED SPI !


Nova verzia ! Pozri do zoznamu verzii pre detaily ! V2.45
Konštrukcia prirodzene vychádza z myšlienky predchádzajúcej verzie HappyJTAG, ktorá aj napriek funkčnosti narazila na bariéru výkonu. FT232 a jeho BitBang mód síce dovoľuje emulovať JTAG interface, avšak jedná sa v princípe o priame riadenie bitov na pinoch obvodu FT232. Množstvo dát prenášaných po USB je neúnosne veľké, čo spôsobuje relatívnu pomalosť celého riešenia.

Alternatívou k tomu je šecializovaný obvod FT2232, ktorý má priamo v sebe integrovanú hardwarovú podporu JTAG a SPI interfejsu, čo radikálne zvyšuje výkon celého riešenia. Tento obvod má zároveň až dve nezávislé kanály, takže zatiaľčo kanál A je využitý na JTAG alebo SPI interfejs, kanál B ostáva naďalej plne funkčný k dispozícii pre štandartnú sériovú linku.

Čiastočnou nevýhodou riešenia s obvodom FT2232 je o niečo komplikovanejšie zapojenie, nakoľko obvod vyžaduje externý kryštál a zopár iných súčiastok, ktoré má najnovšia verzia FT232 integrované na svojom čipe. Táto nevýhoda je však plne vyvážená výkomom. Zatiaľčo download programu cez interface HappyJTAG sa pohybuje radovo v minutach,podľa velkosti kódu, tu sa jedná o sekundy.

Hardwarové zapojenie je úplne štandatrné katalógové riešenie. Predpokladá sa trvalé umiestnenie čipu FT2232 priamo do TARGET AVR sysému. Tým získava target hardware štandartné USB rozhranie a zároveň výkonný systém na správu cieľového procesora AVR v target doske cez JTAG alebo SPI. Samozrejme je možné zakončiť interfejs JTAG alebo SPI konektorom ako univerzálnejšie AVR/JTAG/SPI rozhranie a neintegrovať ho priamo na target HW (samozrejme v tomto zapojení nie je prispôsobenie napäťových úrovní a podobne, v takomto prípade je potrebné celý interface dovybaviť prevodníkom úrovní, poprípade iným oddelením signálov). V súčastnosti sú plne funkčné činnosti ako sú download užívateľského programu (samozrejme bez potreby download bootloadera, pretože sa to deje cez JTAG alebo SPI), ale aj nastavovanie FUSES v AVR, a podobne. Navyše je plne otvorená cesta pre ďalší vývoj riadiacého softwaru a implementáciu full debudu ako ho poznáme zo štandartných špecializovaných JTAGICE zariadení pokiaľ sa použije JTAG interface.

Celá logika riešenia je skrytá v obslužnom programe na PC. Ten priamo riadi cez USB linku cieľový chip FT2232. Je schopný pracovať v dvoch režimoch.

Jeden je ako samostatný program, kedy priamo svojím rozhraním ponúka manipuláciu FUSES, reset targetu, či download softwaru do cieľového AVR.K jeho činnosti je potrebné iba prepojiť targert HW s PC cez USB kábel a spustiť na PC HappyJTAG2 program. Následne vyberiete prepínačom v programe typ interfejsu JTAG alebo SPI.

Ďalší režim je, keď tento riadiaci program komunikuje s AVRStudiom emuláciou JTAGICEMK2 rozhrania, ktorému sa navonok javí ako štandartný JTAGICEMK2 emulátor. V takomto prípade program HappyJTAG2 sprostredkováva prístup AVRStudia k JTAG alebo SPI interfejsu Target AVR. V tomto režime HappyJTAG2 program komunikuje s AVRStudionm prostredníctvom sérievého portu.

Počnúc verziou 2.31 , HappyJTAG2 si sám emuluje vituálny sériový port, takže uź nie je potrebné nič k jeho priamemu napojeniu na AVRStudio. Momentálne je emulovaný COM4, 115000 baudov.
Avšak, stále je ešte podporované aj spojenie pomocou treťostrannej freeware utility, "Virtuálneho sériového portu", ktorú si môžete stiahnúť z nasledovného odkazu:

HW Virtuálny sériový port


Tento virtuálny sériový port tvorí mostík madzi AVRStudiom, ktoré komunikuje cez COM port a HappyJTAG2 programom, ktorý komunikuje cez TCP. Preto je potrebné virtuálny sériový port nastaviť tak, aby presmeroval komunikáciu z portu, ktorý emuluje (napr COM3) na TCP komunikáciu. Ako IP adresu nastavte 127.0.0.1 (localhost) a port nastavte na 2232. ( Ak používate firewall, nezabudnite tiež umožniť komunikáciu na tomto porte). Po takto nastavenom interfejsi a pripojení target AVR cez USB k PC, stačí spustiť program HappyJTAG2, stlačiť tklačidlo "Connect to AVRStudio" a spustiť AVR Studio. Tu je potrebné nastaviť interface na JTAGICEMK2, target napríklad na ATMega32, pripojený cez COM port, ktorý emuluje virtuálny sériový port (v mojom prípade opäť COM3). Nezabudnite nastaviť rýchlosť komunikácie portu na najvyššiu možnú, čo je 115000 baudov, keďže tá limituje celkový výkon systému. Vštko ostatné už prebieha cez AVRStudio transparentne, ako keby bol k AVRStudiu pripojený štandartný JTAGICEMK2, samozrejme s obmadzeniami danej verzie HappyJTAG2, ktoré sú uvedené an konci článku v sekcii ToDo.


Od verzie 2.33 je podporované aj napojenie na GDB debuger prostredníctvom TCPIP, portu 2232. Zatiaľ je cez GDB podporované iba JTAG rozhranie.

Samozrejmosťou je využitie BoundaryScan funkcie JTAGu, takže čsťou SW je aj zobrazovanie aktuálneho stavu pinov mikropočítača AVR v grafickej podobe, zodpovedajúcej ATMega32 DIP40.

Celý systém bol pôvodne oživený a vytvorený pre ATMega32, avsak postupom času sa imlementoval aj pre iné procesory. Naďalej ho plánujem modifikovať aj pre všetky ostatné procesory rady AVR8, ako ich budem mať postupne k dispozícii.

Zoznam momentálne podporovaných procesorov ( pre podrobnejší a aktuálnejší prehľad pozri radšej priamo zoznam podporovaných modelov v programe):
JTAG
- ATmega16
- ATmega32
-ATMega128
-ATMega640 (Netestované)
-ATMega644 (Netestované)
-ATMega644P
-ATMega1280 (Netestované)
-ATMega2560 (Netestované)
-ATMega1281 (Netestované)
-ATMega2561
-AT90CAN128
-AT90USB128 (Netestované)
-ATXMEGA128A1
SPI
- ATtiny13
- ATmega48 (Netestované)
- ATmega88
- ATmega168
- ATmega16
- ATmega32
- ATmega640 (Netestované)
- ATmega644 (Netestované)
- ATmega644P
- ATmega128
- ATmega1280 (Netestované)
- ATmega1281 (Netestované)
-ATMega2560
-ATMega2561
-AT90CAN128
-AT90USB128 (Netestované)


Zauímavý benefit tohto riešenia (FT2232) je , že môže byť použitý aj s treťostranným hardwérom. Dobrý príklad je Amontec JTAGkey hardware. Tým je možné pouźiť JTAGkey tiež pre AVR8 chipy. Toto je otestované a funkćné !


Prvý funkčný prototyp :

A finálne ostrá verzia :

HappyJTAG2 (Klikni na obrázok pre jeho zobrazenie v plnom rozlíšení):

Schéma zapojenia (Klikni na obrázok pre jeho zobrazenie v plnom rozlíšení):

V najbližšej dobe plánujem implementovať :
- Implementáciu ďalśích procesorov z rodiny AVR


Vzhľadom na prakticky úplne chýbajúcu dokumantáciu riadenia a implememtácie OCD režimu AVR procesorov, nebolo možné zatiaľ dopracovať nasledovné operácie (Ak máte informácie o dokumentácii, alebo akomkoľvek zdroji informácií k OCD debug režimu, registrom, sekvenciám, ktoré by pomohli implementovať následné body do systému, prosím podeľte sa s nimi, a staňte sa aj vy prispievateľom):
- Rozšíriť podpora BREAKov na viac a aj inych ako "simple"


Rovnako mám v pláne nahradiť sérivý port USB portom. Ak máte neaké informácie o dostupnej FREE komponente - emulácii USB portu pre Delphi, dajte mi vedieť, značne urýchlite a zjednodušíte implementáciu tohto bodu.

Na záver:
Tu popisovaná verzia je FreeWare, ako taká so všetkým čo sa k tomu viaže, včetne záruky za prípadné škody a podobne.
Pre konkrétne obmädzenia pozri detaily v zozname verzií.

V prípade záujmu o plnú verziu, bez obmädzení , ktoré sú vo Freeware vezrii, prosím kontakt e-mailom.


ZOZNAM VERZIÍ :
2.45
* ATXMEGA128A1 JTAG - Plna podpora OCD online debugu z AVRstudia4

2.44
* ATXMEGA128A1 JTAG - Tlacitko Download nefungovalo spravne * ATXMEGA128A1 JTAG - Pridana podpora programovania a citania Boot sektoru FLASH pamate z AVR studia

2.43
* ATXMEGA128A1 JTAG podpora ( zatial bez OCD )
2.42
* GDB debuger - rozsirena podpora
* ATMega8515 SPI
* Zopár bugov v OCD mode pre čítanie a zápis do EEPROM bolo vyriešenňych

2.41
* Výber emulovaného portu (COM1..COM4)
* ATMega644,ATMega644P podpora

2.40
* OOCDLINK hardware compatibility . HappyJTAG2 teraz podporuje tento hardwer v SPI aj JTAG mode. Piny Cbus1 a Cbus2 sú trvalo v L a reset signál je dostupný aj na Cbus0 a cbus2 zároveň.

2.39 *Changed default firmware version number to 06.07 ( AVRStudio4 SP3 )

2.37
* podporované už aj H verzie obvodov FT2232 ( FT2232H )
* Podpora výberu interfejsu pri viacerých pripojených FT2232 obvodoch.
* Vylepšená správa breakpointov ( teraz už je možné umiestniť breakpoint aj v bootloader sektore)

2.36
* Pridaná podpora AT90CAN128

2.35
* Zmenena default hodnota čísla fimware na 0x60B podľa AVRStudia 4.18 SP1

2.34
* Pridaná podpora AT90USB1286 ( zatiaĺ netestovaná )

2.33
* Pridaná podpora procesora ATMega16
* Nové okno so zoznamom podporovaných procesorov
* GDB TCPIP podpora ( zatiaľ iba FLASH a iba JTAG, bez debug režimu)

2.32
* Odstráneý bug pri programovaní FLASH ATMega168 cez SPI

2.31
* Vlastná emulácia COM4 portu, už nie je potrebné mať treťostranný emulátor sériového portu na spojenie s ACRStudiom
* Pridaná podpora ATMega2561 v JTAG režime

2.30
* SPI Interface - optimalizáciou komunikácie sa zvýśila rýchlosť

2.29
* ATMega2561 - plný support cez SPI interface
* EFuse SPI support
* bug pre SPI interface - niektoré kombinácie adresovania FLASH mohli spôsobovať nesprávny obsah FLSH

2.28
* Zvýśený výkon optimalizáciou prenosu dát po USB znbernici.
* Pridaná moźnosť nastavenia / fixovania rýchlosti interfejsu, kedy sw ignoruje povely z AVRStudia a komunikuje iba nastavenou rýchlosťou.
* Fixovaný bug - error poćas zatvárania JtagICE MKII dialogu z AVR Štúdia
* Default verzia emulovaného firmwaru je zmenená na 052C ( AVRStudio 4.16) - pozor, zmena sa týka iba nových inštalácií, na uź existujúcej je potrebné to zmeniť ručne cez menu programu.

2.27
*Pridaná moźnosť invertovania RESET signálu (koli kompatibilite s niektorými treťostrannými JTAGKey hardwarmi)

2.26
* Fixovaný bug pre nesprávne krokovanie zo zdrojového kódu

2.25
*Pridané ďalśie podporované modely AVR8 - SPI interface
- ATtiny13

2.24
* Fuses
- názvy jednotlivých fuses sa dynamicky menia a nastavujú podľa identifikovaného target procesora
*Pridané ďalśie podporované modely AVR8 - SPI interface
- ATMega48
- ATMega88
- ATMega168

2.23
* Pridané zobrazovania EFuses checkboxmi
- zobrazenie ich aktuálneho stavu
- pridaná moźnosť ich manuálnej modifikácie

2.22
* Odstránený bug vo funkcii HexaFile Download (podpora segmentov programu nad 64kB)
- pridané spracovanie inštrukcie ExtendedSegmentAddress do spracovania IntelHexa súboru


2.21
*Odstraneny bug čítania AVR signature (Citanie z AVR studia)


2.20
*Odstranena Freeware obmadzenie pre clock fuse , teraz je možné voľne programovať aj clock fuse aj na pouźitie s externým kryštálom


2.19
* Pridaná podpora programovania EFuse

2.18
* implementácia SPI interfacu ! ( zatiaľ ATMega32 )
- FLASH čítanie
- FLASH programovanie
- FLASH/CHIP mazanie
- FUSES nastavovanie a mazanie
- AVR identifikácia typu target procesora čítaním jeho signatúry
- SPI nastavenie rýchlosti

* Vylepšené načítavanie win registrov, ktoré na niektorých inštaláciách nechodilo správne


2.17
* Fixeovana chyba pri nastavovani versizie emulovaneho firmware JTAGICE_MKII
* Nastavenie emulovanej verzie na default 0525, ktoru predpoklada AVRStudio v 4.14

2.16
* ATMega128 ON CHIP DEBUG podpoa !!!!!!!
* Zafixovaný bug SingleStepu z vyššieho programovacieho jazyka pre pridlhé fragmenty strojového kódu.

2.15
* Odstránená reštrikcia pre obmadzenie veĺkosti debugovaného kódu vo FreeWarovej verzii !
* Možnosť nastaviť verziu emulovaného firmwaru (manuálne cez menu)

2.14
* Vylepšenie OnChipDebug
- STEP INTO - krokovanie - priamo z C zdrojoveho kodu !
- STEP OVER - krokovanie - priamo z C zdrojoveho kodu !
- STEP AUTO STEP - automaticke krokovanie - priamo z C zdrojoveho kodu !

2.13
* Vylepšenie OnChipDebug
- Podpora funkcie RunToCursor
- Nastavená default adresa štartu programu na 0 (Fix pre assemblerovský projekt)

2.12
* Rozšírenie dimenzácie adresy flash - príprava na vačšie programy ako 64kB....

2.11
* Vylepšenie OnChipDebug
- EEPROM edit / write podpora priamo z AVRStudio "memory window"

2.10
* Podstatne vylepšený OnChipDebug priamo z AVRstudia
- Single step - podporovaný na úrovni asembleru
- Podpora až dvoch single brejkov
- Nastavenie "Program entry pointu" po resete
- Podpora čítania a zápisu SRAm pamäte --> môžeš sledovať a meniť obsahy premenných
- Čítanie FLASH --> plná funkcionalita Disassembler okna
- Čítanie EEPROM
- Periférie a IO registere - čítanie/zápis
- Nastavenie JTAG rýchlosti
* Stále je podporovaná iba ATMega32, avšak, nie je žiadna kontrola, takže je možné že pôjdu aj iné, skús a daj vedieť....
* Freeware verzia je limitovaná !
- iba 8kB hlavného kódu uloženého od adresy 0 (s jednou výminkou, aj segment $3800 $3FFF je uvolnený k použitiu, takže je možné využívať aj bootloader sekciu) Toto obmadzenie je iba pre debug režim z AVRStudia, nie na obyčajný priamy upload hexa súboru z programu bežiaceho samostatne bez AVRStudia.
- iba jeden simple breakpoint (ďalšie sú ignorované)
- iba jeden break po resete (ďalšie sú ignorované)
- LOCKFuses - nedá sa zmeniť LOCK FUSES
- Zabudovaná ochrana na JTAGEN fuse, JTAG sa nedá zakázať


2.01
* Prvá verzia pre FT2232 chip
- Plná kontrola "fuses" (obmadzená v freeware verzii)
- Žiadne obmädznie veľkosti programu
- Riadenie resetu z PC
- AVRStudio program/data upload
- "Full chip erase" podpora
- Žiadna podpora brejkov
- Žiadna podpora Sinlge stepu
- Nepodporovaný prístup k Flash/SRAM z OCD
- Iba ATMega32 podporovaná
- Žiadna podpora EEprom
- Testovanie fzyického stavu I/O pinov procesora s grafickźm znázornením
- Pevná rźchlosť JTAG
- Podporovaná funkcia Run/Stop y AVRStudia
.
Vygenerovanďż˝: Fri Nov 15 03:34:56 2019