il bootloader serve solo per caricargli il programma da seriale.
volendo puoi programmare un atmega 128 o 328 anche senza bootloader con arduino, caricando il file .hex generato dalla compilazione dello sketch con un programmatore isp.
Se vuoi usare altri microcontrolori dovresti adattare il core di Arduino in base all'architettura e la disposizione del nuovo hardware
i bootloader sono contenuti nelle cartelle dell'ide di arduino. esiste un modo per uppare i bootloader senza usare un'AVR ma utilizzando solo la seriale o un convertitore usb/sertial TTL compatibile (che poi ti servirà anche per programmare l'arduino)... trovi la guida (anche in italiano) con una rapida ricerca nel forum.
good luck
posso anche capire che un programma compilato possa essere inserito con o senza un bootloader ma in un modo o in un'altro deve essere generato un file .hex e quest'ultimo deve essere compilato appositamente per un determinato microcontrollore. L'Arduino IDE fa questo. Quando si sceglie il ti scheda po di scheda che vogliamo programmare imposta l'ambiente per generare un .hex per il micro che possiede... quindi mappando tutte le porte e i vari registri. Per questa ragione non credo proprio che un compilaro per ATmega328 sia compatibile con un ATmega128 ......
Mi chiedo perchè non esista una scheda Arduino che abbia dei microcontrolori come un ATmega16 o un ATmega32 o magari un ATmega128 .......... eppure sono molto comuni !!!!
che io sappia l'unica cosa che cambia da un modello all'altro è la quantità di memoria interna, espressa infatti nel numero che segue il nome atmega. Infatti se ti scarichi il datasheet ti accorgerai che è lo stesso.
Quindi se il tuo compilato per 328 gira su un "fratello minore" se esso soddisfa i requisiti di spazio.
Non son sicurissimo di questo ;D, però i gli hex per 168 girano sul 328, e quelli per 48 su 88(questo sicuro)
il fatto è, se non ho capito male, che idealmente tu potresti usare l'ide di arduino per programmare qualsiasi microcontrollore atmel.
Il problema di poterlo fare realmente sta solo nel fatto che quando uno sketch viene compilato viene generato un file .hex per ogni specifico uC.
La "traduzione" e "l'adattamento" all'hardware viene fatta dal Core di Arduino.
Se uno è così bravo a programmare che riesce a mettere mano al Core di Arduino può usare l'ide con qualsiasi AVR che gli piaccia.
ciao a tutti
ho configurato un sistema cosi come nel primo schema
per mettere il bl su un chip atmega 32 pu
ma mi da questo errore
avrdude: stk500_getsync(): not in sync: resp=0xf0
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xf0
il reset... Quello schema va bene fino agli atmega 168, per quelli nuovi devi mettere a massa il reset, poi quando clicci upload, dopo qulche secondo compare la scritta che ha compilato, in quell'istante (meglio poco prima che poco dopo) rimetti la pull up sul reset e tutto magicamente funziona... Fai qualche tentativo!
Ah per facilitarmi il compito(anch'io uso quello schema) uso un cavo collegato a gnd e "voltante" dall'altra parte, che all'occorrenza faccio toccare il pin arduino o il filo della resistenza ;D
Ah e infine occhio che il 7805 (giusto il codice? insomma il limitatore di tensione) ha un dropout di 2V.. Quindi alimentalo almeno a 7V, oppure se alimenti via USB escludilo pure.
grazie lesto
parli del limitatore sull'arduino?
si lo alimento con la usb. come lo escludo?
ho impostato tutto come nel primo schema quindi con la resistenza, i condensatori e un quarzo, non ci sono altri limitatori.
da come mi dici il reset dovrebbe essere il pin con la resistenza collegata (appunto di pull up). farò come dici.
Scusami ma cosa intendi fare con un'ATmega32 ? Il Bootloader immagino possa anche funzionare ma ho dei dubbi sulla compatibilità
delle librerie. Quale Board selezioni quando vuoi compilare un sorgente?
per chiarezza scrivo tutto il nome e descrizione da dove lho comprato
ATMEGA328P-PU ATMega328 28-Pin 20MHz 32kb 8-bit
32 è la capienza della memoria e 8 i bit, non credo esista solo 32, lo avevo scritto di fretta.
ci sono 8, 168, 328, forse altri formati ma non li conosco, magari sono quelli smd (miniaturizzati per saldarli alla board) .
la board metto la prima >arduino 2009 e 328
poi faccio >Tools > Burn Bootloader > w/ Arduino as ISP.
stefanosky hai il mio stesso modello, è l'atmega328 versione integrato (c'è anche un paio di versioni SMD).
Allora, se non ha il bootloader, non devi seguire quella guida ma un'altra tradotta da "calamaro", che ti spiega come uppare il boot loader.
Poi puoi seguire questa guida per uppare il codice.
per "escludere" il 7805 basta non mettercelo(anche i 2 condensatori)! il VCC della USB lo colleghi direttamente all'arduino. stessa cosa per il GND.
Comunque quello che habbiano noi non è un'arduino, ma un atmega... l'arduino è la scheda che ci sta sotto, quella che noi ci siamo costruiti da soli. Quindi quando ne perli dì atmega, altrimenti nascono 1000 incomprensioni