Salve a tutti, sono tentato di provare questa bestiola per un progettino perchè ha tutti i requisiti necessari infatti mi servono 8 pin analogici, 6 pin pwm e diversi pin digitali (un atmega328 non basta e ne ho già un altro nel setup).
L'atmega328 svolge da solo delle funzioni quando gli arriva un input da seriale o meglio ancora usando il protocollo I2C e non posso usarlo per altro; questo deve comunicare con l'atmega1284 (se non posso farlo dovrò usare al suo posto 2 atmega328 perchè non mi bastano i pin nonostante uso già gli shift register e mi ritroverei a dover mettere in comunicazione 3 atmega328). Anche usandoi il mega avrei sempre a che fare con l'altro atmega328, in sostanza ci deve comunque essere.
Vorrei sapere se posso incontrare dei problemi quando andrò a scrivere il programma, in particolar modo mi servirebbe sapere se nel core è stato implementato il protocollo I2C per comunicare con l'atmega328 (male che vada non è un problema, userò la seriale) e se è possibile usare la libreria softwareServo (dovrei poter gestire 6 servomotori senza collegarli sui pin pwm che sono riservati ad altro).
So bene che le richieste sono molte e forse anche incasinate, se c'è qualcuno ferrato che ha fatto delle prove lo invito a rispondere anche parzialmente, tutto fa brodo
Male che vada farò i test quando mi arriveranno.
Grazie a tutti, se mi sono espresso male (probabilissimo) chiarisco volentieri
Prendi un 644PA.
Ti parlo da utente Linux ad utente Linux. Al momento io ho grosse difficoltà a sistemare la toolchain affinché mi compili correttamente grossi sketch (>64kB). Ad esempio, lo sketch di test che astro aveva preparato per provare la toolchain aggiornata per Windows a me non compila. Ed ho paura che con la toolchain di ubuntu 11.04 (hai questa, se non ricordo male) potresti avere dei problemi.
Il 644PA ha gli stessi I/O del 1284 ma memoria dimezzata. Ma non credo che 64 kB ti finiscano velocemente
64 kb bastano e avanzano, mi va benissimo anche l'atmega644PA.
Se hai l'IDE 0022, scaricati il core 644/1284 che ho preparato e che è disponibile sul mio sito (vedi mia firma in calce).
Con l'IDE 1.0 puoi usare il core Sanguino, anche se andrebbe controllato se poi hanno sistemato quei piccoli problemucci che avevo messo a posto nel mio core.
Lo avevo scaricato caldo caldo, appena lo avevi rilasciato...
Ho anche seguito con attenzione il topic ma non ho ancora avuto il piacere di fare delle prove, ora è giunto il momento.
Intanto lo do in pasto all'IDE 0022.
Grazie ancora per averlo condiviso
Ciao Pelletta, dove compri i 644? Ebay o Negozio? Puoi fornirmi qualche link?
Ricordo che ci sono diversi core attualmente in vendita (parlo del formato DIP40):
644
644P
644PV
644PA
Consiglio di prendere i 644PA, da RS li hanno a € 4,44+IVA cad.
Perché i 644PA?
644-> vecchio core, non sono "PicoPower", quindi non hanno tutti gli accorgimenti per risparmiare corrente (utile nel caso di sleep del chip)
644P-> chip con core PicoPower (vedi sopra)
644PV-> modello funzionante con tensione minima di 1,8V ma con clock massimo di 10 MHz
644PA-> core PicoPower, nuova tecnologia costruttiva grazie alla quale il chip può funzionare con tensione minima di 1,8V ma anche con clock massimo di 20 MHz
leo72:
Ricordo che ci sono diversi core attualmente in vendita (parlo del formato DIP40):
644
644P
644PV
644PAConsiglio di prendere i 644PA, da RS li hanno a € 4,44+IVA cad.
http://it.rs-online.com/web/p/microcontrollori/7193972/Perché i 644PA?
644-> vecchio core, non sono "PicoPower", quindi non hanno tutti gli accorgimenti per risparmiare corrente (utile nel caso di sleep del chip)
644P-> chip con core PicoPower (vedi sopra)
644PV-> modello funzionante con tensione minima di 1,8V ma con clock massimo di 10 MHz
644PA-> core PicoPower, nuova tecnologia costruttiva grazie alla quale il chip può funzionare con tensione minima di 1,8V ma anche con clock massimo di 20 MHz
Leo, sei uno spettacolo vivente XD
Leo ho un piccolo problema con il core, non riesco a mettere il bootloader sugli atmaga644pa.
Ecco cosa ho fatto:
ho messo il core nell'ide e sono andato dentro la cartella bootloader per fare il file hex per il 644 visto che non c'era (ho modificato il file Makefile soltanto nei campi PROGRAM = ATmegaBOOT_644P e MCU_TARGET = atmega644p come scritto nel readme poi ho lanciato un make da terminale ed il file hex l'ha generato);
ho impostato come board nell'IDE Arduino1284 W/ATmega644P e ho fatto caricare il bootloader ma esce questo messaggio:
avrdude: ERROR: address 0x10010 out of range at line 66 of /home/pelletta/sketchbook/hardware/arduino1284/bootloaders/atmega644p/ATmegaBOOT_644P.hex
avrdude: write to file '/home/pelletta/sketchbook/hardware/arduino1284/bootloaders/atmega644p/ATmegaBOOT_644P.hex' failed
Ho usato la tecnica ISP, ho anche messo quarzo e condensatori ma questo non credo c'entra, giusto per dire che i collegamenti sono ok.
Un'altra cosa, vedo che la frequenza è impostata a 8MHz e nel mio progetto l'Atmega328 che deve comunicare con il 644 va a 16MHz, potrei avere dei problemi?
Grazie.
posta la board che stai usando.
(devi cambiare anche i fuse)
Pronti:
arduino644p.name=Arduino1284 W/ ATmega644P
arduino644p.upload.protocol=stk500
arduino644p.upload.using=arduino:arduinoisp
arduino644p.upload.maximum_size=63488
arduino644p.upload.speed=38400
arduino644p.bootloader.low_fuses=0xFF
arduino644p.bootloader.high_fuses=0xDC
arduino644p.bootloader.extended_fuses=0xFD
arduino644p.bootloader.path=atmega644p
arduino644p.bootloader.file=ATmegaBOOT_644P.hex
arduino644p.bootloader.unlock_bits=0x3F
arduino644p.bootloader.lock_bits=0x0F
arduino644p.build.mcu=atmega644p
arduino644p.build.f_cpu=16000000L
arduino644p.build.core=arduino1284
I fuse non dovrebbe cambiarli mentre carica il bootloader?
questa board che hai postato sembra corretta (anche il clock è giusto) , ma quanto occupa il bootloader?
Il file hex che mi ha generato è di 5.1K
Ho appena provato il core sanguino, il file hex del bootloader era già incluso e la board è uguale a quella che ho postato sopra ma niente, anche questo mi ha dato lo stesso messaggio di errore.
che ide usi?
guarda qui:
http://code.google.com/p/sanguino/issues/detail?id=21
Prova questo bootloader:
https://github.com/stevemarple/Calunium/tree/master/software/calunium/bootloaders/standard
(Ma ti serve realmente un bootloader?)
Sto usando ancora l'IDE 0222 sotto kubuntu 11.04 32 bit
Comunque del bootloader potrei farne anche a meno, ma sapevo che la procedura servisse anche per cambiare i fuse di default che se non sbaglio sono settati per un clock di 1 MHz
Anche questo funge:
Pelletta:
Sto usando ancora l'IDE 0222 sotto kubuntu 11.04 32 bit
Comunque del bootloader potrei farne anche a meno, ma sapevo che la procedura servisse anche per cambiare i fuse di default che se non sbaglio sono settati per un clock di 1 MHz
Puoi usare avrdude da terminale senza nessun problema, con Linux oltretutto sei molto avvantaggiato. Io li ho flashati tutti da terminale senza problemi.
Missione compiuta, sono riuscito a caricare il bootloader (quello nel link di leo).
Comunque sia riproverò anche a caricare quello che sta nel core sempre di Leo almeno vedo se è giusto. Dico questo perchè per caricare con successo il bootloader ho dovuto cambiare la scheda arduino che funge da programmatore perchè mi ha fatto delle stranezze: dopo aver sostituito il file hex si inchiodava di continuo dicendomi "Programmer is not responding". Ho cambiato l'arduino e tutto è filato liscio.
Ora riprovo anche il bootloader che ho generato dal core di Leo.
Grazie a tutti, se riesco a caricare anche l'altro bootloader lo faccio sapere.