Tampilkan postingan dengan label Wireless. Tampilkan semua postingan
Tampilkan postingan dengan label Wireless. Tampilkan semua postingan

Jumat, 29 Januari 2010

RFM12BP : Sejenak Coding RFM12B

.
File Sumber :Tutorial memprogram RFM12B (bisa juga RFM12BP).

Agar modul Tranciever RFM12B/P bisa berfungsi maka mikrokontroller harus diprogram agar dapat berkomunikasi dengan modul RFM12B/P namun sebelum memprogram ada beberapa hal yang harus diketahui terlebih dahulu.
  • MCU dan modul RFM12B/P berkomunikasi secara SPI (Serial Peripheral Interface) 16 bit.
  • Agar memprogram mudah dan komunikasi SPI sinkron maka xtal MCU memiliki kristal dengan nilai tidak lebih dari 10MHz (sangat disarankan kristal = 10MHz).
  • Salah satu modul RFM12B/P sebagai penerima saja dan salah satu modul RFM12B/P sebagai pemancar saja.
  • Frekuensi modul pemancar dan modul penerima harus sama, dan untuk awal coding sebaiknya menggunakan frekuensi tengahnya saja seperti 434MHz, 868MHz, atau 915MHz.
  • Kecepatan transfer data atau Baud Rate antara pemancar dan penerima harus sama.
  • Untuk modul RFM12B/P Reciever (penerima) setiap selesai menerima data harus dilakukan FIFO Reset untuk mengosongkan buffer memori FIFO agar reciever aktif dan dapat menerima data berikutnya.
Untuk kristal MCU, jika MCU menggunakan kristal lebih besar dari 10MHz maka komunikasi bisa error karena modul RFM12B/P tidak dapat mengikuti kecepatan MCU (modul RFM12B/P menggunakan kristal 10MHz). Hal ini bisa diatasi dengan memberikan delay pada coding MCU agar MCU tidak terlalu cepat, tetapi hal ini justru memperlambat komunikasi MCU dengan RFM12B/P karena delay tersebut harus tepat nilainya (biasanya justru lebih lambat jika dibanding menggunakan xtall 10MHz).

Untuk Codingnya mau jelasin tetapi lebih lengkap disini Tutorial memprogram RFM12B. Coding tersebut pada transmitter memancarkan karakter berupa angka '0' hingga 'F' dan pada reciever menampilkan data diterima pada komputer secara serial (COM).

PREAMBLE berfungsi sebagai sinyal wake up yaitu sinyal 10101010 yang dikirimkan sebelum data sebenarnya dikirimkan, fungsinya sebagai sinyal yang memberitahu pada penerima agar "bangun" (wake up) dan bersiap menerima data sebenarnya yaitu data setelah data sinkronisasi diberikan (SYNC).

Selamat mencoba ;)

RFM12BP : Interface dgn AVR

.
Silahkan baca + download :
  1. Data Sheet RFM12BP.
  2. Blog membahas RFM12B.
  3. Tutorial memprogram RFM12B (bisa juga RFM12BP).
  4. Coding RFM12B dalam Bascom.
  5. Aplikasi konfigurasi RFM12B.
Berdasarkan datasheet RFM12B/BP, tegangan supply yang dibutuhkan antara 2,2Vdc - 3,8Vdc dan untuk RFM12BP dibutuhkan tegangan ekstra 12Vdc untuk supply amplifier 500mW. Oleh sebab itu tegangan pada setiap pin RFM12B/BP tidak lebih dari 4Vdc (lebih lengkap baca datasheet hal 3).

Mikrokontroller dengan level tegangan TTL setiap pin bernilai 0Vdc - 5Vdc, sehingga dibutuhkan pengadaptasi tegangan agar Mikrokontroller dan RFM12B/BP dapat berkomunikasi. Beberapa literatur mengatakan bahwa RFM12B/BP memiliki toleransi dan dapat berkomunikasi dengan mikrokontroller secara langsung meskipun level tegangannya berbeda, silahkan anda coba ;) .
Atau anda bisa menggunakan mikrokontroller Low Power seperti ATmega8L jika ingin dihubungkan secara langsung.

Dari blog : http://blog.strobotics.com ada 3 konfigurasi dasar yang bisa digunakan untuk mengakses RFM12B/BP antara lain :
  • Konfigurasi minimal.
  • Non-Interrupt Based FIFO Usage.
  • Speed Optimised FIFO Usage.
Diantara ketiga konfigurasi tersebut saya menggunakan konfigurasi minimal seperti gambar disamping.
Hanya membutuhkan 4 buah jalur komunikasi, sangat sederhana dan mudah.

Sedikit berbeda dengan gambar, setiap pin RFM12B/BP dengan MCU tidak terhubung secara langsung tetapi setiap jalur terdapat resistor 4K7 ohm sebagai penurun tegangan dari 5 Vdc menjadi kira-kira 3,3Vdc (silahkan ukur dengan Voltmeter) agar RFM12B/BP aman (karena berdasarkan datasheet hal 3, maksimal Vin = 4,5 Vdc).

Penjelasan beberapa pin-pin RFM12B/BP berdasarkan link ini :
  • VDD (required) - Sumber tegangan RFM12B/BP antara 2,2Vdc - 3,8Vdc bukan 5Vdc.
  • SDI (required) - Serial Data Input, sebagai Input jika MCU ingin memberikan command atau data yang akan dikirimkan melalui RFM12B/BP.
  • SDO (required) - Serial Data Output, sebagai Output jika RFM12B/BP akan memberikan data ke MCU.
  • SCK (required) - Serial Clock pin sinyal sinkronisasi pada komunikasi data yang diberikan oleh MCU ke RFM12B/BP.
  • nSEL (required) - Chip Select (rendah aktif). Pin ini harus diberi logika 0 jika RFM12B/BP ingin diakses.
  • FSK/DATA/nFFS (optional) - jika tidak digunakan harus diberikan resistor pullup.

