Tabella MCU ATMEL - CERCASI CORE per Arduino

Nell'ambito del progetto a cui sto lavorando, ho avuto necessità di tirare fuori una Tabella comparativa di 8 famiglie di microcontrollori ATMEL, con le caratteristiche salienti.
Chiedo a tutti coloro che si sono cimentati fisicamente o anche solo con datasheet di dare una occhiata seria e darmi eventuali indicazioni di errori commessi o suggerimenti di migliorabilità
Vi chiedo anche di indicarmi eventuali sigle di microcontrollori ATMEL che sapete essere totalmente o parzialmente pin-to-pin compatibili con qualcuno di quelli elencati, in modo da poter arricchire la Tabella.
Naturalmente la Tabella è scaricabile, così avrete sempre a portata di mano un utile riepilogo di modelli e caratteristiche .
Ringrazio tutti sin d'ora.

http://www.michelemenniti.it/vhd/Elettronica/Microcontrollori%20ATMEL.jpg
[EDIT: aggiornata al 10/1 ore 22.30]

EDIT 2: Ho variato il titolo in quanto ora il Topic è diventato anche una richiesta di indicazioni per reperire/testare i core per Arduino, relativamente a queste o ad altre mcu compatibili.

Ti parlo per quel che conosco meglio:

AttinyX5: i PWM sono 3+1, nel senso che il micro ha 2 timer per cui le uscite PWM sono 4. Solo che la quarta è l'inverso dell'onda della terza, per cui quelle impostabili singolarmente sono in realtà 3. I canali I/O sono 5+1, perché il pin di reset, se impostato su I/O, ha un'uscita più debole rispetto a quella degli altri pin (tralascio ovviamente la questione dell'impossibilità di riflashare il micro senza erasarlo ad alta tensione, ovviamente).

AttinyX4: stesse considerazioni per il PWM: sono 4. Anche qui stesso discorso per le uscite I/O riguardo al pin di reset.

Atmega644/1284: hanno 3 timer. 2 a 8 bit e 1 a 16 bit.

Gli ATmega 1280 e 2560 non sono inclusi nelle comparativa ? :astonished:

leo72:
Ti parlo per quel che conosco meglio:

AttinyX5: i PWM sono 3+1, nel senso che il micro ha 2 timer per cui le uscite PWM sono 4. Solo che la quarta è l'inverso dell'onda della terza, per cui quelle impostabili singolarmente sono in realtà 3. I canali I/O sono 5+1, perché il pin di reset, se impostato su I/O, ha un'uscita più debole rispetto a quella degli altri pin (tralascio ovviamente la questione dell'impossibilità di riflashare il micro senza erasarlo ad alta tensione, ovviamente).
AttinyX4: stesse considerazioni per il PWM: sono 4. Anche qui stesso discorso per le uscite I/O riguardo al pin di reset.

OK, sui pwm ho letto meglio il datasheet, nel riporta due per timer, mi ha ingannato l'impostazione dell'informazione, mi tocca rivederli tutti, ora che ho capito l'inghippo.
I canali comunque sono 6, che sia più debole che significa? è in grado di erogare meno corrente o ha una tensione fuori standard? In entrambi i casi, come ho consigliato a Devon Miles, anche un banale TR risolve, se invece il problema è un altro vorrei capire

Atmega644/1284: hanno 3 timer. 2 a 8 bit e 1 a 16 bit.

Qui ti chiedo di approfondire. Sul datasheet dice:

Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– One/two 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode

Nei paragrafi 15-16-17 parla di Timer/counter 0, 1, 2 e 3, dov'è l'inghippo?

@ ratto93: io sto lavorando sul mio progetto ed ho considerato solo le famiglie di MCU che ho "studiato" e, soprattutto, che posso usare con il mio strumento; i tipi che mi riferisci purtroppo sono in package TQFP o CBGA, mentre io ho previsto solo i PDIP, mi spiace.

OK, ora è chiara la situazione del pin RESET, quindi è preferibile considerare nella tabbela di avere un pin I/O in meno, sia per tinyx4 che per tinyx5. Comunque mi sembra un problema comune a tutti i mcu, infatti ATMEL conta sempre il reset come pin I/O, a livello datasheet, quindi devo rivedere tutta questa parte.

Invece vorrei chiarimenti certi su 644/1284, a me continua a sembrare che i timer siano 4, approfondimenti?

