Go Down

Topic: Caricare bootloader o sketch info (Read 8485 times) previous topic - next topic

tonid

Ciao a tutti ,come da titolo cercavo di avere delle informazioni in più in merito.
Ciò che vorrei capire è se si può usare un ATmega 328P programmato come programmatore ISP per trasferire ad un chip vergine il bootloader o uno sketch ma senza dover usare più il pc.
In pratica mi chiedevo se ad esempio con la pressione di un pulsante ,senza connessione usb ma solo con un alimentatore e dopo aver programmato opportunamente il chip come programmatore ISP,potessi trasferire il bootloader piuttosto che uno sketch.

PaoloP

#1
Oct 31, 2012, 08:19 pm Last Edit: Nov 01, 2012, 11:46 am by PaoloP Reason: 1
Non credo esista niente di pronto. <-- Mi sono sbagliato
Pero potresti scriverti il programmatore ISP che legge il file hex da una SD oppure caricato in EEPROM (se ci sta) e lo riversa nel chip vergine.

tonid

Ciao PaoloP, avevo anche io in mente una cosa del genere. 
Il file non è grande si parla di 2/3 Kbyte quindi potrebbe essere fattibile anche con una piccola eeprom.....non saprei però da dove partire per quanto riguarda lato sw  :smiley-roll:

PaoloP

Neanche io.
Ti ho solo indicato la via. Non ho detto che so percorrerla.  :smiley-roll-blue:

leo72

Tempo fa qualcosa del genere mi pareva di averla trovata in giro per la rete ma non so più come si chiamava...

tonid

Ho provato e sto continuando a cercare ma senza risultati per il momento..
Ho provato anche a guardare il codice usato per l'arduino ISP ma è per me un po complicato devo guardarlo con mooolta calma cercando di tradurre i vari passaggi per riuscire a capirci qualcosa per poterlo modificare al mio caso.
Così com'è scritto dovrebbe restare in attesa dei dati che arrivano tramite usb per poi trasferirli al micro su cui caricare il bootloader/sketch.
Bisognerebbe individuare quella parte di codice e modificarla  :smiley-roll-blue:
Purtroppo devo farlo per forza quindi mi devo documentare bene .....continuo con le ricerche in attesa di qualcuno che mi possa aiutare :)
Ciao e grazie

leo72

Mi ricordo anche di un bootloader modificato che poteva flashare uno sketch in arrivo dalla seriale oppure presente su una SD. Non so
a che livello di sviluppo sia ma potresti cercarlo. Non ti farebbe ugualmente? Invece di caricare lo sketch con un altro micro, non dovresti far altro che prevedere un porta-SD. Scrivi il firmware sulla SD, la porti sul luogo di intervento, la inserisci nello slot e resetti il micro.

PS:
una domanda: ma gli sketch dovrebbero essere complessi? Se non lo sono, potresti pensare ad usare Bitlash, è un interprete residente su Atmega che può eseguire dei file script scritti in un linguaggio simil-Arduino salvati su una SD esterna. Ci sono le funzioni base, tipo la manipolazione delle porte e quant'altro. Dipende da cosa deve fare il tuo programma.

tonid

Come al solito un grazie per la disponibilità.
Ho la necessità di poter far programmare a chiunque il micro ma oltre al programma devo prima modificare i fuse per un funzionamento a 16MHz quindi pensavo a due circuiti diversi su cui caricare ,da una parte il bootloader con i giusti fuse e dall'altra parte lo sketch che non dovrebbe superare di suo i 3Kbyte.....Entrambi i circuiti dovrebbero tramite connettore icsp scaricare sul micro il tutto. Il discorso della SD esterna non mi dispiace, non ho delle esigenze particolari per l'hardware quindi si potrebbe utilizzare.
Non conosco però il discorso del Bitlash.
Tu credi che qualcosa ne possa venir fuori? 

tonid

Ho cercato in rete in merito al Bitlash ed ho trovato questa guida http://bitlash.net/bitlash-users-guide.pdf la devo guardare con calma ma sembra a prima vista ben spiegata,dovrò approfondire

testato

#9
Nov 01, 2012, 12:01 am Last Edit: Nov 01, 2012, 12:03 am by Testato Reason: 1
tonid tempo fa ho fatto una guida, megliod ire un post abbastanza approfondito, su Optiloader

cercalo, in poche parole il bootloader e' gia' integrato in questo sketch, quindi poi senza pc carichi il bootloader su micro vergini.
L'ho testato sia su 328 che su 8A, tutto ok.
INternamente e' presente ache il bootloader per 168.
Postai una versione ridotta da me al fine di entrare in un 8A, avendone per casa inutilizzati

per la cronaca testai poi gli 8A su arduino uno, e funzionano  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

tonid

mmmm. Ho trovato questo http://baldwisdom.com/bootdrive/
Quote
Mi ricordo anche di un bootloader modificato che poteva flashare uno sketch in arrivo dalla seriale oppure presente su una SD. Non so
a che livello di sviluppo sia ma potresti cercarlo.

Forse ti riferivi ad una cosa del genere ?

@Testato
Ciao e grazie ,provo a cercarlo subito.

leo72

Questo:
https://github.com/WestfW/OptiLoader

L'Optiloader è uno sketch scritto dal creatore dell'Optiboot che serve a caricare il bootloader su un altro microcontrollore. Però dovresti poi integrare la sezione relativa alla flashatura dello sketch

leo72


mmmm. Ho trovato questo http://baldwisdom.com/bootdrive/


Ho guardato il link, non mi ricordavo del BootDrive: forse può fare al caso tuo più dell'Optiloader

tonid

Ho scaricato la cartella zippata contenente i file ,provo a guardarli (anche se stamani mi sembra di aver bevuto un litro di vino causa influenza).....Guardando le connessioni hardware ,il "programmatore" legge i dati dalla sd card e li trasferisce al "target" mediante i pin tx/rx quindi fare una board specifica risulta abbastanza semplice,almeno questo non risulta un problema !!
A quanto ho capito ,all'interno della sd,bisogna caricare il file hex temporaneo generato con il tasto compiling e per visualizzare l'indirizzo basta premere il tasto shift e verrà visualizzato direttamente sull'ide il percorso.....mi viene da pensare quindi che inserendoci un file hex ottenuto da uno sketch dovrebbe essere caricato allo stesso modo rispetto al codice di bootloader...
Se ho detto delle fesserie bastonami pure,ricordati però che sono un pò "ubriaco", ihu .

PaoloP

Nel IDE 1.0.1 il tasto shift non funziona più.
Devi andare nelle preferenze e spuntare "mostra output verboso durante" : compilazione

Go Up