Arduino · 9 maggio 2013 3

Nuova libreria advancedFunctions per Arduino DUE

Arduino DUE R3

Arduino DUE

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.

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 cartella è cambiata rispetto a prima: adesso si chiama /Arduino 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.

Importante! Il lettore Embed mi ha segnalato che di default il chip SAM3X8E non utilizza il quarzo esterno da 32 kHz ma un oscillatore interno impreciso. Ho perciò inserito un fix nel file myRtc.cpp che attiva il quarzo esterno. Nel caso in cui la vostra scheda DUE non ne sia provvista (è capitato su alcune schede del primo lotto di produzione) oppure nel caso usiate il chip in standalone senza questo quarzo, il modulo RTC si pianta perché non ha una fonte di clock. Dovete perciò modificare il file seguendo quanto riportato nel file RTC_MODULE.txt su citato.

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.

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.
IMPORTANTE: per usare questo modulo è necessario modificare un file del core originale (leggi il file /doc/WDT_MODULE.txt).

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 e nei file di documentazione contenuti nella cartella /doc.

AdvancedFunctions
AdvancedFunctions
advancedFunctions-0.5.0.zip
Version: 0.5.0
29.0 KiB
3789 Downloads
Dettagli...