Sumber tegangan RFM12B/BP atau pin VDD dapat dibuat menggunakan regulator 3,3 Volt menggunakan IC 78L33, TLV2217-33, LM3940, Zener 3Volt, dsb. Saya menggunakan Zener 3Volt yang pasang seperti gambar disamping. Jangan lupa selalu mengukur tegangan agar tidak merusak RFM12B/BP ataupun MCU.

Saya menggunakan RFM12BP dan saat pertama kali Coding, antena RFM12BP tidak saya pasang tetapi agar komunikasi terjadi, pemancar dan penerima tidak boleh lebih dari 2 meter, terhalang sesuatu, atau didaerah banyak sinyal (noise).
Dan juga saya merancang dengan PCB matriks (PCB lubang IC) belum menggunakan PCB yang bagus tetapi komunikasi lancar dan tidak terjadi error data sedikitpun. Sehingga anda dapat menguji coba juga dengan PCB matriks sebelum menggunakan PCB mahal.

Pada perancangan Hardware RFM12B/BP, lakukan hal berikut :
  • Tempatkan RFM12B/BP sedekat mungkin dengan MCU agar komunikasi SPI tidak mengalami drop tegangan (data error).
  • Program MCU agar pin SDI, SCK, SDO, dan nSEL berlogika 1 semua, pada RFM12B/BP ukur tegangan pada setiap pin tersebut dan tidak boleh lebih dari 4,5 Vdc.
  • Jika anda merancang PCB selalu siapkan LED indikator yang menunjukkan RFM12B/BP mengirim atau menerima data.
Selamat mencoba ;)

RFM12BP : Pengenalan RFM12B

.
Silahkan baca + download :
  1. Data Sheet RFM12BP.
  2. Blog membahas RFM12B.
  3. Tutorial memprogram RFM12B (bisa juga RFM12BP).
  4. Coding RFM12B dalam Bascom.
  5. Aplikasi konfigurasi RFM12B.
Link-link internet yang saya berikan diatas adalah semua referensi yang saya gunakan (kecuali 4, 5 tapi yang paling membantu no 3).

Aplikasi nirkabel (wireless) merupakan salah satu hal yang wajib dikuasai saat ini, akan tetapi harga modul wireless yang tinggi menyebabkan kurangnya minat untuk menggunakannya sehingga kembali pada komunikasi yang mengacu pada wiring (pengkabelan).

Modul tranciever RFM12B atau RFM12BP merupakan salah satu solusi untuk pengembangan aplikasi wireless dengan sistem embedded seperti mikrokontroller karena arganya yang terjangkau, fitur-fitur yang menarik, dan kelebihan-kelebihan yang dimilikinya. RFM12B dan RFM12BP merupakan modul yang sebenarnya sama tetapi RFM12BP memiliki rangkaian tambahan amplifier dengan output mencapai 500mW.




Pengenalan RFM12BP

Modul RFM12BP memiliki 4 buah frekuensi yang tesedia di pasaran yaitu 315MHz, 434MHz, 868MHz, dan 915MHz (frekuensi 315MHz sudah jarang tersedia). Untuk membedakan frekuensi setiap modul cukup dengan melihat pada PCB modul, yaitu posisi strip yang ditandai seperti ditunjukkan gambar dibawah ini.

Nilai frekuensi yang ditunjukkan tersebut adalah frekuensi tengahnya sedangkan frekuensi transmisi data akan anda definisikan sendiri secara program sesuai keinginan anda tetapi mengacu pada frekuensi tengah tersebut. Inilah salah satu kelebihan dari RFM12B yaitu pengaturan frekuensi transimi data secara program.

Perhatikan datasheet RFM12BP halaman 4 dengan penggunaan kristal 10MHz :

  • frekuensi 433 MHz band 2,5kHz step dgn min=430,24 MHz dan max = 439,75MHz.
  • frekuensi 868 MHz band 5kHz step dgn min=860,48 MHz dan max = 879,51MHz.
  • frekuensi 915 MHz band 7,5kHz step dgn min=900,72 MHz dan max = 929,27MHz.
Saya agak bingung karena pada datasheet frekuensinya tertulis 433MHz tetapi pada modulnya 434MHz tetapi karena saya menggunakan 915MHz jadi tidak begitu dipermasalahkan.

Jika anda menggunakan modul RFM12BP dgn 915MHz band bukan berarti komunikasinya harus dengan frekuensi itu tetapi bisa pada range minimum hingga maksimum.

Misalkan anda merancang mengontrol perangkat TV, Lampu, Radio, Garasi, Pintu, Jendela, dsb, dengan menggunakan 1 remote kontrol tidak dengan unique address protokol (pengalamatan perangkat yang berbeda) tetapi menggunakan metode perbedaan frekuensi sehingga didapatkan TV=903MHz, Lampu=910MHz, Radio=916MHz, Garasi=919MHz, Pintu=920MHz, Jendela=924MHz, dst.
Apabila metode unique address digabung dengan perbedaan frekuensi bisa anda bayangkan seberapa banyak perangkat yang anda kendalikan hanya dengan sebuah remote kontrol.

Topik yang Populer