JTAG ICE / AVR ISP
Introduction
Ce
programmateur a été
réalisé à partir du schéma
du
programmateur Evertool.
Il
intègre un programmateur ISP
compatible STK 500 ainsi qu'un programmateur/débugeur
JTAG
ICE.
Ce qui suit ne sera qu'une traduction partielle des points importants du site officiel. Donc je vous conseille avant tout de lire l'ensemble de cette page et ensuite seulement lire ce qui suit.
Mise à jour 17/09/06: Dans la dernière version
de l'Evertool la résistance R7 n'est plus connectée à PD4
mais PD6. Le typon n'est donc pas à jour mais vous pouvez le rectifier
facilement en coupant la piste entre R7 et PD4 et en raccordant la résistance
à PD6 à l'aide d'un fil.
La carte est toujours compatible avec les nouveaux firmwares de la derniere
version d'AVR Studio (4.12 SP3)
Configuration de la carte :
2) Mettre le jumper JP5 en position 1-2 ISP MEGA16
3) Mettre le jumper JP2 en position 1-2 ISP mega8535
4) Connecter un programmateur du type STK200 ou autre sur le connecteur UPDISP
5) Alimenter la carte
6) Programmer l'ATmega16 avec l'Evertool bootloader
7) Programmer les fuses et lock-bits de l'ATmega16:
Fuse High Byte:
0xd8=11011000b
Bit
7 : OCDEN = 1
Bit 6 : JTAGEN = 1
Bit 5 : spien = 0
Bit 4 : ckopt = 1
Bit 3 : eesave = 1
Bit 2 : bootz1 = 0
Bit 1 : bootsz0 = 0
Bit 0 : Bootrst = 0
Fuse Low Byte:
0xFF=11111111b
Bit
7 : Bodlevel= 1
Bit 6 : boden =
1
Bit 5 : sut1 = 1
Bit 4 : sut0 = 1
Bit 3 : cksel3 = 1
Bit 2 : cksel2 = 1
Bit 1 : cksel1 = 1
Bit 0 : cksel0 = 1
Lock Bit Protection Modes:
0x2f=101111b
Bit
7 : -
Bit 6 : -
Bit 5 :
BLB12 = 1
Bit 4 : BLB11 = 0
Bit 3 : BLB02 = 1
Bit 2 :
BLB01 = 1
Bit 1 : LB2 = 1
Bit 0 : LB1 = 1
Ce qui donne avec Ponyprog :

8) Connecter votre programmateur sur le connecteur AVRISP
9) Programmer les fuses et lock-bits de l'ATmega8535:
Fuse High Byte:
0xdb=11011011b
Bit 7 : s8535c = 1
Bit 6 : Wdton = 1
Bit 5 : spien = 0
Bit 4 : ckopt = 1
Bit 3 : eesave = 1
Bit 2 : bootz1 = 0
Bit 1 : bootsz0 = 1
Bit 0 : Bootrst = 1
Fuse Low Byte:
0xFF=11111111b
Bit
7 : Bodlevel= 1
Bit 6 : boden =
1
Bit 5 : sut1 = 1
Bit 4 : sut0 = 1
Bit 3 : cksel3 = 1
Bit 2 : cksel2 = 1
Bit 1 : cksel1 = 1
Bit 0 : cksel0 = 1
Ce qui donne avec PonyProg :

10)
Mettre le jumper JP5 en position 2-3
normal/ATMEGA8535 prog
11) Couper l'alimentation de la carte
12) Connecter le câble série/R232
entre votre PC et la carte
13) Positionner les 2 inverseurs de sorte à
relier le RX et TX du max232 au TX et RX de l'ATmega16
14) Mettre le jumper JP4 en position 2-3
pour activer le bootloader
15) Relier le connecteur UPDISP au
connecteur AVRISP à l'aide d'une nappe 10 fils
16) Alimenter la carte
17) Démarrer AVR Studio, aller dans
Tools->AVR Prog...
18) Sélectionner dans la fenêtre
qui s'ouvre "ATmega16 boot".
19) Sélectionner Browse, ouvrir le
fichier Upgrade.ebn dans le répertoire C:\Program
Files\Atmel\AVR Tools\JTAGICE (dans le filtre de fichier
sélectionner
*.*)
20) Cliquer sur Program pour flasher
l'ATmega16 avec le Firmware du JTAGICE. Une fois la
vérification
« OK »
21) Sélectionner "ATmega8515
boot"
22) Sélectionner Browse, ouvrir le
fichier stk500.ebn dans le répertoire C:\Program
Files\Atmel\AVR Tools\STK500 (dans le filtre de fichier
sélectionner
*.*)
23) Cliquer sur Program pour flasher
l'ATmega8535 avec le Firmware du STK500. Une fenêtre
s'ouvrira
vous demandant "overwrites boot ou quelque chose de similaire
(dépend de la version d'AVR Studio) cliquer sur "continue"
ou "ok ". Une 2eme fenêtre s'ouvrira vous demandant
« the file should be truncated »
cliquer sur
« no » Une fois la
vérification « OK »
24) Couper l'alimentation de la carte
25) Enlever le câble qui relie le
connecteur UPDISP au connecteur AVRISP
26) Mettre le jumper JP4 en position 1-2
pour désactiver le bootloader
27) Mettre le jumper JP2 en position 2-3
normal/AVRISP
Test
Vous
devez avoir :
JP4 en position 1-2 bootloader
désactivé
JP5 en positon 2-3 mode normal
JP2 en position 2-3 mode normal
Les
2 inverseurs permettent de
sélectionner le programmateur que l'on souhaite utiliser:
RX,TX du max232 reliés au RX,TX
de l'ATmega16 : Mode JTAGICE
RX,TX du max232 reliés au RX,TX
de l'ATmega8535 : Mode ISP
Test JTAG ICE :
1) Mettez les 2 inverseurs en position JTAGICE2) Connectez un ATmega supportant le protocole JTAG (fuse bit JTAGEN=0) au connecteur JTAG de la carte :

Vsupply et nSRST sont optionels. Vsupply est relié au 5V de la carte et peut servir d'alimentation à l'Atmega « cible ».


AVR Studio détecte correctement la carte ainsi que l'ATmega cible.

Test AVR ISP :
2) Connectez un ATmega au connecteur ISP de la carte :

VTG est optionnel, il est relié au 5V de la carte et peut servir d'alimentation à l'Atmega « cible ».


Si cette fenêtre apparaît :

sélectionnez « STK500 or AVRISP » et « auto » puis cliquez sur Connect ...

Utiliser le JTAGICE dans un projet :
Créez un projet avec AVR Studio et sélectionnez comme débug platform « JTAG ICE » et votre microcontrôleur cible.

En cliquant sur Start Debugging le programme sera directement transféré et les commandes d'exécution (pas à pas, start etc ) seront directement exécuté en temps réelle dans l'ATmega cible.
JTAG ICE fonctionne aussi avec les projets non-assembleur (C, basic ...) qui peuvent être ouvert avec AVR Studio.
Les possibles messages d'erreur :

Vérifiez la ligne RST. L'ISP peut entrer en mode programmation que si RST est forcée à 0V.
- Vérifiez les connexions entre la carte et l'ATmega cible
- Vérifiez que le fuse bit JTAGEN est bien activé dans l'ATmega cible. (JTAGEN=0 soit coché dans ponyprog)>
- Vérifiez que l'ATmega cible n'est pas programmé avec un programme qui désactive le JTAG.
- Si tout est OK alors vérifiait toute votre carte :) Moi, j'avais un problème de Max232

Vérifiez que Vtref est bien connecté au Vcc de l'ATmega cible



