Mengenal Lebih Dalam Digital Output pada Intel Galileo Gen 2
Seperti yang sudah kita ketahui bersama bahwa Intel Galileo ataupun Intel Galileo Gen 2 menyediakan fitur Arduino UNO Form Factor (memiliki posisi pin I/O yang sama dengan Arduino UNO) untuk mempermudah kita dalam mengembangkan aplikasi dengan cepat. Pada setiap pin I/O ada bagian Digital Input, Analog Input, Digital Output ataupun Analog Output yang berupa sinyal PWM.
Setelah kehadiran dari Intel Galileo dan beberapa masukan dari para maker, maka lahirlah versi penyempurnaan dari Intel Galileo, yaitu Intel Galileo Gen 2. Pada versi ini bagian yang tidak luput dari penyempurnaan adalah kecepatan I/O. Jika pada Intel Galileo sebagian besar pin I/O terhubung ke I/O expander (kecuali pin 2 dan pin 3), maka pada Intel Galileo Gen 2 sebagian besar pin I/O langsung terhubung ke pin I/O dari Quark SoC (kecuali pin 7 dan pin 8).
Tapi bagaimana dengan perbandingan kecepatan digital output antara Arduino UNO yang bekerja pada frekuensi 16MHz dengan Intel Galileo Gen 2 yang bekerja pada frekuensi 400MHz? Penasaran bukan? Nah, pada kesempatan kali ini kami akan menyajikan informasi singkat perihal cara mengetahui kecepatan dari digital output pada Intel Galileo Gen 2 dengan menggunakan Arduino IDE.
Perlengkapan :
- Intel Galileo Gen 2.
- Arduino UNO Rev 3.
- Kabel micro-USB.
- Notebook / PC.
- Arduino IDE ver 1.6.0 (arduino-1.6.0+Intel).
Perlengkapan :
- Pengukuran kecepatan I/O tidak menggunakan Osiloskop.
- Pengukuran kecepatan I/O menggunakan fungsi micros() di Arduino IDE.
- Hasil pengukuran tidak terlalu akurat jika dibanding dengan menggunakan Osiloskop.
- Informasi kecepatan I/O ditampilkan melalui antarmuka Serial UART (micro-USB) dengan bantuan Serial Monitor di Arduino IDE.
Langkah-langkah percobaan
- Melihat kecepatan digital output pin 2 pada Arduino UNO Rev 3
- Buat program baru dengan Arduino IDE, kemudian ketikan program berikut ini :
int pin = 2; //inisialisasi pin untuk IO2 void setup() { pinMode(pin, OUTPUT); //mode OUTPUT_FAST pada IO2 Serial.begin(9600); //aktifkan serial melalui microUSB delay(3000); //tunda 3detik unsigned long jeda,waktu; jeda = micros(); //ambil waktu dari awal (boot) for (int i=0;i<=1000;i++){ digitalWrite(pin, HIGH); digitalWrite(pin, LOW); } waktu = micros()-jeda; //waktu dikurangi waktu jeda Serial.print("Waktu untuk 1000x (High-LOW) : "); Serial.print(waktu); //tampilkan Serial.println(" mikrodetik"); Serial.print("Waktu untuk 1x pulsa High Low = "); Serial.print((float)waktu/1000); Serial.println(" mikrodetik"); } void loop() { // put your main code here, to run repeatedly: }
- Kemudian Upload kode program tersebut, dan segera buka Serial Monitor setelah proses Upload selesai.
- Berdasarkan dari informasi tersebut, untuk 1 periode On-Off, Arduino UNO memerlukan waktu sekitar 10,58 mikrodetik. Jika diubah dalam satuan frekuensi maka menjadi
- Buat program baru dengan Arduino IDE, kemudian ketikan program berikut ini :
- Melihat kecepatan digital output pin 2 pada Intel Galileo Gen 2
- Gunakan program yang sama dengan percobaan untuk Arduino UNO.
- Kemudian ganti jenis Board dari Arduino UNO menjadi Intel Galileo Gen 2.
- Sesuaikan ComPort untuk Intel Galileo Gen 2.
- Kemudian Upload dan segera buka Serial Monitor setelah proses Upload selesai.
- Berdasarkan informasi di Serial Monitor, waktu yang diperlukan oleh Intel Galileo Gen 2 untuk mengeluarkan sinyal On-Off sekitar 2,24 mikrodetik. Jika diubah dalam satuan frekuensi maka menjadi
- Melihat kecepatan digital output pin 7 pada Intel Galileo Gen 2
- Ganti nilai pin menjadi pin 7.
- Kemudian Upload dan segera buka Serial Monitor setelah proses Upload selesai.
- Berdasarkan informasi di Serial Monitor, waktu yang diperlukan oleh Intel Galileo Gen 2 untuk mengeluarkan sinyal On-Off sekitar 587,81 mikrodetik. Jika diubah dalam satuan frekuensi maka menjadi
Sesuai dengan informasi yang didapatkan dari dokumen rangkaian skematik Intel Galileo Gen 2, terlihat bahwa pin 7 dan pin 8 terhubung ke GPIO Expander sehingga memperlampat dalam mengeluarkan sinyal On-Off. - Ganti nilai pin menjadi pin 7.
Menambah Kecepatan Output pada Intel Galileo
Pada kode program tersebut dapat berfungsi dengan baik jika menggunakan Intel Galileo Gen 2. Lalu bagaimana dengan Intel Galileo? Jika kode program tersebut coba di-upload ke Intel Galileo (Melihat kecepatan digital output pin 2 dari Intel Galileo Gen 2), maka frekuensi output yang dihasilkan sekitar 230Hz. Jika pada Intel Galileo ingin mengeluarkan frekuensi output sekitar 448kHz, maka perintah pinMode(pin,OUTPUT) bisa diganti dengan pinMode(pin,OUTPUT_FAST).
Sesuai dengan informasi tabel pada awal artikel, pada Intel Galileo hanya memiliki 2 pin yang langsung terhubung ke Quark SoC, yaitu pin 2 dan pin 3. Oleh karena itu fitur OUTPUT_FAST hanya dapat berfungsi untuk pin 2 dan pin 3 saja di Intel Galileo.
Pada Intel Galileo Gen 2, penulisan OUTPUT atau OUTPUT_FAST akan memiliki fungsi yang sama, yaitu mengeluarkan frekuensi output sekitar 448kHz di semua pin (kecuali pin 7 dan 8).