Logic analyzer adalah instrumen untuk melihat dan mencatat state dari sebuah sistem atau sirkuit digital. Penjelasan yang lebih lengkapnya ada di Wikipedia, di posting ini saya hanya ingin membahas kegunaan praktis Logic Analyzer untuk pemula elektronik.
Secara mudahnya: dengan logic analyzer kita bisa melihat di waktu t apakah sebuah signal sedang dalam kondisi on/off (high/low atau 1/0). Dengan software tertentu (atau dengan software buatan sendiri) kita bisa mendecode signal 0/1 menjadi bentuk yang bisa kita mengerti.
Debugging
Bentuk debugging paling sederhana yang bisa dilakukan dengan logic analyzer adalah ini: jika kita mengeset nilai output sebuah pin, benarkah nilainya berubah? mungkin saja kita lupa mengeset mode pin menjadi output, mungkin salah nomor pin karena lupa mengupdate kode (atau mungkin salah modifikasi library milik orang lain).
Sebaliknya kita juga bisa mendebug input: kenapa hasil pembacaan sensor digital tidak terbaca? apakah sensornya memang tidak mengirimkan apa-apa, atau kode yang telah dibuat untuk membaca ternyata masih salah? (salah pin, salah mode, dsb).
Jika kita memakai protokol seperti SPI, I2C, UART, dan memilih decode yang tepat, kita juga bisa melihat apakah data yang kita kirimkan atau yang kita terima sudah benar (misalnya dalam kasus I2C: alamat device mungkin salah).
Selain untuk mendebug data input dan output, kita juga bisa mendebug timing. Dengan software tertentu, kita bisa bisa melihat jarak waktu secara visual.
Selain untuk mendebug sebuah masalah, secara umum logic analyzer ini bisa dipakai untuk belajar. Dengan melihat langsung secara visual signal SPI atau I2C, kita akan lebih mudah mengerti protokol-protokol tersebut.
Logic Analyzer Murah
Secara praktis logic analyzer itu seperti apa? ada yang standalone dengan layar sendiri, dan ada juga yang perlu dihubungkan ke PC. Yang murah adalah yang perlu PC untuk menampilkan hasil pembacaannya. Kadang pembacaan dilakukan di hardware khusus lalu pemrosesan dilakukan di PC karena software di PC lebih fleksibel.
Logic analyzer yang paling murah saat ini adalah clone dari Saleae logic analyzer (harga aslinya > 100 USD, harga clonenya: 5 usd). Logic analyzer ini 8 channel yang artinya bisa memproses 8 input sekaligus. Logic Analyzer ini memiliki sampling rate 24 Mhz, cukup untuk membaca banyak protokol dengan kecepatan rendah. Untuk mengetahui sampling rate seperti apa yang dibutuhkan untuk mendebug suatu protokol, Anda bisa membaca artikel ini.
Cara memakai logic analyzer cukup mudah, hubungkan saja pin logic analyzer ke target yang ingin “dibaca”, lalu lihat hasil pembacaan di layar. Sebelum menghubungkan, perhatikan juga batasan voltase dan arus maksimum dan minimum yang bisa dibaca oleh logic analyzer. Logic analyzer yang murah tidak punya sirkuit proteksi, jadi bisa dengan mudah rusak jika kita hubungkan tanpa memperhatikan voltase dan arusnya. Untuk keperluan pemula, yang hanya memakai Arduino/Raspberry Pi, biasanya kita tidak perlu memikirkan semua itu karena voltase selalu 3.3-5v dengan arus rendah.
Reverse Engineering
Untuk bidang reverse engineering hardware, logic analyzer berguna untuk beberapa hal. Hal yang paling dasar alah: mengetahui apakah sebuah pin atau test pad mengoutputkan sesuatu. Dengan logic analyzer akan lebih mudah mengecek banyak output sekaligus dibandingkan harus memeriksa dengan multimeter.
Setelah tahu sebuah pin memiliki output, berikutnya apa yang dioutputkan? apakah serial message? berapa baud ratenya?. Eksperimen untuk mengetahui ini bisa dilakukan dari hasil rekaman logic analyzer.
Kegunaan lain Logic analyzer adalah untuk menyadap perintah yang dikirim satu sistem ke sistem lain. Misalnya kita bisa mengetahui pesan apa yang dikirim ke chip Mp3 player ketika tombol Next ditekan.
Open Source
Ada beberapa proyek open source yang berhubungan dengan logic analyzer. Dari mulai membuat logic analyzer hardwarenya, sampai software untuk membacanya. Untuk pemula, yang paling mudah adalah sekedar memakai software open source yang ada. Tapi jika tertarik membuat hardwarenya yang sederhana, kita bisa membuat logic analyzer sendiri dengan Arduino atau Raspberry Pi, tapi biasanya kecepatannya rendah. Intinya adalah: kita baca secara periodik status sebuah pin, lalu mengoutputkan hasilnya (bisa berupa teks, grafik atau apapun).
Software open source yang bisa bekerja dengan logic analyzer murah adalah sigrok. Saya lebih sering memakai versi command linenya walaupun ada juga antarmuka grafis yang bernama PulseView (waktu saya coba sering crash).
Selain logic analyzer murah clone saleae, kita bisa membeli development board Cypress FX2LP CY7C68013A. Development board ini harganya kurang dari 5 USD, dan bisa menjadi logic analyzer 24 Mhz dengan 16 channel.
Jika Anda memiliki Beaglebone Black, ini bisa menjadi logic analyzer 14 channel 100 msps (mega sample per second). Ini bisa dilakukan karena beaglebone black memiliki PRU, semacam mikrokontroller yang terpisah dari CPU utama. PRU ini bisa melakukan sampling terpisah dan pemrosesan dilakukan CPU utama.
Penutup
Semoga dengan perkenalan ini para pemula bisa mencoba memakai logic analyzer, baik untuk belajar ataupun mendebug masalah digital.