Introduzione
L’evoluzione delle schede Arduino passa attraverso l’utilizzo del processore SAMD21.
In particolare il processore SAMD21 a 32 bit Arm® Cortex®-M0 a bassa potenza all’interno delle schede della famiglia Arduino MKR. La connettività WiFi e Bluetooth® viene eseguita con un modulo di u-blox, il NINA-W10, un chipset a bassa potenza che opera nella gamma di 2,4 GHz. Inoltre, la comunicazione sicura è garantita dal chip crittografico Microchip® ECC508. Oltre a ciò, puoi trovare un caricabatterie e un LED RGB orientabile a bordo.
Il SAMD21 dispone di 14 pin di ingresso ADC con una risoluzione di 12 bit rispetto ai 10 bit dell’ATmega328p.
L’ATSMAD21 è dotato di un controller USB integrato che può essere utilizzato come dispositivo USB o host, in modo da poter controllare un mouse o una tastiera o anche salvare i dati su un’unità flash USB.
Una caratteristica killer è che ha un set di 6 interfacce seriali configurabili che possono essere trasformate in UART, I2C master, I2C slave, SPI master o SPI slave.
Ecco una delle migliori schede Arduino SAMD Amazon Arduino MKR WiFi 1010
Specifiche delle schede Arduino SAMD
Specifiche del microchip SAMD
- CPU e memoria
- CPU ARM® Cortex®-M0+ che funziona fino a 48 MHz
- Moltiplicatore hardware a ciclo singolo
- Micro Trace Buffer (MTB)
- 32/64/128/ 256 KB Flash autoprogrammabile nel sistema
- Memoria SRAM da 4/8/16/ 32 KB
- Sistema
- Ripristino all’accensione (POR) e rilevamento Brown-out (BOD)
- Orologio interno 32,768 kHz (RTC), 48 MHz
- 16 interrupt esterni
- Interfaccia di programmazione, test e debug del cavo seriale a due pin (SWD)
- Bassa potenza
- Modalità di sospensione inattivo e stand-by
- Periferiche SleepWalking
- periferiche
- Controller di accesso diretto alla memoria (DMAC) a 12 canali
- Sistema di eventi a 12 canali
- Contatore in tempo reale (RTC) a 32 bit con funzione orologio/calendario
- Generatore CRC-32
- 1 × USB OTG a piena velocità
- Fino a sei interfacce di comunicazione seriale (SERCOM), ciascuna configurabile per vari protocolli.
- Un’interfaccia Inter-IC Sound (I2S) a due canali
- Un convertitore analogico-digitale (ADC) a 12 bit, 350 ksps con un massimo di 20 canali
- Convertitore digitale-analogico (DAC) a 10 bit, 350 ksps
- Controller tattile periferico (PTC)
- Touchscreen capacitivo a 256 canali e rilevamento di prossimità
- 52 × GPIO programmabili
La serie Arduino MKR utilizza in dettaglio un ATSAMD21G18A nel codice che puoi leggere nella variante del processore utilizzata da Arduino, guarda il diagramma
Specifiche radio NINA-W10
Il modulo WiFi/Bluetooth è controllato tramite l’SPI secondario e include un sistema dual-core con due CPU Harvard Architecture Xtensa LX6 che operano a una frequenza di clock interna massima di 240 MHz (un esp32 ).
- Memoria del processore
- ROM da 448 Kbyte per l’avvio e le funzioni principali
- SRAM da 520 Kbyte per dati e istruzioni
- 16/32 (NINA-W101 e NINA-W102/NINA-W106) Mbit FLASH per la memorizzazione del codice, incluso
- crittografia hardware per proteggere i programmi.
- 1 kbit EFUSE (memoria non cancellabile) per indirizzi MAC, configurazione del modulo, crittografia flash e ID chip
- Wifi
- IEEE 802.11b/g/n
- Potenza in uscita: 15 dBm
- Velocità dati max: 72 Mbit/s
- Bluetooth BR/EDR
- Bluetooth v4.2 + EDR (Numero massimo di slave: 7)
- Supporto banda: 2,4 GHz, 79 canali (40 canali per bassa energia)
- Potenza in uscita/velocità dati: 1/2/3 Mbit/s: 5 dBm (1 Mbps 5 dbm per bassa energia)
Sicurezza e crittografia
La sicurezza è garantita dal microchip ATECC508A
- Coprocessore crittografico con archiviazione sicura delle chiavi basata su hardware
- Esegue algoritmi a chiave pubblica ad alta velocità (PKI)
- ECDSA : Algoritmo di firma digitale a curva ellittica FIPS186-3
- ECDH: Algoritmo Diffie-Hellman della curva ellittica FIPS SP800-56A
- Supporto per curva ellittica standard P256 NIST
- Algoritmo hash SHA-256 con opzione HMAC
- Operazioni host e client
- Lunghezza chiave a 256 bit
- Memoria per un massimo di 16 chiavi
- Due contatori monotonici ad alta resistenza
- Numero di serie unico garantito a 72 bit
- Generatore di numeri casuali (RNG) FIPS interno di alta qualità
- Memoria EEPROM da 10 Kb per chiavi, certificati e dati
- Opzioni multiple per la registrazione dei consumi e le informazioni di scrittura una tantum
- Blocco antintrusione per interruttore antimanomissione esterno o abilitazione chip di accensione.
Pinout
Le schede possono avere funzionalità aggiuntive come LED RGB, gestione della batteria, porte aggiuntive ecc.
Arduino MRK WiFi 1010
MKR WIFI 1010 utilizza un modulo WiFi UBlox basato sul chipset ESP32 di Espressif. La scheda rende il lavoro con il WiFi più semplice e a basso consumo rispetto al suo predecessore. La scheda ha molte funzioni per creare facilmente prototipi di dispositivi collegati tra cui la gestione dell’alimentazione della batteria, un chip di sicurezza, un microcontrollore a 32 bit (Cortex-M0+) e una connessione USB che può alimentare anche la scheda. Il chip di sicurezza fornisce connessioni sicure tramite WiFi tramite crittografia SHA-256.
- Microcontrollore: MCU ARM a bassa potenza SAMD21 Cortex-M0+ 32 bit
- Alimentazione scheda (USB/VIN): 5V
- Batteria supportata(*): Li-Po singola cella, 3,7 V, minimo 700 mAh
- Tensione di funzionamento del circuito: 3,3 V
- Pin I/O digitali: 8
- Pin PWM: 12 (0, 1, 2, 3, 4, 5, 6, 7, 8, 10, A3 – o 18 -, A4 -o 19)
- UART: 1
- SPI: 1
- I2C: 1
- I2S: 1
- Connettività: Wi-Fi
- Pin di ingresso analogico: 7 (ADC 8/10/12 bit)
- Pin di uscita analogica: 1 (DAC 10 bit)
- Interrupt esterni: 8 (0, 1, 4, 5, 6, 7, 8, A1 -o 16-, A2 – o 17)
- Corrente CC per pin I/O: 7 mA
- Memoria Flash: 256 KB
- SRAM: 32 KB
- EEPROM: No
- Velocità di clock: 32,768 kHz (RTC), 48 MHz
- LED_COSTRUITO: 6
- Dispositivo USB full-speed e host integrato: inclusi
Qui le specifiche ed il pinout ad alta risoluzione.
Configurazione dell’IDE Arduino
Di default le schede SAMD non sono installate, bisogna andare avanti e cercare “SAMD” .Tools --> Boards ... --> Boards manager
Ora puoi selezionare la tua scheda SAMD
Primo skecth
Arduino MKR WiFi 1010 ha dei led integrati, uno “normale” sul pin 6.
Qui il classico sketch dei blink.
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN (pin 6) as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Grazie
- Arduino SAMD NINA: piedinatura, specifiche e configurazione Arduino IDE
- Arduino SAMD NINA: WiFiNINA, aggiornamento firmware e led RGB
- Arduino SAMD (NANO 33 e MKR): file system FAT su memoria flash SPI esterna
- i2c Arduino SAMD MKR: interfaccia aggiuntiva SERCOM, rete e scanner di indirizzi
- Arduino MKR SAMD: file system FAT su memoria flash SPI esterna
- Collegamento dell’EByte E70 ai dispositivi Arduino SAMD (Nano 33, MKR…) e un semplice sketch di esempio