Invece vorrei chiarimenti certi su 644/1284, a me continua a sembrare che i timer siano 4, approfondimenti?

In effetti ci sono 4 contatori TCNTn, da 0 a 3 per 1284P. Poi però guardando il 644 in un'altro documento io 4 non c'è.

Ci sto capendo poco, vediamo innanzitutto di guardare tutti lo stesso documento.

qui dice che sono 4: m1284P_D1109.pdf, 8059D–AVR–11/09.

Ciao.

Il doc che stavo guardando io per il 644 era questo:

Qui dava 2 timer ad 8 bit ed 1 timer a 16 bit.

Poi mi sono accorto che era per il "644" mentre ora siamo al "644PA", che è questo qua:

Che tra l'altro adesso è comune con quello del "1284P". Ma anche qui io leggo che sono 2x8 e 1x16.
Mike, tu che d.s. leggi? Non è che per caso hai aperto quello del 640/1280/2560, cioè il chip dell'Arduino MEGA che, effettivamente, ha dei timer in più?

Che tra l'altro adesso è comune con quello del "1284P". Ma anche qui io leggo che sono 2x8 e 1x16.

Questo è il più recente che ho io sul disco in locale ed è lo stesso documento che descrivi tu 8272A–AVR–01/10.

01/2010, dovrebbe essere questo che fa fede, poi se ne hai uno datato 2011 me lo devo scaricare.

Volevo fare notare come i pin 16 e 17 sono entrambe RDX1/INT0 e TXD1/INT1, quindi non è possibile usare la seriale contemporaneamente con i vettori di interrupt INT0 e INT1.

Ciao.

MauroTec:

Che tra l'altro adesso è comune con quello del "1284P". Ma anche qui io leggo che sono 2x8 e 1x16.

Questo è il più recente che ho io sul disco in locale ed è lo stesso documento che descrivi tu 8272A–AVR–01/10.

01/2010, dovrebbe essere questo che fa fede, poi se ne hai uno datato 2011 me lo devo scaricare.

Non so la data di questo che ho citato: però l'ho scaricato direttamente dal sito qualche ora fa, per cui è senz'altro il più aggiornato.

Volevo fare notare come i pin 16 e 17 sono entrambe RDX1/INT0 e TXD1/INT1, quindi non è possibile usare la seriale contemporaneamente con i vettori di interrupt INT0 e INT1.

Ciao.

Questo vale per la seconda seriale, difatti i pin sono indicati con RXD1 e TXD1. Ricordati che il 644/1284 ha 2 seriali HW, la prima (USART0) è mappata sui pin 14 e 15.

Non so la data di questo che ho citato: però l'ho scaricato direttamente dal sito qualche ora fa, per cui è senz'altro il più aggiornato.

In ogni pagina in basso a destra c'è scritto il numero di documento e la data.

Esatto è la seconda seriale che ha in comune gli interrupt INT0, INT1, il fatto è che il core crea delle istanze predefinite di tutte le seriali, così facendo non so cosa succede, insomma nel core se ne deve tenere conto.
Mi è saltata alla vista perchè la lib che uso io non è compatibile con 644/1284 e quindi sto provvedendo per introdurre supporto.

Ciao.

Capito.

bel doc, complimenti :slight_smile:

Ragazzi, il nome del doc non lo so più perché io li scarico rinominandoli. I riferimenti del file sono:
8272C–AVR–06/11
e parla di atmega 164-324-644-1284, ora va a vedere dove l'ho trovato, comunque è di giugno 2011; provo a rivedere sul sito ATMEL e vediamo che ne esce.
L'ho trovato, e proprio nella sezione documenti del 1284, sito ATMEL, ed è il più aggiornato. Leo, dove l'hai trovato il tuo, a questo punto?

@ Testato: a quale ti riferisci? mi sa che stiamo piombando nel casino :fearful:

menniti:
Ragazzi, il nome del doc non lo so più perché io li scarico rinominandoli. I riferimenti del file sono:
8272C–AVR–06/11
e parla di atmega 164-324-644-1284, ora va a vedere dove l'ho trovato, comunque è di giugno 2011; provo a rivedere sul sito ATMEL e vediamo che ne esce.
L'ho trovato, e proprio nella sezione documenti del 1284, sito ATMEL, ed è il più aggiornato. Leo, dove l'hai trovato il tuo, a questo punto?

@ Testato: a quale ti riferisci? mi sa che stiamo piombando nel casino :fearful:

