MEGA con Jtag attivo e Atmel-Ice su AtmelStudio7

Buongiorno a tutti,
Dopo aver testato il JTAG sul DUE con l’Atmel-ICE sto cercando di capire come si debugga con il AS7.
Scorrazzando sul web ho scoperto poi che anche il MEGA, previa attivazione dei fuse corrispondenti via l’ICSP, può avere il JTAG!
Allora mi son detto che dovevo provarlo ;D
Per la fare connessione de lCSP non è stato difficile i cavetti forniti sono direttamente compatibili.
Il problema è stato trovare la giusta combinazione per il JTAG sulle entrate Analogiche…
Fortuna che ho trovato questi tedeschi qui :cold_sweat:
Il secondo cavetto del ICE ha dei connettori femmina già cablati e numerati.

A chi può servire lo rimetto qua:

Connettore 1 - Arduino pin A4
Connettore 2 - Arduino pin GND
Connettore 3 - Arduino pin A6
Connettore 4 - Arduino pin 5V
Connettore 5 - Arduino pin A5
Connettore 9 - Arduino pin A7
Connettore 0 (10) - Arduino pin GND

Adesso finalmente, c’ho passato la nottata, il JTAG è utilizzabile!

Ma devo capire come utilizzare al meglio la suite AS7 per finalmente fare del debugging OCD :o
Ho installato il plugin Arduino IDE for Atmel Studio 7 ma mi sto perdendo un po…

Devo aver bruciacchiato il Bootloader del Mega2560...
Adesso ho bisogno d'aiuto per capire come posso riscriverlo al suo posto via JTAG o via ISP tramite sempre l'ATMEL-ICE.

Ho trovato i Bootloader nei repertori C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders ma quale usare per il Mega2560?

E con AS7 dove bisogna scrivere e come settare il device programming?

Qualcuno l'ha già fatto?

Buon anno nuovo,
Simone

Mi sembra di aver capito che il file da riscrivere sia questo qui: stk500boot_v2_mega2560.hex.
Ma direttamente nella memoria flash? :confused:

Cercando ho capito che è la Flash...

E dopo aver programmato quest'ultima con il JTAG della ICE provo a caricare via USB uno sketch Blink ho ancora un'errore tipo:

avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
Errore durante il caricamento dello sketch

Forse dei FUSE da programmare diversamente? :o

Si erano i FUSE da settare diversamente, nel mio caso ho lasciato JATG e SPI attivi:

Extended = 0xFD

High = 0x98

LOW = 0xFF

Adesso posso riprogrammare dalla IDE Arduino ;D

Sapete per caso come configurare i FUSE alla configurazione originale fatta dall'IDE Arduino per il MEGA2560?

Simone72:
Sapete per caso come configurare i FUSE alla configurazione originale fatta dall’IDE Arduino per il MEGA2560?

Suppongo tu debba cercare nel file boards.txt
A me porta questo:
##############################################################

mega2560.name=Arduino Mega 2560 or Mega ADK

mega2560.upload.protocol=stk500v2
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200

mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F

mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino
mega2560.build.variant=mega

Grazie XSparter!
Adesso lo rimetto a nuovo :slight_smile:

Per continuare dei test e per imparare a debuggare ho provato a costruire un esempio sketch "Chatserver" con AS7 ma ricevo due errori:

Error        SPI.h: No such file or directory    ChatServer    c:\users\simone\Documents\Atmel Studio\7.0\ArduinoSketch15\ArduinoSketch15\ChatServer\Sketch.cpp    24


Error        recipe for target 'Sketch.o' failed    ChatServer    c:\users\simone\Documents\Atmel Studio\7.0\ArduinoSketch15\ArduinoSketch15\ChatServer\Debug\Makefile    80

La cosa divertente è che quando compilo con l'IDE Arduino non ne ho neanche uno...

Qualcuno ha già digerito ste rogne? :cold_sweat:

Finalmente qualcuno su AVR Freaks mi è venuto in aiuto!

Spesso nell'importazione AS7 perde le librerie quindi vanno aggiunte a mano.
La procedura è andare sul repertorio arancione che nel mio caso è ChatServer dal nome dell'esempio che ho importato e clic destro per poi scegliere Add Arduino Library.

