Arduino M0 Pro: presentazione e specifiche tecniche

Con la nuova scheda Arduino M0 Pro, i makers potranno dare vita alle idee più fantasiose per creare nuovi dispositivi IoT, innovative tecnologie wearable, sistemi di automazione, robotica avanzata e molto altro ancora. Questa board rappresenta, infatti, l'estensione semplice ma potente (a 32-bit) della piattaforma Arduino UNO. La scheda è alimentata dal microcontrollore Atmel SAMD21, con un core ARM Cortex® M0+ a 32 bit. Con l'arrivo della M0 Pro, la famiglia Arduino si amplia con un nuovo strumento in grado di fornire maggiori prestazioni rispetto ai precedenti modelli. La potenza del core Atmel fornisce a questa scheda una maggiore flessibilità ed aumenta la portata dei progetti da realizzare; inoltre, rende la M0 Pro lo strumento didattico ideale per imparare lo sviluppo di applicazioni a 32 bit. Il Debugger Atmel (EDBG) integrato fornisce una completa interfaccia di debug, senza bisogno di hardware aggiuntivo, rendendo molto più semplice e professionale il debug su Arduino. L'EDBG supporta inoltre una virtual COM port per la programmazione del dispositivo e per i tradizionali utilizzi della funzionalità Arduino bootloader.

Presentazione:

Microcontrollore - ATSAMD21G18, 48pin LQFP

Tensione di funzionamento - 3.3V

Pin Digitali I/O - 14, con 12 PWM e UART

Pin di ingresso analogico - 6, canali ADC 12 bit

Pin di output analogico - 1, DAC 10 bit

Corrente DC per Pin I/O - 7 mA

Memoria Flash - 256 KB

SRAM - 32 KB

EEPROM - fino a 16KB

Frequenza di clock - 48 MHz

008_M0pro_flat1008_M0pro_flat2

Alimentazione

L'Arduino M0 Pro può essere alimentato attraverso la connessione micro USB o con un alimentatore esterno. La fonte di alimentazione viene selezionata automaticamente.
L'alimentazione esterna (non USB) può essere fornita da un alimentatore AC-DC o da una batteria. L'adattatore può essere collegato alla scheda inserendo lo spinotto nel jack di alimentazione della scheda stessa. I fili elettrici della batteria possono essere inseriti nei pin GND e Vin del connettore di alimentazione.

Power input Requisiti di tensione Requisiti di corrente Tipo di connettore
Alimentazione esterna 5V ± 2% (± 100mV) per il funzionamento host USB. Da 4.3V a 5.5V, se non è richiesto il funzionamento host USB La corrente minima consigliata è di 1A per essere in grado di fornire abbastanza corrente ai dispositivi USB collegati e alla board stessa. La massima raccomandata è di 2A a causa della protezione di input PWR
Debugger integrato USB da 4.4V a 5.25V (secondo spec. USB) 500mA (secondo spec. USB) DEBUG USB
Target USB da 4.4V a 5.25V (secondo spec. USB) 500mA (secondo spec. USB) Target USB

Il kit rileverà automaticamente quali fonti di alimentazione sono disponibili e sceglierà quale utilizzare secondo le seguenti priorità:
1. Alimentazione esterna
2. Embedded debugger USB
3. Target USB
L'alimentazione esterna è necessaria quando i 500mA tramite il connettore USB non sono sufficienti per alimentare un dispositivo USB collegato in un'applicazione USB host.

