Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Protezione firmware Amega328P-PU (Arduino)

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[41] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteFedericoDIP » 21 set 2017, 17:43

Il datasheet l'ho letto ma come ben sapete è in inglese, quindi è ovvio che non si puo capire tutto in maniera perfetta.

Per programmare un l'Atmega328p serve almeno una volta un programmatore SPI (tralasciamo il caso JTAG più complesso) con i pin del bus SPI (In System Programming) i quali sono MISO (1), SCK (3), RST (5), MOSI (4) oltre a Vcc e GND.

Comunque grazie xyz, questa tua spiegazione mi è servita molto.
Collegherò al mio AVRdragon, sullo ZIF apposito, l'Atmega328P-PU vergine e farò intanto la prima prova a trasferire il mio sketch.
Poi proverò ad applicare la protezione.

Una domanda: so che l'Atmega328P-PU è settato in origine per funzionare con una frequenza interna di 8Mhz. Ma il mio sketch deve funzionare con un quarzo esterno da 16Mhz.
Come faccio ad impostare questa frequenza? Devo modificare la frequenza prima, dopo o durante l'applicazione della protezione?
Allegati
AVRDRAGON PIN.jpg
Avatar utente
Foto UtenteFedericoDIP
7 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 18 set 2017, 15:03

0
voti

[42] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteIlGuru » 21 set 2017, 18:20

FedericoDIP ha scritto:Una domanda: so che l'Atmega328P-PU è settato in origine per funzionare con un clock di 8Mhz. Ma il mio sketch funziona con un quarzo esterno da 16Mhz.
Come faccio ad impostare questa frequenza? Devo modificare la frequenza prima, dopo o durante l'applicazione della protezione?


Il tipo di clock si seleziona impostando con i fuses [3:0] del low fuses byte ( CKSEL ), capitoli 13.2 e 31.2 del datasheet.
Una volta burnato l'avr utilizzerà la sorgente impostata dai fuses
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

0
voti

[43] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteFedericoDIP » 21 set 2017, 18:29

Ciao IlGuru,

grazie per la tua risposta.
E questo settaggio devo farlo prima di trasferire lo sketch?
Dato che devo applicare la protezione all'Atmega328P-PU, vorrei capire se devo settare la frequenza prima di inserire la protezione.

Per quel che ho capito, mi sembra che gli step siano i seguenti:

1) Modifica frequenza del low fuses byte (CKSEL)
2) Trasferimento sketch nell'Atmega328P-PU
3) Applicazione protezione

Corretto?
Avatar utente
Foto UtenteFedericoDIP
7 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 18 set 2017, 15:03

0
voti

[44] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteIlGuru » 21 set 2017, 18:34

Si ma finisce tutto insieme, il micro lo burni una volta sola.
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

0
voti

[45] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteFedericoDIP » 21 set 2017, 20:47

Si ma finisce tutto insieme, il micro lo burni una volta sola


Ah perfetto..
Quindi collego l'AVRdragon al computer, inserisco l'Atmega328P-PU VERGINE nel suo ZIF, apro uno dei software per la programmazione (AVRdude...AVRstudio...), setto tutti i fuse che mi occorrono e trasferisco..?

Così il microcontrollore è gia programmato e protetto? =D>
Avatar utente
Foto UtenteFedericoDIP
7 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 18 set 2017, 15:03

0
voti

[46] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteIlGuru » 21 set 2017, 21:01

Quello che burni con avrdude è il file hex che all'interno contiene il codice e tutti i settaggi dei registri
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

3
voti

[47] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto Utentexyz » 21 set 2017, 21:42

Inglobare le impostazione dei fuse e del lock nel file .hex è una operazione possibile se nel codice vengono impostati in modo corretto nelle sezioni giuste. Questa cosa viene fatta dalla AVR libc inclusa insieme al IDE di Arduino, la documentazione spiega come:

http://www.atmel.com/webdoc/avrlibcrefe ... _fuse.html
http://www.atmel.com/webdoc/avrlibcrefe ... _lock.html

Per un principiante di solito è preferibile usare la linea di comando per i fuse e lock, se si usa AVRdude. Per usare le impostazioni da codice bisogna conoscere molto bene come funziona AVR toolchain.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[48] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto Utenteedgar » 21 set 2017, 22:04

Ci sono anche i vari fuse calculator che possono venire utili al principiante
Avatar utente
Foto Utenteedgar
10,0k 4 5 8
Master
Master
 
Messaggi: 5229
Iscritto il: 15 set 2012, 22:59

1
voti

[49] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteMassimoB » 23 ott 2017, 23:32

FedericoDIP ha scritto:Il datasheet l'ho letto ma come ben sapete è in inglese, quindi è ovvio che non si puo capire tutto in maniera perfetta.



Non sono d'accordo ma ci può stare
MCSA Windows Server 2012 R2
Cisco CCNA R&S - Cisco CCNA Security - Cisco CCNA Cyber Ops
CompTia A+ - CompTia Linux+ - CompTIA Systems Support Specialist CSSS
CompTia Pentest+ LPIC-1 - VCP VMware - Cisco CCNP Enterprise
Avatar utente
Foto UtenteMassimoB
14,2k 6 12 13
Expert free
 
Messaggi: 3163
Iscritto il: 28 ott 2012, 9:56
Località: Milano

0
voti

[50] Re: Protezione firmware Amega328P-PU (Arduino)

Messaggioda Foto UtenteFedericoDIP » 4 dic 2017, 2:49

Salve amici,

ieri mi sono dedicato a provare ad applicare la protezione sul mio Atmega328P-PU.
Ho eseguito i seguenti passi:

1) collegato un Arduino Uno R3 (con Atmega328P da proteggere) al mio portatile
2) collegato AVR Dragon al mio portatile
3) aperto AVR STudio 7
4) trasferito lo sketch tramite AVR Sudio 7
5) applicato le protezioni sui lock bit

Poi ho provato a leggere ed effettivamente non si riusciva a leggere nulla.
Poi però ho provato a scriverci sopra un altro sketch e..stranamente la lettura si era ripristinata, e quindi anche i lock bit ripristinati.
Questo significa che se io proteggo la lettura....poi chiunque puo scriverci sopra e in questa maniera si ripristinano i lock bit e si puo accedere all'interno?
Domanda: trasferendo il secondo sketch, il primo viene completamente cancellato o rimane qualcosa dentro?

Per applicare correttamente tutte le protezioni all'Atmega328P, devo inserirlo sullo ZIF del AVR Dragon?

Sucessivamente ho effettuato una seconda prova:

1) montato l'Atmega328P nell ZIF dell'AVR Dragon (pin 1 in basso)
2) collegato AVR DRagon sul mio portatile
3) deselezionato su AVR Studio la casella SPIEN

...ma quando avvio la protezione, mi vien fuori un messaggio di presenza della 0,0V... come se non leggesse nessuna tensione.. :(

PREMESSA: l'AVR Dragon, l'ho collegato al portatile tramite cavetto/connettore ISP di AVR Dragon. Ho visto però che sulla scheda esiste una zona serigrafata "HV PROG"... bisogna utilizzare questi pin per proteggere l'Atmega328P?
Avatar utente
Foto UtenteFedericoDIP
7 4
New entry
New entry
 
Messaggi: 56
Iscritto il: 18 set 2017, 15:03

PrecedenteProssimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti