ACCUEIL  ACTUALITES  FORUMS  WIKI  TELECHARGEMENTS  LIENS
Menu principal
ATMEL AVR
PCB - CAO
ELECTRONIQUE
Qui est en ligne
9 utilisateur(s) en ligne

Membre(s): 0
Invité(s): 9

plus...
Infos du site
JELECTRONIQUE - Atmel (ATMEGA,AT90S8535), AVR, Microcontroleurs, dongle ISP, programmateurs

JTAG ICE / AVR ISP

(Evertool)

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.

JTAGICE

Jtag_schema

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)

Coté pistes
Straps
Composants

Configuration de la carte :

1) Faire 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 :

fuses_m16


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 :

fuses_m8535

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 JTAGICE
2) Connectez un ATmega supportant le protocole JTAG (fuse bit JTAGEN=0) au connecteur JTAG de la carte :

jtag_target

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

connect_jtag


3) Démarrez AVR Studio et cliquez sur :

avr

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

detect_jtag

Test AVR ISP :

1) Mettez les 2 inverseurs en position ISP
2) Connectez un ATmega au connecteur ISP de la carte :

isp

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


isp_con

3) Démarrez AVR Studio et cliquez sur :

avr

Si cette fenêtre apparaît :


stk500

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

isp_detect



Ca marche :-)

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.

avr_studio

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 :

erreur1
Dans l'historique vous avez « Entering programming mode.. FAILED! »
Vérifiez la ligne RST. L'ISP peut entrer en mode programmation que si RST est forcée à 0V.

erreur2
  • 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
erreur3

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