Pascal Jean pascal.jean(at)epsilonrt.com http://www.epsilonrt.com/ Historique des versions Version Auteur Description 1.01 ascal !ean "#. nov. "010 1"$%& Rsum AVR Dragon est un outil de dveloppement ' bas pri( ddi au( microcontr)leurs AVR * bits et +" bits commercialis par A,-./. Apr0s une description compl0te d1AVR Dragon et des liaisons utilises pour le connecter ' la carte cible 2,3"004 ce document dtaille l1utilisation des logiciels 5odevision AVR et AVR 2tudio pour e66ectuer la tlc7argement en 8/A2H et le dbogage d1un programme 5. ,able des mati0res 1.COPYRIGHT ET LICENCE...................................................................................................2 1.1.-ta9in6ormation..........................................................................................................." 2.PRSENTATION DE AVR DRAGON.....................................................................................3 3.DESCRIPTION DE AVR DRAGON.......................................................................................3 +.1.2pci6ications lectriques................................................................................................+ +.".5onnecteurs vers le microcontr)leur cible.........................................................................& +.".1.5onnecteur !,A:......................................................................................................& +.".".5onnecteur ;2<debug=ire........................................................................................& +.+.Vo>ants........................................................................................................................% +.&.5onnecteur d1alimentation..............................................................................................% +.%.Description des inter6aces vers la carte cible.....................................................................% +.%.1.;nter6ace ;2...........................................................................................................% +.%.".;nter6ace !,A:.........................................................................................................% +.%.+.;nter6ace debug=ire.................................................................................................? 4.INSTALLATION ET CONNEXION DE AVR DRAGON............................................................ &.1.;nstallation du driver @2A (AVR 2tudio)............................................................................# &.".5onne(ion entre AVR Dragon et la carte cible....................................................................# &.+.@tilisation des adaptateurs dragon3.................................................................................# !."TILISATION DE AVR DRAGON AVEC CODEVISION AVR..................................................# %.1.rogrammation ' partir de 5odevision AVR.......................................................................B %.".Dbogage ' partir de 5odevision AVR.............................................................................10 P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 1'1 D(OGAGE AVEC AVR DRAGON C 5op>rig7t et /icence )."TILISATION DE AVR DRAGON AVEC AVR ST"DIO........................................................12 ?.1.;nstallation de =inAVR.................................................................................................1" ?.".5ration du projet et compilation avec AVR 2tudio...........................................................1+ ?.+.rogrammation avec AVR 2tudio....................................................................................1& ?.&.Dbogage avec AVR 2tudio...........................................................................................1% ?.&.1.Dmarrage du dbogage.........................................................................................1% ?.&."..(cution en mode pas ' pas...................................................................................1% ?.&.+.ose de points d1arrDt.............................................................................................1% ?.&.&.Visualisation et modi6ication du contenu d1une variable...............................................1? ?.&.%.Visualisation et modi6ication du contenu d1un registre d1entres9sorties.........................1? ?.&.?.Visualisation et modi6ication du contenu de la mmoire...............................................1# .*A+ LISTE DES +"ESTIONS *R+"ENTES......................................................................1 1. COPYRIGHT ET LICENCE Copyright (c) 2010 Pascal Jean. Permission is granted to copy, distribute and/or modify this document under the terms of the !" #ree $ocumentation %icense, &ersion 1.2 or any later 'ersion published by the #ree (oft)are #oundation* )ith no +n'ariant (ections, no #ront,Co'er -e.ts, and no /ac0,Co'er -e.ts. 1 copy of the license is included in the section entitled 2!" #ree $ocumentation %icense2. Copyright (c) 2010 Pascal Jean. Permission est accord3e de copier, distribuer et/ou modifier ce document selon les termes de la %icence de $ocumentation %ibre !" (!" #ree $ocumentation %icense), 'ersion 1.2 ou toute 'ersion ult3rieure publi3e par la #ree (oft)are #oundation * sans (ections +n'ariables * sans -e.te de Premi4re de Cou'erture, et sans -e.te de 5uatri4me de Cou'erture. "ne copie de la pr3sente %icence est incluse dans la section intitul3e 6 %icence de $ocumentation %ibre !" 7. Copyright (c) 2010 Pascal Jean. %a feuille de style 8pen8ffice de ce document est publi3e sous licence Creati'e Commons, Paternit3, Pas d9utilisation commerciale, Partage des conditions +nitiales : l9identi;ue. %e te.te complet de cette licence peut <tre consult3 sur http=//creati'ecommons.org/licenses/by,nc,sa/2.0/fr/legalcode 1.1. ,-.a/0n1234a.02n 5et article est crit avec EpenE66ice +.". ;l est disponible en version imprimable au 6ormats D8. /a derni0re version de ce document peut Dtre tlc7arge ' l1adresse $ 7ttp$<<FFF.epsilonrt.com<avrdragon<avrdragon9notice.pd6 P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 2'1 D(OGAGE AVEC AVR DRAGON C rsentation de AVR Dragon 2. PRSENTATION DE AVR DRAGON AVR Dragon est un outil de dveloppement ' bas pri( ddi au( microcontr)leurs AVR * bits et +" bits d1A,-./. ;l se prsente sous la 6orme d1une petite carte lectronique relie au 5 par @2A. AVR Dragon permet principalement " c7oses $ rogrammer les mmoires 8/A2H et ..RE- des microcontr)leurs AVR et AVR+" Dboguer un programme directement dans la mmoire du microcontr)leur AVR et AVR+" en permettant par e(emple4 d1e(cuter en pas ' pas4 de poser des points d1arrDts4 d1observer l1volution des variables du programme ou du contenu des mmoires (2RA-4 ..RE-) et de lire ou modi6ier le contenu des registres. .n plus de ces deu( 6onctions essentielles4 AVR Dragon dispose d1une Gone de protot>page pouvant accueillir des microcontr)leurs en boitier D;. AVR Dragon prvu ' l1origine pour s1intgrer au logiciel gratuit AVR 2tudio d1A,-./ est aussi compatible avec d1autres logiciels comme 5odeVision AVR ou AVRD@D.. our le dbogage4 il est ncessaire que le microcontr)leur cible dispose d1une inter6ace !,A:4 debug=ire ou D;. 2a documentation4 en anglais4 est disponible sur 7ttp$<<FFF.atmel.com<avrdragon ou dans l1aide en ligne des outils d1AVR 2tudio (AVR Tools Help). /a liste des modes de programmation et de dbogage supports par les microcontr)leurs peut Dtre consulte sur internet ou dans l1aide en ligne d1AVR 2tudio. 3. DESCRIPTION DE AVR DRAGON 3.1. S%-c010ca.02ns -lec.3056es AVR Dragon est reli au 5 par un cordon @2A. ;l est auto9aliment par @2A et n1a donc pas besoin d1Dtre aliment4 directement4 ou par la carte cible. Le %23. "S( 6.0l0s- s63 le PC 720. 8.3e ca%a9le 7e 1263n03 !$$ 4A (USB bus powered high-power ou self-powered)4 ce qui est le cas de tous les ports des 5 de bureau. 5e point doit 6aire l1objet d1une vri6ication dans le cas de l1utilisation d1un ordinateur portable (le 5 ne risque rien4 mais si le port @2A ne peut pas 6ournir les %00 mA4 AVR Dragon ne 6onctionnera pas)4 AVR Dragon doit4 par contre4 avoir acc0s ' la tension d1alimentation du microcontr)leur cible (par le connecteur ;2 ou !,A:) a6in de la mesurer. 5omme AVR Dragon dispose de circuits de translation de niveau logique4 il 12nc.02nne a:ec 7es 40c32c2n.3;le63s c09les al04en.-s en.3e 1<= e. !<! V2l.s. AVR Dragon peut ventuellement4 alimenter le microcontr)leur cible mais uniquement en %V et par l1intermdiaire d1un connecteur ddi. Dans ce cas4 la consommation de la carte cible ne doit pas dpasser +00 mA. ;l semble raisonnable de limiter l1usage de cette tension d1alimentation ' l1utilisation de la Gone de protot>page se trouvant sur AVR Dragon. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 3'1 D(OGAGE AVEC AVR DRAGON C 5onnecteurs vers le microcontr)leur cible 3.2. C2nnec.e63s :e3s le 40c32c2n.3;le63 c09le AVR Dragon peut principalement programmer les microcontr)leurs cibles4 ;n92itu4 par l1intermdiaire d1une liaison ;2 ou !,A:. /e dbogage est ralis par l1intermdiaire d1une liaison debug=ire ou !,A:. ;l peut aussi programmer des microcontr)leurs ' l1aide d1inter6aces H 7aute tension I ( ou HV2). ;l est ncessaire dans ce cas4 d1e(traire le microcontr)leur de son support de la carte cible. Aien que tr0s peu utiliss4 les modes de programmation H 7aute tension I peuvent permettre de revalider un 6usebit 2;.J et<ou !,A:.J invalid accidentellement. 5ette possibilit ne sera pas dcrite dans ce document. AVR Dragon dispose d1un connecteur H.10 ' ? broc7es pour la conne(ion ;24 debug=ire et D; et d1un connecteur H.10 ' 10 broc7es pour la conne(ion !,A:. /1utilisation de D; ne sera pas dcrite dans ce document. ;l 6aut noter qu1A,-./ a4 de 6aKon autoritaire4 impos le connecteur ;2 H.10 ' ? broc7es sur ses nouveau( outils de dveloppement (comme AVR Dragon ou AVR;2 mL;;)4 sans se soucier de la compatibilit des cartes cibles e(istantes M A l1utilisateur de s1adapter... /1e(plication o66icielle est de limiter les con6usions entre un connecteur !,A: et un connecteur ;24 ce qui se comprends... 3.2.1.C2nnec.e63 JTAG /e connecteur H.10 ' 10 broc7es peut Dtre utilis pour la programmation et<ou le dbogage en mode !,A:. E4%lace4en. 76 c2nnec.e63 JTAG (32c>a&e 76 c2nnec.e63 JTAG Le c2nnec.e63 HE1$ ? 1$ 932c>es es. 3-se3:- a6 JTAG e. NE DOIT PAS 8.3e 3el0- ? 6n c2nnec.e63 ISP. 3.2.2.C2nnec.e63 ISP'7e96&@03e /e connecteur H.10 ' ? broc7es peut Dtre utilis pour la programmation en mode ;2 et<ou pour le dbogage en mode debug=ire. Dans le cas d1un connecteur ;2 cible ' 10 broc7es4 il 6aut utiliser un adaptateur. E4%lace4en. 76 c2nnec.e63 ISP'7e96&@03e (32c>a&e 76 c2nnec.e63 ISP'7e96&@03e P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 4'1 D(OGAGE AVEC AVR DRAGON C Vo>ants 3.3. V2Aan.s AVR Dragon dispose de deu( /.D $ une /.D ' plusieurs couleurs4 LED14 qui indique l1tat de AVR Dragon (voir ci9dessous). une /.D verte4 LED24 qui indique s1allume lorsqu1il > a du tra6ic @2A C26le63 LED1 S0&n010ca.02n Rouge AVR Dragon prDt. AVR 2tudio n1est pas connect. Nteinte AVR Dragon prDt. AVR 2tudio est connect. Verte ,rans6ert de donnes entre AVR 2tudio et AVR Dragon. !aune ;nitialisation ou mise ' jour du firmware AVR Dragon. 3.4. C2nnec.e63 7Bal04en.a.02n 5e connecteur H.10 ' ? broc7es peut Dtre utilis pour alimenter4 en % Volts4 un microcontr)leur dans la Gone de protot>page. /e courant ma(imal pouvant Dtre 6ourni par ce connecteur est de +00 mA. E4%lace4en. 76 c2nnec.e63 7Bal04en.a.02n (32c>a&e 76 c2nnec.e63 7Bal04en.a.02n 3.!. Desc30%.02n 7es 0n.e31aces :e3s la ca3.e c09le 3.!.1.In.e31ace ISP /a liaison ;2 utilise ? 6ils. 5es signau( sont -E2;4 -;2E4 2534 R.2.,4 V,: et :JD. V,: est utilis par AVR Dragon pour vri6ier la prsence et la con6ormit (entre 14* et %4% Volts) de la tension d1alimentation du microcontr)leur cible et pour e66ectuer la translation de niveau( logiques. Dans le cas d1une utilisation des lignes -E2;4 -;2E et 253 par des circuits e(ternes et a6in d1viter des con6lits sur ces lignes4 il est ncessaire d1intercaler des rsistances srie entre la liaison et les circuits e(ternes. /es rsistances doivent Dtre calcules a6in de ne pas dpasser la consommation en courant ma(imale ("0 mA par broc7e sans dpasser 100 mA par port). ar e(emple dans le cas d1un tension d1alimentation de % V4 les rsistances devront avoir une valeur minimale de "%0 O. 3.!.2.In.e31ace JTAG ? 6ils au minimum sont utiliss pour relier AVR Dragon ' la cible. 5es signau( sont ,534 ,DE4 ,D;4 ,-24 V,re6 et :JD. V,re6 est utilis par AVR Dragon pour vri6ier la prsence et la con6ormit (entre P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e !'1 D(OGAGE AVEC AVR DRAGON C Description des inter6aces vers la carte cible 14* et %4% Volts) de la tension d1alimentation du microcontr)leur cible et pour e66ectuer la translation de niveau( logiques. /e signal n2R2, est 6acultati6 et emplo> pour commander et surveiller le R.2., de la cible. 5e signal n1est normalement pas ncessaire mais peu Dtre utile pour revalider l1inter6ace !,A: dans le cas oP le programme prsent dans le microcontr)leur aurait mis ' 1 le bit !,D du registre -5@52R. /a 6igure ci9dessus montre comment la liaison !,A: devrait Dtre cQble pour un 6onctionnement correct. Dans le cas d1une utilisation des lignes !,A: par des circuits e(ternes et a6in d1viter des con6lits sur ces lignes4 il est ncessaire d1intercaler des rsistances srie entre la liaison et les circuits e(ternes. /es rsistances doivent Dtre calcules a6in de ne pas dpasser la consommation en courant ma(imale ("0 mA par broc7e sans dpasser 100 mA par port). ar e(emple dans le cas d1un tension d1alimentation de % V4 les rsistances devront avoir une valeur minimale de "%0 O. 3.!.3.In.e31ace 7e96&@03e + 6ils au minimum sont ncessaires pour la communication entre AVR Dragon et la carte cible avec l1inter6ace de debug=ire. 5es signau( sont R.2.,4 V,re6 et :JD. our utiliser la ligne R.2., pour le dbogage en debug=ire4 il ne 6aut %as qu1un condensateur > soit reli. 2i c1est le cas4 il 6aut tout simplement dsouder ce condensateur. 2i une rsistance de pull9up est connecte au R.2.,4 il ne 6aut pas que sa valeur soit in6rieure ' 10 LO. ;l 6aut noter que tous les microcontr)leurs A,-./ sont quips4 au niveau de la ligne de R.2.,4 d1une rsistance de pull9up et d1un circuit de R.2., interne. 5e circuit gn0re un R.2., interne (Power-on reset) dont la dure est paramtrable par les 6usebits 2@, et 5/32./ (se r6rer au datasheet du microcontr)leur). I4%23.an. C 5ette inter6ace utilise seulement un 6il (R.2.,)4 pour la communication avec la cible (utilisation bidirectionnelle). our permettre ' l1inter6ace debug=ire de 6onctionner avec AVR Dragon4 il 6aut que le fusebit D=.J soit valid (D=.JR0). ar d6aut4 D=.J n1est pas valid ' la sortie d1usine. 5e fusebit doit Dtre valid par l1inter6ace ;24 raison pour laquelle il est conseill4 a6in de 6aciliter la programmation et le dbogage4 de cQbler l1ensemble des signau( ;2 lors de l1utilisation de l1inter6ace debug=ire. Re4a356e $ Suand le fusebit D=.J est valid4 la 6onctionnalit normale d1inter6ace d1;2 est d9 valide. 5eci a6in que le debug=ire puisse avoir le contr)le complet du R.2.,. Suand D=.J est valid il n1est plus possible d1utiliser ;2. our revalider l1inter6ace ;2 il 6audra le 6aire ' l1aide d1AVR 2tudio (De96&CAVR D3a&2n O%.02nsCC2nnec.02n) ou de l1utilitaire en ligne de commande avrdragon (par e(emple a'rdragon ,d1-mega1>? ,@ pour un A,mega1?*). P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e )'1 D(OGAGE AVEC AVR DRAGON C ;nstallation et conne(ion de AVR Dragon 4. INSTALLATION ET CONNEXION DE AVR DRAGON 4.1. Ins.alla.02n 76 730:e3 "S( DAVR S.6702E Avant de connecter AVR Dragon au 54 il est ncessaire d1installer le driver @2A !ungo. 5e driver 6ait partie d1AVR 2tudio &.1" 2+ ou suprieur. ;l est donc ncessaire de tlc7arger AVR 2tudio sur 7ttp$<<FFF.atmel.com<avrstudio et de l1installer en administrateur. @ne 6ois4 l1installation du driver e66ectue4 connecteG AVR Dragon au 5 ' l1aide d1un cordon @2A (A<A). 4.2. C2nneF02n en.3e AVR D3a&2n e. la ca3.e c09le 2i la carte cible est quip de connecteur compatible avec AVR Dragon4 il su66it de relier AVR Dragon ' la carte cible ' l1aide d1un cordon droit H.10 ' ? 6ils (pour ;2 ou debug=ire) ou ' l1aide d1un cordon droit H.10 ' 10 6ils (pour !,A:). /es connecteurs de AVR Dragon ne disposant pas de dtrompeur4 il 6audra s1assurer que le cordon est correctement branc7 avec le 6il rouge du cot de la broc7e 1 du connecteur. Dans le cas d1une carte cible non compatible4 ce qui est le cas de 2,3"004 il 6audra utiliser des adaptateurs. 4.3. ".0l0sa.02n 7es a7a%.a.e63s 73a&2nG /a carte 2,3"00 dispose d1un connecteur ;2 10 broc7es et ne dispose pas de connecteur !,A:. En peut nanmoins utiliser AVR Dragon ' condition d1intercaler des adaptateurs. ;l sera alors possible de programmer tous les microcontr)leurs supports par 2,3"00 et de dboguer les programmes sur les microcontr)leurs supports par 2,3"00 disposant d1une inter6ace !,A: (A,mega1?4 A,mega+" et A,mega1?"). /e dbogage par debug=ire n1est pas possible car la carte 2,3"00 int0gre un s>st0me de surveillance de la tension d1alimentation qui pilote la broc7e R.2.,. 5e s>st0me de surveillance d1alimentation empDc7e AVR Dragon de piloter correctement la ligne R.2.,. ;l > a + adaptateurs pour 2,3"00 $ @n adaptateur pour l1inter6ace ;2 qui s1intercale entre le connecteur ;2 10 broc7es de 2,3"00 et le connecteur ;2 ? broc7es de AVR Dragon. Deu( adaptateurs pour l1inter6ace !,A: qui s1intercale entre le connecteur ER,5 ' 10 broc7es de 2,3"00 et le connecteur !,A: de AVR Dragon. ;l > a deu( adaptateurs !,A: car le routage des lignes !,A: sur le ER,5 est di66rent entre les A,mega1?<+" et l1A,mega1?". P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e '1 P0n 1 P0n 1 D(OGAGE AVEC AVR DRAGON C @tilisation des adaptateurs dragon3 A7a%.a.e63 ISP -ettre en place l1adaptateur sur le connecteur ;2 10 broc7es du 2,3"00. Relier l1adaptateur ' l1aide du cordon H.10 ' ? 6ils au connecteur ;2 de AVR Dragon. /1adaptateur dispose d1un cavalier qui doit Dtre mis en place dans le cas d1une utilisation avec 2,3"00. ;l 6aut savoir que la carte 2,3"00 ncessite l1activation d1un signal (signal R: sur la broc7e +) lors de la programmation. 5e signal n1tant pas prsent sur le connecteur ;2 de AVR Dragon4 l1adaptateur le recr ' partir du signal R.2.,. /e cavalier permet donc d1appliquer ou non le signal R: gnr ' partir du R.2., sur la broc7e + du connecteur ;2 du 2,3"00. A7a%.a.e63s JTAG 57oisir le mod0le d1adaptateur en 6onction du mod0le de microcontr)leur en place. (!,A: -1? pour les A,mega1? et A,mega+"4 !,A: -1?" pour l1A,mega1?"). -ettre en place l1adaptateur sur le connecteur ER,5 ' 10 broc7es du 2,3"00. Relier l1adaptateur ' l1aide du cordon H.10 ' 10 6ils au connecteur !,A: de AVR Dragon. /es adaptateurs disposent de connecteurs ' ? broc7es qui permettent d1accder au signau( du ER,5 qui ne sont pas utiliss par !,A:. /e broc7age de ces connecteurs est di66rent suivant le mod0le d1adaptateur $ JTAG ,1) JTAG ,1)2 /es 6ic7iers de 6abrication de ces adaptateurs peuvent Dtre tlc7arg sur 6tp$<<6tp.epsilonrt.com<pub<dragon3< . P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e ='1 D(OGAGE AVEC AVR DRAGON C @tilisation de AVR Dragon avec 5odevision AVR !. "TILISATION DE AVR DRAGON AVEC CODEVISION AVR 5odevision AVR supporte AVR Dragon depuis sa version ".0. ;l sera possible de programmer le microcontr)leur cible4 en mode ;2 ou !,A:4 directement ' partir de 5odevision AVR comme avec n1importe quel programmateur. 5odevision AVR n1int0gre pas de dbogueur intgr mais peu 6aire appel ' AVR 2tudio pour la mise au point du programme. !.1. P32&3a44a.02n ? %a3.03 7e C27e:0s02n AVR our utiliser AVR Dragon avec 5odeVision AVR4 il su66it de lui indiquer le t>pe de programmateur et le mode de programmation par l1intermdiaire du menu Se..0n&sHP32&3a44e3 ou par le bouton quivalent de la barre d1outils. ;l 6audra prendre soin de bien prciser le mode de programmation en 6onction de l1inter6ace utilise pour connecter AVR Dragon ' la carte 2,3"00 (;2 ou !,A:). A partir de l'4 on e66ectue la programmation du microcontr)leur cible comme ' l17abitude4 soit par un appel directe du c7ip programmer (T22lsHC>0% P32&3a44e3) ou par l1intermdiaire du 926.2n 70s%2n09le apr0s une compilation sans erreur P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e #'1 D(OGAGE AVEC AVR DRAGON C rogrammation ' partir de 5odevision AVR ;l > a plusieurs avantages ' utiliser AVR Dragon ' la place d1un programmateur 2,3"00 sur port parall0le $ AVR Dragon peut Dtre utilis sur les 5 ne disposant pas de port parall0le (portables) AVR Dragon peut Dtre utilis sur des cibles alimentes entre 14* et %4% Volts AVR Dragon peut e66ectuer un dbogage et il est compatible avec les nouvelles 6amilles et les nouveau( mod0les de microcontr)leurs A,-./ AVR Dragon est conKu et 6abriqu par A,-./4 il est 6iable et voluti6. !.2. D-92&a&e ? %a3.03 7e C27e:0s02n AVR /a procdure d1utilisation d1AVR 2tudio est dtaill au paragrap7e +.".1 de la documentation 5odevision AVR. 5omme prcis prcdemment4 le dbogage se 6ait ' l1aide de AVR 2tudio. 5odevision AVR ne 6ait que gnrer un 6ic7ier 5E8 qui inclut le code source et le code objet puis appelle AVR 2tudio. Avant de pouvoir e66ectuer le dbogage4 il 6audra vri6ier que 5odevision AVR est con6igur convenablement (Jormalement cela est 6ait par d6aut) $ pour utiliser AVR 2tudio par le menu Se..0n&sHDe96&&e3 en prcisant le c7emin complet d1AVR 2tudio pour gnrer un 6ic7ier 5E8 par le menu P32Iec.HC2n10&63eHC C24%0le3HC27e Gene3a.02n en c7oisissant le 6ormat T5E8 RE- H.U ..C ;l 6aut ensuite appeler AVR 2tudio par le menu T22lsHDe96&&e3 ou le bouton de la barre d1outils. @ne 6ois dans AVR 2tudio $ 1. ;l 6aut ouvrir le 6ic7ier 5E8 gnr dans le rpertoire du projet par 5odevision AVR ". AVR 2tudio vous propose de crer un 6ic7ier projet A24 accepteG en cliquant sur En3e&0s.3e3. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 1$'1 D(OGAGE AVEC AVR DRAGON C Dbogage ' partir de 5odevision AVR +. ;l 6aut alors c7oisir la plate6orme de dbogage (AVR Dragon) et le microcontr)leur cible (ici A,mega+") avant de cliquer sur *0n0s>. /e dbogage commence dans AVR 2tudio $ Re4a356e I4%23.an.e $ Arriv ' ce stade4 il peut Dtre intressant d1enregistrer le projet AVR 2tudio par P32Iec.HSa:e. 5ela permettra ' l1avenir de ne pas recommencer les tapes 1 ' + et d1ouvrir directement le 6ic7ier projet A2 ' la place du 6ic7ier 5E8. /1utilisateur peut alors procder au dbogage de son programme dans AVR 2tudio $ mode pas ' pas4 pose de point d1arrDt4 visualisation et modi6ication ventuelle du contenu des variables4 des registres ou de la mmoire. our les dtails4 se r6rer au paragrap7e Dbogage avec AVR 2tudio. 2i une erreur est constate et que l1utilisateur sou7aite modi6ier le code source de son programme4 il doit4 sans 6ermer AVR 2tudio4 le modi6ier dans 5odevision AVR4 puis le recompiler (P32Iec.H(60l7). .n revenant dans AVR 2tudio (on clique dessus dans la barre de tQc7es)4 celui9ci dtecte la modi6ication du 6ic7ier 5E8 et propose de le rec7arger4 il 6aut accepter par Eui. En peut alors reprendre de dbogage et petit ' petit converger vers un programme totalement 6onctionnel. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 11'1 D(OGAGE AVEC AVR DRAGON C @tilisation de AVR Dragon avec AVR 2tudio ). "TILISATION DE AVR DRAGON AVEC AVR ST"DIO 5omme je l1ai dj' indiqu AVR 2tudio est un logiciel dvelopp et 6ourni gratuitement par A,-./. 5e que l1on sait moins c1est que celui9ci est solution compl0te de dveloppement qui peut Dtre coupl au cl0bre compilateur :55 en version AVR. /es avantages de cette solution par rapport ' 5odevision AVR sont les suivants $ avr9gcc est gratuit et non limit en taille de code avr9gcc est totalement intgr dans AVR 2tudio car il dispose d1un plugin. /1utilisateur n1a plus qu1un seul logiciel ' utiliser pour l1dition4 la compilation4 la programmation4 le dbogage. avr9gcc utilise un code 5 normalis AJ2;. /1utilisateur pourra donc utiliser un langage normalis dont l1apprentissage sera trans6rable sur une autre plate6orme qu1AVR. avr9gcc est multi9plate6orme (=indoFs4 E29U4 /inu(). Dans le cas de E29U ou /inu(4 d1autres logiciel de dveloppement qu1AVR 2tudio sont disponibles. avr9gcc est utilis par la majorit des programmeurs AVR et de nombreu( projets libres. En peut citer par e(emple les projets $ AVR /ibc (7ttp$<<FFF.nongnu.org<avr9libc) roc>on AVR/ib (7ttp$<<7ubbard.engr.scu.edu<embedded<avr<avrlib) -avri(/ib (7ttp$<<epsilonrt.com<mavri(<modules.7tml) 8ree-odbus (7ttp$<<6reemodbus.berlios.de) /@8A (7ttp$<<FFF.6ourFalledcubicle.com</@8A.p7p) /es inconvnients de cette solution par rapport ' 5odevision AVR sont les suivants $ 5odevision AVR dispose d1un =iGard permettant au dbutant de gnrer du code automatiquement 5odevision AVR 6ournit un langage 5 H adapt I pour les dbutants (donc non standardis) qui permet par e(emple l1acc0s directe au( bits d1un registre (ER,5.1 R 0 par e(emple). 5odevision AVR 6ournit une librairie intgre qui rpond au besoin les plus courants. Voici deu( versions d1un programme permettant de 6aire clignoter une /.D sur le port A $ Ve3s02n C ANSI Da:3/&ccE Ve3s02n C27e:0s02n ).1. Ins.alla.02n 7e @0nAVR =inAVR est un package complet 6ourni sous 6orme d1installeur =indoFs qui permet d1installer le compilateur avr9gcc. our utiliser =inAVR4 il su66it de le tlc7arger 7ttp$<<Finavr.source6orge.net et de l1installer. ;l est pr6rable4 d1installer =inAVR dans le dossier par d6aut (sans espace). P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 12'1 D(OGAGE AVEC AVR DRAGON C 5ration du projet et compilation avec AVR 2tudio ).2. C3-a.02n 76 %32Ie. e. c24%0la.02n a:ec AVR S.6702 our compiler un programme en 54 il 6aut comme sous 5odevision AVR crer et con6igurer un projet. 2ous AVR 2tudio4 il 6aut 6aire P32Iec.HNeJ P32Iec. $ 57oisir le t>pe de projet AVR :55 ;ndiquer le c7emin oP l1on sou7aite stocLer le projet et ses 6ic7iers Donner un nom au projet 5liquer sur NeF. C7oisir la plate6orme AVR Dragon et le microcontr)leur cible (ici A,mega +") 5liquer sur *0n0s> 5on6igurer le projet par le menu P32Iec.HC2n10&63a.02n O%.02ns $ ;ndiquer la 6rquence de l17orloge utilise par le microcontr)leur (ici *000000 HG R * -HG) 57oisir l1optimisation /Os (optimisation de la taille du code) 5liquer sur OK. @ne 6ois le programme saisit dans la 6enDtre d1dition4 il 6aut le compiler par le menu (60l7H(60l7 ou ' l1aide du bouton de la barre d1outils. En peut aussi4 directement4 procder ' la compilation et au dbogage par le menu (60l7H(60l7 an7 R6n ou ' l1aide du bouton de la barre d1outils. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 13'1 D(OGAGE AVEC AVR DRAGON C rogrammation avec AVR 2tudio ).3. P32&3a44a.02n a:ec AVR S.6702 AVR 2tudio dispose aussi d1un programmateur $ En peut > accder par le menu T22lsHP32&3a4 AVRHC2nnec.... ou par le bouton correspondant de la barre d1outils $ 57oisir AVR Dragon 5liquer sur C2nnec.... 57oisir le mode de programmation (ici !,A:) 5liquer sur l1onglet rogram ;ndiquer l1endroit oP se trouve le 6ic7ier H.U (gnralement dans le dossier de6ault du projet) 5liquer sur *las> P32&3a4 NE PAS *ER,ER la 6enDtre mais la rduire M A partir de l'4 il su66ira de cliquer sur le bouton ci9contre pour H 6las7er I le microcontr)leur ' c7aque modi6ication du programme. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 14'1 D(OGAGE AVEC AVR DRAGON C Dbogage avec AVR 2tudio ).4. D-92&a&e a:ec AVR S.6702 ).4.1.D-4a33a&e 76 7-92&a&e our e66ectuer un dbogage dans de bonnes conditions4 il est pr6rable de recompiler le programme en con6igurant le projet sans optimisation $ our modi6ier l1optimisation4 cliquer sur le bouton E70. C633en. C2n10&63a.02n O%.02ns4 puis dans O%.040La.02n slectionner /O$ Recompiler le programme par un Auild. our dmarrer le dbogage4 il su66it de cliquer sur le bouton S.a3. De96&&0n& /e point d1e(cution (6l0c7e jaune) se positionne avant la 6onction main() ).4.2.EF-c6.02n en 427e %as ? %as Des appuis successi6s sur le bouton S.e% O:e3 (ou la touc7e *1$) permettent d1e(cuter les instructions les unes ' la suite des autres sans H descendre I dans les 6onctions. 2i on sou7aite observer le 6onctionnement d1une 6onction4 on peut descendre dedans grQce au bouton S.e% In.2 (ou la touc7e *11) ).4.3.P2se 7e %20n.s 7Ba338. our poser un point d1arrDt4 il su66it de cliquer sur la ligne oP l1on sou7aite le placer et d1appu>er sur la touc7e *# ou sur le bouton T2&&le (3eaK%20n. uis de lancer le programme en appu>ant sur *! ou le bouton R6n /e point d1e(cution s1arrDte sur l1endroit oP a t pos le point d1arrDt. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 1!'1 D(OGAGE AVEC AVR DRAGON C Dbogage avec AVR 2tudio ).4.4.V0s6al0sa.02n e. 427010ca.02n 76 c2n.en6 7B6ne :a30a9le our visualiser le contenu d1une variable4 il su66it de double9cliquer sur son nom4 puis de 6aire un clic droit et de slectionner A77 @a.c> /a variable apparaVt dans la 6enDtre @a.c>. 2i cette 6enDtre n1est pas prsente4 il 6aut l1a66ic7er par V0eJH@a.c>. En peut visualiser sa valeur en 7e(adcimal par un clic droit sur la 6enDtre @a.c> puis D0s%laA selec.e7 Val6e as HeF En peut modi6ier sa valeur en double9cliquant dessus dans la colonne Val6e. ).4.!.V0s6al0sa.02n e. 427010ca.02n 76 c2n.en6 7B6n 3e&0s.3e 7Ben.3-es/s23.0es /a 6enDtre ;<E VieF permet de visualiser et de modi6ier le contenu des registres d1entres9 sorties. 2i cette 6enDtre n1est pas prsente4 il 6aut l1a66ic7er par V0eJHT22l(a3HIO. ;l su66it pour cela de c7oisir le registre dans la partie suprieure de la 6enDtre. uis de cliquer sur les cases ' coc7er dans la partie in6rieure pour modi6ier la valeur A titre d1in6ormation4 le clic sur le bit 0 de ER,A4 provoque dans cet e(emple l1allumage en temps rel de la /.D qui > est connecte. P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 1)'1 D(OGAGE AVEC AVR DRAGON C Dbogage avec AVR 2tudio ).4.).V0s6al0sa.02n e. 427010ca.02n 76 c2n.en6 7e la 4-4203e 2i la 6enDtre ,e423A n1est pas visible4 il 6aut l1a66ic7er par V0eJH,e423A. En peut visualiser le contenu de la mmoire RA- en slectionnant Da.a dans la 6enDtre ,e423A en prcisant la valeur de l1adresse dans A773ess. our modi6ier une valeur dans la mmoire4 il su66it de cliquer dessus et de la taper au clavier. /es valeurs modi6ies apparaissent en rouge. De la mDme 6aKon on peut visualiser et modi6ier le contenu de la mmoire ..RE-. En peut visualiser le contenu de la mmoire 8/A2H mais pas la modi6ier. . *A+ LISTE DES +"ESTIONS *R+"ENTES W P. Jean2$1$ avrdragon9notice.odt version 1.01 %a&e 1'1