Atmega328P, protezione/sprotezione FUSE da cavo USB

Ciao a tutti,
ho bisogno di sapere se è possibile in qualche maniera, applicare tramite semplice connessione USB, la protezione dei FUSE ad un Atmega328P per evitare la copia del codice. Successivamente devo anche sproteggere i FUSE, sempre soltanto con l'uso di un semplice cavo USB.

Attualmente, per la protezione/sprotezione dell'Atmega328P ho utilizzato l'AVRDragon e MicroshipStudio.

Adesso però per motivi di comodità ed evitare ogni volta di smontare l'Atmega328P dallo zoccolo per inserirlo nell'AVRDragon, vorrei sapere se esiste un modo per trasferire lo sketch - applicare la protezione - togliere la protezione, tramite cavo USB collegato ad Arduino.

Grazie

Credo proprio di no.
Puoi costruirti un Fuse Rescue come il mio, inserendo una voce apposita nel programma, e fai la programmazione in un attimo, ma togliendo il microcontrollore dal circuito.

Ciao Datman, allora credo che non posso utilizzare il cavo usb per far ciò...

Il modo c'è ma bisogna entrare in un ottica moderna, da 20 anni circa i dispositivi si aggiornato mediante firmware distribuiti sia via email che via web disponibili a chiunque. Come funzionano? si usa un bootloader "codificato" cioè che usa una chiave a 128bit o 256bit , il file eseguibile hex viene fatto passare attraverso un software che lo cripta con la chiave scelta da te, il file eseguibile può cosi essere distribuito a chiunque, nel mc il bootloader legge il file criptato , lo decripta con la chiave e lo scrive nella flash, il bootloader viene interdetto dalla sovrascrittura accidentale mediante i lockbits, questo per evitare che caricando un firmware non corretto possa danneggiare il BL.
La flash e la EEROM viene tenuta protetta dalla lettura via ISP(ICSP) ma aperta alla scrittura da parte del BL, il BL può anche aggiornare la EEROM interna.
La porta di accesso al BL può essere la rs232, una usb, una SD,una bluetooth o una wifi.

La presente application note di Microchip spiega proprio questo per gli AVR ed in particolare proprio per il ATmega328P ... 00002462A.pdf (1.5 MB).

Guglielmo

... per completezza, da QUI si può scaricare il software relativo alla application note indicata.

Guglielmo

Grazie Guglielmo e Icio per le risposte.
Ho provato a dare un'occhiata al PDF e ai file scaricati ma non so dove metter le mani.
Se è una cosa complicata abbandono... Se per ciò di cui ho bisogno io gli step sono facili.. vi chiedo gentilmente di indicarmi (se non chiedo troppo..) di indicarmi i passaggi per proteggere/sproteggere i FUSE da cavo USB.

Spiego in poche parole cio che possiedo e ciò che ho bisogno di fare:

COSA POSSIEDO
N°1 Arduino UNO R3 (con a bordo Atmega328P)
N°1 sketch da inviare all'Atmega328P
N°1 cavo USB

COSA HO BISOGNO DI FARE
• 1° step: inviare all'Atmega328P lo sketch tramite cavo USB (e questo l'ho sempre fatto con l'IDE di Arduino o inviato in formato HEX tramite MicrochipStudio)
• 2° step: applicare la protezione da scrittura dei valori dei FUSES (EXTENDED, HIGH, LOW) e settando anche i valori dei Lockbit (LOCKBIT)
• 2° step: sproteggere, nel caso in cui ne abbia bisogno, i miei Atmega328P per riprogrammarli come al 1° step

Qualcuno mi sa spiegare in maniera facile i passaggi che dovrei fare?
Vi ringrazio per il supporto tecnico

Occorre utilizzare l'ex Atmel Studio, oggi Microchip ... piuttosto complesso portare la cosa nell'IDE e ... anche con Atmel Studio non è esattamente banale.

È cosa che richiede una certa esperienza ... :roll_eyes:

Guglielmo

Ciao Guglielmo, io prima utilizzavo l'IDE, importavo lo sketch, poi dal menu dell'IDE esportavo lo sketch compilato (HEX) e lo caricavo in MicroChipStudio e da li lo caricavo nell'Atmega328P.

Ho appena scaricato, come da tuo consiglio, l'ex di Atmel Studio.
Puoi darmi una dritta sui passaggi principali per poter programmare e proteggere/sproteggere gli Atmega328P attraverso cavo USB?

Non più di quanto tu possa trovare nell'application note che ti ho indicato sopra ... personalmente NON lo uso con ATmega328 e quindi non l'ho mai provato, per altre MCU si trovano bootloader "codificati" già pronti ...

Mi spiace, come detto richiede parecchia esperienza e tanto tempo per provare ...

Guglielmo

@varistor:

Forse, per te, la cosa più semplice rimane quella suggerita da Datman ... se hai la MCU montata su uno zoccoletto e puoi semplicemente toglierla e metterla, allora un programmatore HV come QUESTO (che trovi in kit con tutto il necessario), è forse la soluzione più semplice.

Guglielmo

Quello è stato uno dei punti di partenza per il mio, che non richiede una scheda Arduino sotto né un computer e può essere programmata e richiamata una configurazione per fare tutto in un attimo.
Certo, ci vuole un minimo di pratica con l'elettronica per realizzarlo...

... quell'altro è un "kit", circuito stampato pronto, componentistica, ecc. ecc. ... sicuramente più pratico :wink:

Guglielmo

Quindi con questo hardware che mi proponete, io potrei programmare, proteggere, sproteggere i miei Atmega328P attraverso un comunissimo cavo USB?

Con l'uso dell'IDE o anche utilizzando Microchip Studio o Atmel Studio?

Quello è un "programmatote HV", va messo su un Arduino UNO R3 dove va caricato un apposito programma che, attraverso il "monitor seriale" (quindi via USB e comandi da tastiera) ti permette di impostare e cancellare i FUSE del ATmega328P.

Occhio perché se non li si è studiati a fondo (i FUSE) si fanno solo guai ... quindi c'è comunque da studiare!

Guglielmo

Ok ragazzi, allora credo che non riuscirò con tutti gli impegni di lavoro, non ho il tempo necessario per leggere e studiare...
Oltretutto ciò di cui avevo bisogno era solo capire se esisteva un metodo per proteggere, sproteggere e programmare un Atmega328P (Arduino Uno REV3) attraverso l'uso di un solo cavo USB senza l'utilizzo di hardware esterni...