Newsgroup: it.hobby.elettronica.digitale
Titolo: Aggiornare firmware PIC diretto al CS

Ciao a tutti ! � possibile aggiornare il firmware di un pic "16F876" 
direttamente nel CS in cui lavora ? senza doverlo togliere dallo zoccolo e 
usare un programmatore esterno.
Naturalmente il CS in questione ha gi� una porta seriale per il controllo di 
alcune funzioni.
Grazie a tutti fin da ora 

"Geppo" <x...@xxx.xxx> ha scritto nel messaggio 
news:4b0492f9$0$34599$4faf...@reader1.news.tin.it...

La via pi� breve � quella di implementare un bootloader, ovvero un programma 
residente, che si occupa della riprogrammazione del dispositivo tramite la 
ricezione di comandi sulla linea seriale.
Questo comporta per� una ricompilazione del fw originale per lasciare spazio 
al loader in flash, inoltre occorre verificare se negli 8k del dispositivo 
c'� spazio sufficiente per farci stare anche il loader.
La soluzione che non richiede di mettere mano al fw � la programmazione in 
circuit.
Devi per� verificare di avere a disposizione in modalit� esclusiva (anche 
per il solo tempo necessario alla programmazione) i pin PCD PGD e poter 
comandare MCLR verificando che quando questo si porta alla tensione di 
programmazione (circa 12V) non si creino danni al rimanente circuito. 

 programmazione (circa 12V) non si creino danni al rimanente circuito.
Approfitto del thread per chiedere spiegazioni su un aspetto dei bootloader 
"commerciali"
giorni fa ho dovuto ripristinare il mio iPhone causa interruzione 
dell'aggiornamento
del firmware
in ogni caso, leggendo fra i vari forum, ho imparato che � possibile avviare 
l'iphone in due modalit� distinte
quando si parla di recupero....
la recovery mode e la DFU mode (Direct Firmware Upgrade)
Posso supporre dai nomi il loro funzionamento generico , mi chiedo per� il 
perch� di questa scelta...
(Ho notato che in entrambe le modalit� la apple ha sviluppato un driver 
windows per supportarlo...immagino sia
per riuscire a sfruttare maggiore banda disponibile sulla usb...)
Un altra curiosit� era la difficolt� nell'implementare soluzioni di questo 
tipo anche nei nostri
piccoli "progetti" amatoriali...
Grazie ancora una volta per il vostro tempo
Contrario
 

 dispositivo c'� spazio sufficiente per farci stare anche il loader.
Uhm... non penso sia fattibile, perch� il 16Fxxx non pu� programmarsi la 
sua memoria. Quelle cose le puoi fare con la serie 18...
Ciao
Pasu

 ha scritto nel messaggio 
news:he3lqm$s2e$2...@aioe.org...

Ho decine di applicazioni che girano con bootloader con 16F876, 16F876A e 
fratelli....
Quindi la fattabilit� c'�.
Altra cosa � la convenienza: oggi ci sono 18F compatibili con 16F che 
costano meno ed hanno maggiori potenzialit�.
Se per� il fw � gi� scritto e va bene...non vedo il motvo di cambiare.

 Se per� il fw � gi� scritto e va bene...non vedo il motvo di cambiare.
Neanch'io.
P.

 sanno, oppure c'ï¿œ qualche altro barbatrucco che ignoro.
ci sono pic16f con il self-write della flash, tutto qui;
sono quindi identici alle sorelle 18f da questo punto di vista...
-ice-

 ha scritto nel messaggio 
news:0FDNm.96666$1s6....@twister2.libero.it...


 Qualcuno sa darmi qualche altra dritta ;-)
Devi inserire le opzioni di compilazione nel tuo programma in modo da 
'creare' spazio per il bootloader.
In genere i bootloader ridiedono o nella parte bassa oppure nella parte alta 
della memoria di programma.
Per il pic in oggetto sarebbe preferibile adottare un loader residente nella 
parte alta, in modo da lasciare libere le aree di gestione degli interrupt.
Sicuramente sul sito dal quale hai scaricato il loader ci sono anche 
indicate le modifiche da apportare al tuo fw per renderlo compatibile.
Puoi anche dare uno sguardo qui 
http://www.microchipc.com
 dove c'ï¿œ un buon 
loader con relative istruzioni. 

 ha scritto nel 
messaggio news:he84vb$d1e$1...@tdi.cu.mi.it...


 MAIN() ?
Non conosco il mikrobasic...
Dovrebbe comunque avere una istruzione ORG che indica al compilatore le aree 
di memoria da utilizzare per non sovrascrivere il loader.
Sicuramente fra gli esempi installati con il tuo linguaggio c'ï¿œ almeno un 
esempio di utilizzo del bootloader.
Sono quasi certo anche che ci sia giï¿œ anche il bottloader..