I pin di alimentazione sono i seguenti:
- VIN: la tensione di ingresso alla scheda Arduino quando sta utilizzando una sorgente di alimentazione esterna (rispetto ai 5 volt dal collegamento USB o un'altra fonte di alimentazione regolata). È possibile fornire tensione attraverso questo pin, o, se l'alimentazione avviene tramite il jack, accedervi attraverso questo pin.
- 5V: l'alimentatore regolato utilizzato per caricare il microcontrollore e altri componenti sulla scheda. Questo può venire sia da VIN attraverso un regolatore sulla board, o essere fornita da USB o da un altro 5V regolato.
- 3V3: tensione di 3.3 volt generati dal regolatore sulla scheda. La massima corrente di assorbimento è di 50 mA.
- GND: GND
- IOREF: la tensione alla quale i pin I/O della scheda sono in funzione (ad esempio VCC per la scheda). Questa è 3.3V sulla M0 Pro.

Memoria

L'ATSAMD21G18 ha 256 KB (con 4 KB usati per il bootloader). Il bootloader è programmato di fabbrica da Atmel, viene memorizzato in una ROM dedicata ed è protetto con il fusibile NVM.
Sono inoltre disponibili 32 KB di SRAM e fino a 16 KB in emulazione di EEPROM (che può essere letta e scritta con la libreria EEPROM).

Input ed Output

Ciascuno dei 20 pin I/O digitali dello M0 Pro può essere utilizzato come ingresso o uscita, utilizzando pinMode (), digitalWrite () e le funzioni digitalRead (). Queste operano a 3,3 volt con 7mA di corrente DC massima per pin I/O e con una resistenza di pull-up interna (scollegata di default) di 20-50 kOhms. Inoltre, alcuni pin hanno funzioni specializzate:

- Serial: 0 (RX) e 1 (TX). Utilizzati per ricevere (RX) e trasmettere (TX) i dati seriali TTL utilizzando la capacità dell'hardware ATSAMD21G18. Si noti che sullo M0 Pro, la Serial Class si riferisce alla comunicazione USB (CDC); per i TTL serial sui pin 0 e 1, è necessario utilizzare la Serial1 class.

- TWI: 2 (SDA) e 3 (SCL). Supporta la comunicazione TWI utilizzando la libreria Wire.

- PWM: i pin 2-13 forniscono un output PWM a 8-bit con la funzione analogWrite (). La risoluzione del PWM può essere cambiata con la funzione analogWriteResolution ().
Nota 1: I pin 4 e 10 non possono essere utilizzati contemporaneamente come PWM.
Nota 2: I pin 5 e 12 non possono essere utilizzati contemporaneamente come PWM.

- SPI: sull'header ICSP. Questi pin supportano la comunicazione SPI utilizzando la libreria SPI. Si noti che i pin SPI non sono collegati ai pin digitali di I/O come sulla UNO, ma sono disponibili solo sul connettore ICSP. Questo significa che se si dispone di uno shield che utilizza SPI, ma non si dispone di un connettore a 6 pin ICSP che si collega ai 6 pin nell'header della M0 Pro ICSP, lo shield non funzionerà.

- LED: 13. Vi è un LED incorporato collegato al pin digitale 13. Quando il pin ha un valore alto, il LED è acceso, quando il pin è basso, è spento.

- Ingressi analogici: A0-A5. La M0 Pro dispone di 6 ingressi analogici, etichettati A0-A5. I pin A0-A5 appaiono nelle stesse posizioni della UNO; ogni ingresso analogico fornisce 12 bit di risoluzione (cioè 4096 valori differenti). Per default la misura degli ingressi analogici riferita a GND è di 3,3 volt, anche se è possibile cambiare l'estremità superiore utilizzando il pin AREF e la funzione analogReference ().

- DAC: il pin A0 fornisce vere uscite analogiche con 10 bit di risoluzione (1023 livelli) con la funzione analogWrite (). Questo pin può essere usato per creare un output audio utilizzando la libreria audio.

Ci sono infine altri due pin sulla scheda:
AREF: tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference ().
Reset: portare questa linea LOW per resettare il microcontrollore. Questo è in genere utilizzato per aggiungere un pulsante di reset, quando gli shield che vengono utilizzati bloccano quello già presente sulla scheda.

Arduino-M0-Pro-V4-SCH1
Arduino-M0-Pro-V4-SCH2
Arduino-M0-Pro-V4-SCH3

Comunicazione

L'Arduino M0 Pro possiede una serie di periferiche per la comunicazione con il computer, con un altro Arduino o altri microcontrollori e con diversi dispositivi come telefoni, tablet, macchine fotografiche e così via. Il SAMD21 possiede una UART hardware e tre USARTs hardware per la comunicazione seriale TTL (3.3V).

La Programming Port è collegata all'EDBG, che fornisce una virtual COM port al software su un computer collegato (per riconoscere il dispositivo, le macchine Windows avranno bisogno di un file .inf, ma le macchine OSX e Linux riconosceranno la scheda automaticamente come COM port). L'EDBG è anche collegato all'UART hardware del SAMD21. La seriale sui pin RX0 e TX0 fornisce una comunicazione USB per la programmazione della scheda attraverso il microcontrollore ATSAMD21G18. Il software Arduino include un Serial Monitor che permette l'invio di dati testuali semplici da e per la board. I LED RX e TX sulla scheda lampeggeranno quando i dati vengono trasmessi attraverso il chip ATSAMD21G18 e l'USB (ma non per la comunicazione seriale sui pin 0 e 1).

La Native Port è collegata al SAMD21. Permette la comunicazione seriale (CDC) tramite USB. Ciò fornisce un collegamento seriale al Serial Monitor o altre applicazioni sul computer. Consente inoltre alla board di emulare un mouse o una tastiera USB a un computer collegato.

La Native USB Port può anche fungere da host USB per le periferiche collegate, come mouse, tastiere e smartphone.

Il SAMD21 supporta anche la comunicazione TWI e SPI. Il software Arduino include una libreria Wire per semplificare l'uso del bus TWI. Per la comunicazione SPI, è necessario utilizzare la libreria SPI.

Programmazione

L'Arduino M0 Pro può essere programmato con il software di Arduino (download).

Se si utilizza Linux-OS è necessario seguire la guida di Arduino IDE su Linux-OS.

Il caricamento degli sketches sul SAMD21 è diverso da come funziona con i microcontrollori AVR che si trovano in altre schede Arduino: la memoria flash deve essere cancellata prima che vengano riprogrammati. L'upload è gestito dalla ROM sul SAMD21, che viene eseguito solo quando la memoria flash del chip è vuota.

Entrambe le porte USB possono essere utilizzate per programmare la scheda, anche se si raccomanda l'uso della Programming Port, a causa del modo in cui viene gestita la cancellazione del chip:

Programming Port: per utilizzare questa porta, selezionare "Arduino M0 Pro (Programming Port)" come board nell'Arduino IDE. Collegare la porta di programmazione della M0 Pro (quella più vicino al jack DC) al computer. La porta di programmazione utilizza l'EDBG come USB-to-serial collegato al primo UART del SAMD21 (RX0 e TX0). L'EDBG ha due pin collegati ai pin di ripristino e di cancellazione del SAMD21. L'apertura e la chiusura della Programming Port connessa a 1200bps innesca una procedura di "hard erase" del chip SAMD21, attivando l'erase e il reset del pin sulla SAMD21 prima di comunicare con l'UART. Questa è la porta consigliata per la programmazione della M0 Pro. E' più affidabile rispetto al "soft erase" che si verifica sulla Native Port, e dovrebbe funzionare anche se l'MCU principale è andato in crash.

Native Port: per utilizzare questa porta, selezionare "Arduino M0 Pro (Native USB Port)" come board nell'Arduino IDE. La Native USB Port è collegata direttamente al SAMD21. Collegare la Native USB Port dello M0 Pro (quella più vicino al pulsante di reset) al computer. L'apertura e la chiusura della Native Port a 1200bps attiva una procedura di "soft erase": la memoria flash viene cancellata e la scheda viene riavviata con il bootloader. Se l'MCU è andato in crash per qualche motivo, è probabile che la procedura di soft erase non funzionerà come invece avviene normalmente. L'apertura e la chiusura della porta nativa ad una diversa baudrate non resetterà il SAMD21.

Protezione di sovracorrente USB

La M0 Pro ha un polyfuse ripristinabile che protegge le porte USB del computer da corti e sovracorrenti. Sebbene la maggior parte dei computer forniscono loro la protezione internamente, il fusibile fornisce un ulteriore livello di protezione. Se vengono applicati alla porta USB più di 500 mA, il fusibile interromperà automaticamente la connessione fino a quando il corto o il sovraccarico non verrà rimosso.

Caratteristiche fisiche

La lunghezza e la larghezza massima del PCB M0 Pro sono rispettivamente 6.9 e 5.3 centimetri, con il connettore USB e l'alimentatore jack esclusi. Sono presenti quattro fori per le viti per consentire alla board di essere collegata a una superficie o un case. Si noti che la distanza tra i pin digitali 7 e 8 è di 160 mil (0.16"), non un multiplo della classica spaziatura 100 mil degli altri pin.

File sorgenti del progetto hardware

Reference Design Arduino M0 Pro

Scarica subito una copia gratis

21 Commenti

  1. Benj 18 Maggio 2015
    • Emanuele Bonanni Emanuele 18 Maggio 2015
  2. kingo 18 Maggio 2015
    • Emanuele Bonanni Emanuele 18 Maggio 2015
  3. Mandrea 18 Maggio 2015
    • FedeIng FedeIng 18 Maggio 2015
  4. Emanuele Bonanni Emanuele 18 Maggio 2015
  5. Francesco Francesco 18 Maggio 2015
    • Emanuele Bonanni Emanuele 18 Maggio 2015
      • gimiki 18 Maggio 2015
  6. PlatinumTest2 18 Maggio 2015
  7. StefanoDS StefanoDS 19 Maggio 2015
    • Emanuele Bonanni Emanuele 19 Maggio 2015
  8. StefanoDS StefanoDS 19 Maggio 2015
    • Emanuele Bonanni Emanuele 20 Maggio 2015
  9. PlatinumTest2 19 Maggio 2015
  10. Ernesto Sorrentino 19 Maggio 2015
  11. Francesco Francesco 19 Maggio 2015
  12. FedeIng FedeIng 19 Maggio 2015
  13. angegardien angegardien 20 Maggio 2015

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend