Newsgroup: it.hobby.elettronica.digitale
Titolo: Atmel Cortex-M0+ SAM D20: scambio esperienze :-)

Cercasi disperatamente qualcuno con cui scambiare idee, 
opinioni, suggerimenti, esperienze sui Cortex-M0+ SAM 
D della Atmel.
 
La migrazione dai semplici 8-bit AVR ai 32-bit ARM è 
più difficile del previsto. E le librerie della Atmel 
(Atmel Software Framework) sono troppo astratte per
poter farci qualcosa di concreto che vada un po' fuori 
quello per cui sono pensate.
 
Se per gli AVR esiste AVRfreaks che è una comunità molto
attiva, non ho trovato nulla di simile per i SAM.

Per esempio, è possibile che un progetto demo
presente in Atmel Studio 6.2 come 
USART_QUICK_START_CALLBACK occupi 8KB di Flash?
 
Mi sembra eccessivo per una semplicissima 
applicazione.

 Per esempio, � possibile che un progetto demo

se usa la printf si, anche peggio ;-)
 
a prescindere dalla printf e similari, in generale ho notato anch'io, su 
altra piattaforma "circa equivalente, Cortex M3 NXP", un certo aumento 
delle dimensioni del codice rispetto agli 8 bit, non fosse altro perche' 
una singola istruzione e' come minimo di 2 o 4 byte,gli interi ed i 
puntatori sono a 32 bit, per cui i riferimenti assoluti occupano 4 byte 
  e perche' piu' facilmente si tendono ad usare librerie di "sistema" 
per intenderci il driver uart del tuo caso
 
guardati il map-file e vedi un po' cosa si e' portato dentro
 
prova il programma "minimo" e vedi cosa genera:
 
main() {
   while(1)
     ;
}
 

 }
 
Bella domanda che fa nascere un'altra domanda. Che possibilità
ho di programmare un Cortex-M settando i bit dei registri a
manina, senza fare uso di librerie di più alto livello messe
a disposizione del produttore, come le ASF di Atmel?
Potrei provarci, ma ho paura di bloccarmi perché sarebbe troppo
complicato rispetto alle periferiche di un 8 bit.


No è meglio usare le librerie asf...
Ali arm SAM D20-21 sono piuttosto complicati, con periferiche complesse con molti registri scrivibili solo se sono disabilitati e poi ci sono tantissimi registri leggibuili e scrivibili solo previa sincronizzazione...Insomma, le librerie asf ti semplificano moltissimo, ma occorre fare uno sforzo notevole all'inizio per implementare il tutto nei progetti...
In ogni caso questi nuovi ARM hanno delle potenzialità mostruose se confrontati a quanto poco costano.

salve, qualcuno sa come risvegliare il d20 dallo stato di standby? configuro correttamente i registri EIC per un wake_if_sleeping. L'idea è quella di premere un pulsante situato nella board per svegliarlo, solamente che il micro quando va in sleep nella modalità STANDBY continua a dormire. Per me è fondamentale usare questa modalità essendo che consuma solamente 2.8uA
 
static void configure_extint(void)
{
	struct extint_chan_conf eint_chan_conf;
	extint_chan_get_config_defaults(&eint_chan_conf);
 
	eint_chan_conf.gpio_pin           = BUTTON_0_EIC_PIN;
	eint_chan_conf.gpio_pin_mux       = BUTTON_0_EIC_MUX;
	eint_chan_conf.detection_criteria = EXTINT_DETECT_BOTH;
	eint_chan_conf.filter_input_signal = true;
	eint_chan_conf.wake_if_sleeping = true;
	eint_chan_conf.gpio_pin_pull = EXTINT_PULL_UP;
	extint_chan_set_config(BUTTON_0_EIC_LINE, &eint_chan_conf);
}
 
grazie mille a chiunque mi dia una mano.

 In ogni caso questi nuovi ARM hanno delle potenzialit� mostruose se
 > confrontati a quanto poco costano.
 
Su questo sono d'accordo.