Esperimenti con logiche programmabili
Tutorial Arduino

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.

Il codice seguente mostra come effettuare questo test:

void setup()
{
  pinMode(0, OUTPUT); //Definisce il Pin0 come Uscita
}

void loop()
{
  while(true)
  {
    digitalWrite(0, HIGH); //Commuta l'uscita alta
    digitalWrite(0, LOW); //Commuta l'uscita bassa
  }
}

 

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.

Related posts

Scheda Arduino Ethernet all in one

Marco Lai
13 anni ago

Ethernet shield usare un browser per pilotare Arduino

Marco Lai
13 anni ago

Come usare il ponte H integrato TLE5205-2

Marco Lai
7 anni ago
Exit mobile version