Speed Test

MKR1000 gpio speed test

Misurare frequenza di commutazione di una linea gpio della MKR1000

La MKR1000 è una scheda molto compatta, dal prezzo contenuto, che permette di realizzare interessanti progetti IoT. Questa scheda è basata sul SoC ATMEL ATSAMW25 (famiglia di dispositivi ATMEL Wireless) ed è l’insieme di questi moduli:

  • MCU SAMD21 Cortex-M0+ 32bit operante alla frequenza di 48MHz
  • Modulo Wi-Fi WINC1500 a basso consumo (2.4GHz IEEE® 802.11 b/g/n)
  • Crittografia per comunicazioni sicure basate sul chip ECC508
  • Antenna implementata sul PCB

La scheda possiede anche un caricabatterie per batterie Li-Po rendendola quindi adoperabile in ambienti dove non è presente una fonte di energia costante.
In questo articolo andremmo a misurare la velocità di commutazione di un pin digitale eseguendo lo stesso codice che ho usato per gli altri gpio speed test.

Questo test è puramente indicativo, è un metodo molto semplice che eseguo per fare un piccolo paragone tra le schede in mio possesso.

La figura seguente mostra lo schema elettrico che ho utilizzato:

MKR1000 Gpio SPeed Test

Continua a leggere

Flyport Ethernet Speed Test

Risultati velocità di commutazione pin digitale

Anche per il modulo Flyporyt Ethernet ho realizzato lo speed test come quello per le schede Netduino, Arduino e GHI. Il test consiste nella commutazione continua di un singolo pin digitale, misurando con un oscilloscopio, la frequenza risultante.

Il circuito elettrico dei collegamenti è il seguente:

Circuito Speed Test Flyport

Continua a leggere

Arduino Leonardo speed test

Test di commutazione su pin digitale

Ho acquistato di recente la nuova scheda Arduino Leonardo basata sul chip Atmel Mega32U4. Questo microcontrollore possiede un modulo usb integrato che sostituisce il modulo di conversione usb-ttl presente nella Arduino UNO, rendendo la scheda molto ‘snella’ visto l’esiguo numero di componenti che ospita.

La prima prova che voglio effettuare è il classico speed test che ho realizzato anche per le altre schede. Questa verifica consiste nel commutare un pin digitale in modo ripetitivo, utilizzando solamente le istruzioni che permettono di porre il pin digitale a livello alto e a livello basso e, avvalendomi di un oscilloscopio ,misurare la frequenza di commutazione.

Lo sketch caricato sulla Leonardo è il seguente:

Continua a leggere

Arduino Uno gpio Speed Test

Gpio Speed Test velocità di commutazione di un pin digitale

Per eseguire una comparazione con Netduino ho eseguito lo stesso esperimento (Netduino speed test) anche per Arduino Uno. Il gpio speed test è molto semplice, basta definire un pin in uscita ed eseguire in modo ciclico un’istruzione che lo ponga a livello logico alto e poi basso.
Questa commutazione continua genera un segnale ad onda quadra misurabile con un oscilloscopio.

Arduino uno gpio speed test

Il codice seguente mostra come effettuare questo test:

 

Arduino Speed test

La frequenza ottenuta sul pin 0 è di ben 125 KHz decisamente superiore a quella ottenuta dal Netduino (8.4KHz) nonostante i suoi 48 Mhz di clock contro i 16Mhz dell’Arduino.

L’istruzione digitalWrite() impiega circa 4uS contro i 53uS della Write() eseguita dal Netduino.

Netduino impiega delle risorse per far girare il .Net micro framework ecco perché nello speed test contro Arduino esce perdente.
Arduino nonostante i sui 16Mhz di clock è capace di essere più veloce, perché il suo codice, accede direttamente alle funzioni a basso livello del microprocessore ATMEGA328.

Netduino GPIO Speed Test

Testare la velocità di commutazione di un pin digitale

Una delle domande che mi pongo quando lavoro con un dispositivo programmabile è quanto questo sia veloce. Non so se esistano procedure specifiche che indichino la potenza di calcolo effettiva, indicativamente il test che eseguo io è quello di commutare di continuo un’uscita digitale e verificare con un oscilloscopio il tempo della durata di una istruzione.
Il codice è il seguente:

 

Questo codice generare un onda quadra con una frequenza di circa 8.4 KHz; Il segnale positivo generato dalla Write(true) dura circa 53us mentre il segnale negativo dovuto alla funzione Write(false)dura circa 64us. Verosimilmente il segnale negativo dura qualche microsecondo in più poiché il processore deve eseguire anche l’istruzione While(true). Quindi l’istruzione While viene eseguita in circa 11us (64us – 53us)

Netduino GPIO

Segnale PWM 50 per cento Continua a leggere

Offerte del giorno Amazon
Preferiti
Rimani aggiornato

Sondaggi
Sorry, there are no polls available at the moment.
Seguimi su Twitter