oleh : Sean
Halo lagi sobat MJL, beberapa pekan yang lalu MJL kan pernah berencana ngirim 100 surat ke seluruh universitas di Indonesia. Seabrek surat itu kita kirim lewat jasa pos supaya mereka yang ngurus, jadi kita tetep bisa nyari sebongkah ide buat kelangsungan hidup MJL tanpa perlu repot diganggu urusan ngirim-mengirim surat. Nah, kali ini kita mau cerita apa yang terjadi kalo kita ngirim semua surat itu sendiri. Nah lho, kok ngiklan??
Eits, tunggu dulu tapi, yang kita ceritain bukan pengiriman surat, tapi pengiriman data serial dari device ke device lain. Otre?
Kalo di dunia ‘mereka’, jasa pengiriman data jelas bukan lewat pos, tapi bisa bermacam-macam juga melalui dedicated pin di device itu, seperti lazimnya mikrokontroller menggunakan UART, dan seperti halnya mengirim surat, kita tinggal nulis beberapa kriteria beserta isi datanya dengan benar, lalu mereka akan mengurus pengiriman data tersebut ke tempat tujuan.
Tapi kita bisa aja mengirim data tersebut tanpa mesti mengirimnya lewat pin khusus tadi. Perlu sedikit trik untuk membuat pin I/O biasa menjadi pin untuk komunikasi, yaitu menggunakan software atau program yang mirip dengan kinerja hardware aslinya. Cara ini disebut Bit-Banging! Cara ini aslinya punya banyak kelemahan dibanding menggunakan langsung fungsi hardware seperti UART tadi. Tapi bukan tidak mungkin kita akan menemukan bahwa ilmu ini bakalan terpakai nanti, entah karena kebutuhan atau kesesatan penggunanya. So buat mikrokontroler macem ATmega yang biasanya cuma punya 1 pasang serial, kita bisa hack jadi banyak !
Bayangkan kekurangannya, seperti halnya jika MJL mengirim ke 100 surat itu sendiri. Yang jelas pasti memakan waktu lama, selain itu kita juga gak sempet mikirin nasib MJL. Entah berapa lama harus vakum sampai selesai mengirimkannya, ditambah lagi, kita juga kecapekan. Begitu pula efek samping yang dirasakan mikrokontroler/prosesor kita jika kita menggunakan metode pengiriman sesat ini, di antaranya:
- Kecepatan transfer datanya lebih lambat dari standar fitur hardware aslinya.
- Tidak bisa mengerjakan proses lain ketika pengiriman data dilakukan.
- Kontroler/prosesor mendapat beban kerja lebih berat, mungkin jadi lebih mudah panas.