Ho iniziato a scrivere una libreria che permette di utilizzare le periferiche integrate nel microcontrollore Atmel SAM3X8E dell'Arduino DUE che non sono ancora supportate dal core dell'IDE di Arduino.
Al momento la libreria, chiamata advancedFunctions, supporta l'orologio in tempo reale (Real Time Clock, RTC), che fornisce un orologio ed un datario nonché un allarme, ed il generatore di veri numeri casuali (True Random Number Generator, TRNG) che ha superato anche i test del NIST. Il supporto ad altro hardware verrà aggiunto in seguito.
Utilizzo:
Per usare la libreria, scaricate il pacchetto che trovate in fondo all'articolo e scompattatelo. Una volta estratta la cartella advancedFunctions, dovete copiarla all'interno della cartella /libraries che le ultimissime versioni dell’IDE 1.5.x di Arduino creano all'interno della cartella degli sketch. Questa è cambiata rispetto a prima: adesso si chiama /Arduino su tutti i sistemi (su Linux prima era /sektchbook) e la sua posizione la potete conoscere cliccando sulla voce di menu dell'IDE “File/Preferenze”. Una volta fatto questo, siete pronti ad usare le funzionalità della libreria semplicemente includendola nel vostro sketch con la seguente istruzione:
#include "advancedFunctions.h"
Come detto, la libreria non supporta tutto l’hardware integrato nel microcontrollore che non è supportato dal core di Arduino. Essendo allo stato iniziale di sviluppo, al momento supporta solo le seguenti periferiche (altre funzionalità saranno aggiunte in seguito):
modulo RTC (Real Time Clock)
L’RTC interno al SAM3X8E è un orologio in tempo reale completo di orario e datario nonché di allarme per mese/giorno/ore/minuti/secondi (ancora da implementare). Le funzionalità sono accessibili mediante l’oggetto rtc. Le spiegazioni su come usarle sono contenute nel file RTC_MODULE.txt.
modulo TRNG (True Random Number Generator)
Il TRNG integrato è molto robusto ed ha passato i test NIST Special Publication 800-22 e Diehard. Esso è capace di generare 32 bit di entropia con elevata casualità (da qui il nome di “vero” generatore) ogni 84 cicli macchina. Le spiegazioni su come usare il generatore sono contenute nel file TRNG_MODULE.txt.
modulo WDT (WatchDog Timer)
Il WatchDog Timer è un contatore che può resettare il microcontrollore se il codice si infila in qualche vicolo cieco logico. L’utente può selezionare l’intervallo di reset fra 1 e 16000 ms. Le spiegazioni su come usare il WatchDog sono contenute nel file WDT_MODULE.TXT.
PS.: non ancora del tutto testato
Licenza e garanzia:
La libreria e gli esempi allegati sono rilasciati sotto licenza GNU General Public License 3.0. Il software è fornito così com’è, senza nessuna garanzia di funzionamento né di responsibilità per il suo utilizzo. Maggiori dettagli sono contenuti nel file README_FIRST.txt
Download:
l'ultima versione della libreria è sempre scaricabile da questa pagina