scusate l'ennesimo post sull'argomento, ma avrei bisogno di qualche chiarimento:
programmando i fuse per utilizzare il RESET come I/O perdo la possibilità di programmare il chip via ISP e questo è chiaro.
quindi qual'è la procedura per utilizzare questa funzione?
se si potesse fare chiarezza su questo punto sarebbe utile.
la maggior parte dei topic che ho letto si concludono con "riprogrammando il reset non puoi più caricare gli sketch"
Esatto ricdata, una volta che hai programmato i fuse per usare il pin di RESET come normale pin, non puoi più programmare il chip via ISP ... dato che non è in grado di ricevere il segnale di RESET che gli servirebbe.
Unico sistema, ed unico pin dei processori Atmel, che regge i 12v è proprio il RESET e, tramite un programmatore HIGH-VOLTAGE (12v) si possono resettare i FUSE
Ti consiglio QUESTO shield che è adatto a vari processori, funziona molto bene, ha un bel software a corredo e ti potrà essere sempre utile
grazie Guglielmo,
con il programmatore HV si possono anche caricare gli sketch?
quello che non mi è chiaro è che se prima programmo il chip, per poi disabilitare il reset dovrei ricaricare il bootloader, ma a questo punto perderei lo sketch caricato in precedenza. è giusto quello che dico? quindi come fare?
Negli ATtiny NON c'è un bootloader ... quella funzione che vedi sull'IDE e che ti dice che carica il bootloader sul Tiny ... è finta, in realtà non carica nulla, ma programma solo i FUSE
Ora, una volta ripristinati i FUSE con l'HV, puoi sia riprogrammarli come vuoi tu (... quello che tu chiami caricare il bootloader), che caricarci via ISP qualsiasi programma.
Non sono solo i 2K di bootloader, però.
C'è anche un'altra questione. I Tiny non riservano (leggi: "proteggono") un'area di memoria per il bootloader, come risolvono questa cosa ad Adafruit?
Ok, ho capito cos'hanno fatto. Hanno adattato il firmware dell'USBtinyISP in modo da trasformarlo in bootloader.
In questo modo hanno potuto riusare anche i codici VID/PID per l'USB che Adafruit ha ed in più l'USBtinyISP è già supportato da avrdude per cui non hanno dovuto modificare altro.
Il bootloader si comporta come un bootloader normale, mettendosi in ascolto sulla seriale ed intercettando i dati per scriverli sulla flash. Nel caso che non arrivi nulla, fa partire lo sketch già in memoria con un jump. Immagino però che a differenza del bootloader dell'Atmega328 che sta nella parte alta della memoria, questo stia invece nella parte bassa perché non avendo il Tiny il supporto all'area per il bootloader non supporta tramite fuse il salto ad un indirizzo diverso da $0000. A meno che non usino la vector jump table con qualche int. Non ho studiato bene come funziona, però: ipotizzo e basta.
Resta il fatto che togliere 2K ad un chip con 8K è un controsenso