Poi selezionare quelle che sono apparse nell'errore, SPI.h in questo caso.
Ricompilare e inviare col JTAG nel MEGA2560! ;D

Buongiorno a tutti,
Dopo mesi e mesi torno su Arduino che voglio far scoprire alle mie figlie.
Purtroppo le schede che ho vogliono farsi programmare solo con l'ICE della Atmel.
Sto cercando di capire come rimettere i Fuse in modo che il Mega possa programmarsi tranquillamente con l'USB d'origine.

Per ora quando provo a usare l'IDE ho solo questo:

Arduino : 1.6.13 (Windows 10), Carte : "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Compila senza problemi e poi...

         System wide configuration file is "C:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino8/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : wiring
         Overriding Baud Rate          : 115200
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
Une erreur est survenue lors du transfert du croquis

Non so proprio quale Fuse dovrei cambiare, via L'ISP li vedo settati cosi:

BODLEVEL = 2V7
OCDEN = [ ]
JTAGEN = [ ]
SPIEN = [X]
WDTON = [ ]
EESAVE = [ ]
BOOTSZ = 4096W_1F000
BOOTRST = [X]
CKDIV8 = [ ]
CKOUT = [ ]
SUT_CKSEL = EXTXOSC_8MHZ_XX_16KCK_65MS

EXTENDED = 0xFD (valid)
HIGH = 0xD8 (valid)
LOW = 0xFF (valid)

Qualcuno sa che pesci pigliare? :o

Ti basta un programmatore ISP (tra quelli riconosciuti dall IDE di Arduno ... incluso Atmel ICE) da collegare all'apposito connettore ICSP sulla MEGA ... dopo di che, sempre dall'IDE, prima selezioni il programmatore: Strumenti -> Programmatore e successivamente: Strumenti -> Carica Bootloader ... ti imposta correttamente i FUSE e ricarica in memoria il Bootloader, così poi potrai caricare da USB :wink:

Guglielmo

Grazie GPB,
Ho selezionato dai tool -> Programmer -> Atmel-ICE, ripassando d
Dopo diché ho

Grazie GPB,
nel frattempo ho aggiornato l'IDE di Arduino.

Ho selezionato dai tool -> Programmer -> Atmel-ICE, ripassando da Tool ho fatto Burn Bootloader
Dopo diché ho questo:

Arduino: 1.8.6 Hourly Build 2018/05/03 04:33 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega2560 -catmelice_isp -Pusb -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : atmelice_isp
avrdude: jtag3_open_common(): Did not find any device matching VID 0x03eb and PID list: 0x2141

avrdude done.  Thank you.

Error while burning bootloader.

Poi ho selezionato come programmer JTAGICE3 (ISP mode) e mi sputa questo:

Arduino: 1.8.6 Hourly Build 2018/05/03 04:33 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/bin/avrdude -CC:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf -v -patmega2560 -cjtag3isp -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD8:m -Ulfuse:w:0xFF:m 

avrdude: Version 6.3, compiled on Jan 17 2017 at 12:00:53
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Users\cocci\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino9/etc/avrdude.conf"

         Using Port                    : usb
         Using Programmer              : jtag3isp
avrdude: jtag3_open_common(): Did not find any device matching VID 0x03eb and PID list: 0x2110, 0x2140

avrdude done.  Thank you.

Error while burning bootloader.

Forse il mio avrdude.conf é da rivedere?

Il mio ICE ha queste info:

Atmel-ICE
Debug host        127.0.0.1
Debug port        55534
Serial number     J41800062379
Connection        com.atmel.avrdbg.connection.cmsis-dap
Features          1
Firmware Version  1.24
Hardware Version  0

Se ben ricordo Atmel Studio cambia i driver per la USB e ... non credo vadano bene con l'IDE.

E' molto che non lo uso (lavoro prevalentemente su macOS), ma mi sembra di ricordare che ci fosse una utility per lo switch dei driver ... prova a cercare ... ::slight_smile:

Guglielmo

In effetti ho trovato questo Treads nella parte inglese dove parlano di come piazzare il MegaCore per il Mega.
Anche qui si parla dei diversi drivers e di come si possono gestire, sembrerebbe con Zadig... :frowning: