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:

void setup()
{
  //pin0 in uscita
  pinMode(0, OUTPUT);
}

void loop()
{
  //ciclo infinito
  while(true)
  {
    //metto il pin0 alto
    digitalWrite(0, HIGH);
    //metto il pin0 basso
    digitalWrite(0, LOW);
  }
}

 

mentre lo schema elettrico del test è il seguente

la frequenza misurata risulta pari a 106 Khz leggermente inferiore a quella ottenuta con la Arduino UNO(125Khz). Ho realizzato una semplice tabella riepilogativa con le varie frequenze delle diverse schede che ho sottoposto al test.

Tipo Scheda Frequenza di commutazione
Arduino UNO  125  Khz
Arduino LEONARDO  106  Khz
Netduino standard  8.4   Khz
Fez Panda II  12.7 Khz