Michele, se guardi il link che ho postato io è lo stesso del documento da 500 e più pagine che si scarica dalla pagina che hai linkato tu. Ma se apri quel documento si legge solo 2 timer da 8 bit e 1 da 16 bit. I timer che citi tu li ha il 640/1280/2560, che è il chip della MEGA.

2x8 bit
4x16 bit

Mi sa che hai fatto confusione la prima volta che lo hai cercato XD

Bah, non ne usciamo più se mi tratti da visionario :astonished:
Pagina 1 del documento che in QUELLA PAGINA è chiamato:
ATmega164A/PA/324A/PA/644A/PA/1284/P
(584 pages, revision C, updated 6/11)

Two 8-bit Timer/Counters with Separate Prescalers and Compare Modes
– One/two 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode

Ti ho detto pure che è di giugno 2011, vuoi che ti posto la foto della pagina?
Sulla sinistra se guardi l'indice e legge le sezioni 15-16-17 vedrai i nomi dei 4 Timeri di cui parlo, quindi se non mi trovate un documento che dice altro sono a posto così.
Puoi provare a leggere tu la prima pagina e quelle sezioni per vedere se dallo stesso link si scaricano cose diverse in base alla localizzazione geografica di chi fa il download :smiley: Chissà che cavolo scaricherà Mauro, se si ci mette :fearful:

Lungi da me nel trattarti da visionario =( Scusa.
Ho riscaricato il file, è come dici tu (forse avevo una vecchia versione nella cache del browser, non so dirti). Vedo anch'io le scritte "one/two 16 bit timer". Ed il doc parla di Timer/Counter1 e Timer/Counter3.

Cerco di capire perché, magari il 4° timer è riservato al 1284.

EDIT:
la cosa buffa è che se clicchi su "Parameters" in quella pagina che hai linkato, trovi "Timers: 3" sia per il 644PA che per il 1284.

leo72:
Lungi da me nel trattarti da visionario =( Scusa.

Ma dai Leo, scherzo, aaaah, mi pigli per il c :sweat_smile: ora sì che ti riconosco :wink:

Ho riscaricato il file, è come dici tu (forse avevo una vecchia versione nella cache del browser, non so dirti). Vedo anch'io le scritte "one/two 16 bit timer". Ed il doc parla di Timer/Counter1 e Timer/Counter3.
Cerco di capire perché, magari il 4° timer è riservato al 1284.

OK, aspetto il tuo responso allora, tendo a pensare che se fosse una specifica del 1284 lo avrebbero già scritto lì, però forse quel one/two potrebbe significare ciò che dici, boh!?

la cosa buffa è che se clicchi su "Parameters" in quella pagina che hai linkato, trovi "Timers: 3" sia per il 644PA che per il 1284.

Ecco stavo per scrivere la stessa cosa.

Penso sia ora che Atmel si decida, o sono 3 o 4 punto. Comunque fa fede questo ultimo documento aggiornato 06/11.

Quindi sono 2 timer 8 bit e 2 time a 16 bit.

Io ho il 644A (non 644PA), ora vado a prendere due condensatori da 22pf e vediamo se c'è il quarto timer a 16 bit.

Vado.

Ciao.

Confermo. Il timer3 è presente solo sul 1284P.

Vai a pagina 62, trovi una tabella con i vettori di interrupt. Nelle note riferite al Timer3 trovi quanto ho detto:

32 $003E TIMER3_CAPT**(3)** Timer/Counter3 Capture Event
33 $0040 TIMER3_COMPA**(3)** Timer/Counter3 Compare Match A
34 $0042 TIMER3_COMPB**(3)** Timer/Counter3 Compare Match B
35 $0044 TIMER3_OVF**(3)** Timer/Counter3 Overflow

Notes: 1. When the BOOTRST Fuse is programmed, the device will jump to the Boot Loader address at
reset, see ”Memory Programming” on page 297.
2. When the IVSEL bit in MCUCR is set, Interrupt Vectors will be moved to the start of the Boot
Flash Section. The address of each Interrupt Vector will then be the address in this table
added to the start address of the Boot Flash Section.
3. Applies only to ATmega1284P.

Confermato poi anche a pag. 63 negli esempi in assembly:

Perfetto aggiorno il file e, tra poco, il primo post con data/ora.
Grazie ragazzi!

@ Mauro: sono incuriosito, che tipo di prova fai con i due condensatori? Attivi il PWM o cosa?