Rabu, 17 Maret 2010

KAuC : Memilih Interface antar MCU

.
Silahkan Baca :
KAuC : Introduction Part I
KAuC : Introduction Part II

Menurutku komunikasi data antar MCU, Multi MCU, dan Multi Device, memiliki beberapa perbedaan tetapi kali ini akan saya bahas hanya antar MCU saja.

Memilih Interface KAuC
Menurut anda jika ingin 2 buah MCU saling berkomunikasi maka jenis interface mana yang anda pilih : Parallel 8 bit atau 4 bit, SPI / TWI, I2C, UART, atau USRT. pilih yang mana?
Jawaban bijak dan klise biasanya, "Sesuaikan dengan kebutuhan dan sistemnya ?" meskipun kurang memberikan jawaban (cape deee...) tetapi memang seperti itu jawabannya.

Tentukan dahulu kebutuhan sistem anda dengan berbagai pertanyaan seperti berikut :
  • Mau menggunakan mikrokontroller apa ? Berdasarkan memori, Kecepatan eksekusi, atau banyak Port.
  • Apakah komunikasi / interface dengan komputer ? atau nantinya bisa interface dgn komputer ?
  • Membutuhkan transfer data yang sangat cepat, cepat, lambat, sangat lambat, atau tidak tahu ?
  • Jenis transfer Byte atau Bit, berapa Byte atau bit ?
  • Komunikasi berupa data Heksadesimal atau berupa data ASCII ?
  • Apakah Interface dengan Sensor atau IC lain dengan tipe I2C, SPI, 1-Wire, 2-Wire ?
  • Fleksibilitas hardware kedepannya apakah diperlukan ?
  • dsb.. (cari n catat yang banyak).
Dari berbagai pertanyaan dapat dirancang dengan tepat seperti apa hardware yang akan dibuat, jenis interface yang digunakan, dan rancangan kedepannya seperti apa, dan agar mudah dipahami sebaiknya diberikan contoh kasus.
Misalkan sistem rancangan membutuhkan + pembagian PORT-nya:
  • PORTA =>> Keypad matriks 4x4
  • PORTB =>> LCD karakter 16x2
  • PORTD.0 + D.1 =>> Interface UART dgn komputer.
  • PORTD.2 = >> Sensor Encoder.
  • PORTD.4 =>> Motor DC (1 arah saja) + Driver
  • PORTD.5 + D.6 + D.7 =>> IC digital RTC DS1302 dan IC Serial EEPROm AT93C66
Nah dari pembagian rancangan Port tersebut maka penjelasannya :

Pin Rx dan Tx sebenarnya sangat baik untuk komunikasi antar MCU karena sangat mudah tetapi pin ini juga WAJIB digunakan untuk komunikasi dengan komputer secara serial maupun USB (dengan konverter). Dan saat ini merupakan hal umum dan nilai tambah jika hardware-nya dapat berkomunikasi dengan komputer. Oleh sebab itu gunakan pin ini jika terpaksa.
Pilihan "sedikit tepat" dan "kurang bijak" adalah dengan menggunakan mikrokontroller yang memiliki 2 buah pin Rx dan Tx (Rx0, Tx0 dan Rx1, Tx1) seperti pada ATmega128. Untuk beberapa aplikasi sederhana jika anda menggunakan ATmega128 diumpamakan memberikan Mobil ke anak SD yaitu terlalu berlebihan (kalo kaya si serah aja) padahal fungsi yang digunakan hanya sederhana.

Untuk Mikrokontroller gunakan ATmega8535 (mikrokontroller 8 bit) , mikro ini lebih dari cukup untuk banyak aplikasi. SPI pada ATmega8535 menggunakan Pin MOSI, MISO, SCK dan SS pada PORTB sehingga SPI tidak bisa digunakan.

Dari pemetaan port terhadap perangkat diatas maka PORTC belum digunakan, sehingga ada beberapa pilihan : Parallel 4 bit (8 bit tidak bisa karena pin handshake dibutuhkan), TWI (ada pin SDA dan SCL), dan I2C.
Karena hanya antar MCU dan bukan multi MCU maka I2C tidak dipilih selain itu I2C sebaiknya digunakan hanya untuk mengakses Chip IC yang memang dikhususkan I2C saja untuk antar MCU agak repot. Tinggal TWI dan Parallel 4 bit.

Jika memilih antara TWI dan Parallel 4 bit dan untuk komunikasi MCU-MCU maka saya memilih komunikasi parallel 4 bit karena tidak ingin belajar (malas) mengenai TWI lagi.
Tetapi sebenarnya masih ada pilihan lainnya yang biasa saya pakai yaitu dengan SPI (Serial Peripheral Interface) menggunakan Coding sendiri dan Pin yang didefinisikan sendiri yaitu tidak menggunakan MOSI, MISO, SCK dan SS. Memang pusing Codingnya tetapi sangat berguna untuk Komunikasi data antar MCU maupun Multi MCU bahkan beberapa perangkat, Selain itu panjang data yang dikomunikasikan terserah programmer bisa 1 byte, 2 byte, 3 byte, atau lebih.

Pilihan jatuh pada Interface Parallel 4 bit dan SPI user defined.

Setelah mengetahui jenis interface apa yang sesuai dengan perangkat yang dirancang selanjutnya adalah mengetahui apa saja yang dibutuhkan agar sistem dapat berkomunikasi dengan benar dan tepat.

Lanjut ke post berikutnya..
Semoga Manfaat ;)

Topik yang Populer