Shifted FC

This article was delivered by Bahasa, for English readers please either download an English version or activate a translator feature availabled in this blog. Here it is: Article_on_EN

ABSTRAKSI

Masih seputar dunia 8 bits microcontroller, namun kali ini saya akan tampilkan produk dari AVR yaitu ATmega-8 28 pin. Project yang saya desain ini adalah isu kuno yaitu sebuah frekuensi meter untuk band HF yang dilengkapi dengan fasilitas autoranging dan IF shifting.

Yang saya maksud dengan fitur autoranging adalah FC akan menyesuaikan tampilan pembacaan frekuensi, mulai dari xxx.xx Hertz, xxx.xxx.xx KHz dan xx.xxx.xx MHz.

Selanjutnya, fitur IF Shifting adalah tampilan frekuensi yang telah dijumlahkan atau dikurangkan dengan sebuah Frekuensi IF yang sebelumnya telah disimpan di dalam EEPROM. Pemilihan Frekuensi IF dilakukan oleh user dengan mengukur terlebih dahulu frekuensi pada blok LO, kemudian baru dilakukan penyimpanan ke EEPROM, dengan demikian berapapun frekuensi IF yang user miliki dapat dijadikan referensi. Dalam mode IF shifted, pada LCD baris kedua akan ditampilkan informasi tambahan yaitu:

  • Shifted   F=0
  • Shifted   F>IF
  • Shifted   F<IF, atau
  • Shifted   F=IF

Bila user tidak membutuhkan fitur ini, maka cukup melakukan release tombol “SHIFT”. Dengan demikian, maka user akan dapat mengetahui berapa besar Frekuensi IF yang tersimpan di dalam EEPROM dengan membandingkan perbedaan tampilan frekuensi pada mode “SHIFTED” dan “UN-SHIFTED”.

Untuk mengadaptasikan microcontroller supaya dapat bekerja sampai dengan frekuensi tertinggi band HF (30MHz), maka saya menambahkan sebuah prescaler eksternal sebelum masuk ke port T1 microcontroller. Untuk mendapatkan kepekaan terhadap sinyal RF dengan amplitudo kecil, nilai R3 (1k2) bisa disesuaikan sehingga pada saat tidak ada input masuk, rangkaian gate NAND pada posisi hampir aktif. Rangkaian Pre-Amp bisa diganti dengan desain lain, asalkan NAND Gate yang memiliki Port GATE dan FLUSHER dipertahankan seperti pada desain asli.

Terus terang, saya belum melakukan eksperimen desain ini dengan hardware asli, namun desain telah saya coba dan debug dengan menggunakan bantuan software demo Proteus yang bisa didownload secara gratis di Internet. Silakan anda googling dimana dapat menemukan software luar biasa ini. Berikut beberapa tampilannya:

SIMULASI PERFORMANSI DARI SISTEM

Welcome

Tampilan di samping adalah welcome message, sebenarnya hanya untuk memastikan kepada user bahwa komponen dasar rangkaian yang meliputi firmware, hardware dan LCD telah bekerja sesuai dengan perencanaan.Selanjutnya saya telah melakukan penyimpanan Frekuensi IF sebesar 50 Hertz dan saat ini nilainya telah tersimpan dengan aman di EEPROM. Saya akan mencoba melakukan pembacaan frekuensi untuk 3 kemungkinan yaitu dengan Frekuensi di bawah IF, sama dengan IF dan di atas IF. Dan akan kita perhatikan bagaimana perilakuknya bila melakukan pengukuran pada mode “UN-SHIFTED” dan mode “SHIFTED”.

Unshifted 5Hz

Gambar di sampaing kanan bagian atas merupakan hasil pembacaan sebuah sinyal masukan sebesar 5 Hertz yang diukur dengan mode “UN-SHIFTED”, terlihat pembacaan sesuai dengan frekuensi sumber.

Selanjutnya, sakelar “SHIFT” diaktifkan (ditekan), sehingga saat ini masuk pada mode “SHIFTED” dengan IF Frequency seperti yang telah saya sebutkan sebesar 50 Hertz. Tampak pembacaannya adalah sedikit berbeda dengan pembacaan pertama, dimana pada baris kedua ditampilkan pesan bagi user, yaitu mode Shifted dan F<IF. Maksud dari F<IF adalah, besarnya frekuensi yang sedang diukur yaitu 5 Hertz adalah lebih kecil dari frekuensi sinyal IF yang disimpan di dalam EEPROM yaitu sebesar 50 Hertz.

Shifted 5Hz

Skenario selanjutnya adalah mengatur sinyal masukan dengan frekuensi sama dengan frekuensi IF, yaitu sebesar 50 Hertz. Gambar disamping kiri memperlihatkan sinyal masukan dimaksud.

Pada mode “SHIFTED” akan ditampilan pembacaan sebesar 0 Hertz dan tambahan informasi mode yang sedang berjalan, plus F=IF. Penjelasannya persis dengan yang sebelumnya, bahwa frekuensi sinyal yang sedang diukur sama dengan fekuensi IF.

Yang terakhir, bagaimana kalau sinyal masuk memiliki frekuensi lebih tinggi dibandingkan dengan Frekuensi IF dan saya kira dengan mudah bisa ditebak hasilnya.

Unshifted 50Hz

Frekuensi masukan sebesar 120 Hertz, sehingga pada mode “SHIFTED” terbaca menjadi 70 Hertz plus keterangan F>IF.
Well, saya kira pasti ada beberapa yang bertanya kenapa contohnya kok cuman menggunakan Low Frekuensi di bawah 1KHz, jawabannya adalah keterbatasan dari program simulator dan kecepatan komputer. Untuk melakukan simulasi di atas 1KHz performansi software simulasi menurun, karena memang jumlah counter yang dihitung lebih banyak, sehingga saya cukupkan dengan beberapa sampel di atas.

Shifted 50Hz

CARA KERJA RANGKAIAN (HARDWARE)

Secara hardware rangkaian ini terbagi menjadi 4 buah bagian, pertama adalah RF Pre-Amp yang dibentuk dari sebuah transistor small signal 2N2222A atau jenis lainnya. Untuk mendapatkan efek kepekaan yang berbeda, rangkaian ini dapat dimodifikasi, namun pastikan bahwa coupling menuju blok selanjutnya tidak menggunakan coupling capacitor karena kebutuhan tegangan tertentu pada input NAND gate terdepan pada posisi tepat sebelum dinyatakan sebagai bit 1 (aktif) oleh microcontroller.

Unshifted 120Hz

Bagian kedua adalah tiga buah NAND GATE (74LS00 atau sejenis) yang dihubungkan dengan konfigurasi serial. NAND Gate terdepan, yang berfungsi untuk menegasikan sebuah sinyal 1 menjadi 0. Sehingga ketika sinyal GATE pada NAND GATE kedua diaktifkan (active Low), maka sesuai dengan tabel kebenaran NAND GATE akan diperoleh kondisi aktif 1, sesuai dengan kondisi sinyal masukan.

NAND GATE keempat berfungsi sebagai FLUSHER, untuk menggelontor sisa clock yang ada di dalam buffer Prescaler Eksternal ketika akan melakukan perhitungan jumlah clock nantinya. NAND GATE ini juga berfungsi sebagai GATE kedua.

Shifted 120Hz

Dengan mengontrol pengaktifan sinyal GATE (active Low), maka kita bisa mengatur kapan sinyal masukan boleh masuk ke microcontroller dan kapan harus dihentikan, termasuk berapa lama GATE tersebut harus dibuka, karena periode sampling sangat terkait dengan CPU Speed dan menentukan berapa tingkat ketelitian dari counter yang kita desain nantinya.

Bagian ketiga adalah prescaler eksternal (74LS393) dengan ratio 1:256, artinya bahwa dibutuhkan sebanyak 256 clock masukan untuk mendapatkan 1 buah clock di sisi keluaran. Posisi terakhir kondisi bit-bit keluaran prescaler akan tersimpan (latched) dan bisa kita hapuskan ketika pin reset pin 2 dan 12 diaktifkan (active High).

Bagian terakhir yang juga merupakan otak dari rangkaian ini adalah microcontroller AVR ATmega-8 yang terhubung ke LCD 16×2.

CARA KERJA RANGKAIAN (SOFTWARE)

Main Algorithm

Secara sederhana algoritma yang digunakan pada aplikasi ini ditunjukkan oleh beberapa diagram alur berikut.
Diagram alur disamping adalah proses utama. Kotak bergaris di kedua sisinya berarti sebuah proses, dan akan dijelaskan lebih detail kemudian.

Seperti biasanya, langkah awal sebelum operasi utama dilakukan, maka dilakukan beberapa konfigurasi dan inisiasi beberapa hal.

Pertama adalah konfigurasi mesin yang akan dipakai, yaitu AVR ATmega-8 dengan sumber clock Xtal eksternal sebesar 8MHz (maksimum 16MHz, saya kebetulan tidak memiliki Xtal 16MHz, sehingga dalam desain ini saya gunakan 8MHz). Karena selama operasi menggunakan EEPROM, maka diawal kita harus memberitahu mesin atas pemakaian memory ini.
Selanjutnya dilakukan inisiasi LCD yang meliputi PORTC sebagai titik interfacing dengan LCD, menggunakan LCD 16×2 dan menggunakan mode komunikasi 4 kawat (Data ke-4 sd Data ke-7).

Counting Algorithm

Beberapa port D dideklarasikan sebagai I/O. PORTD.0 digunakan sebagai pengontrol sinyal FLUSHER ke NAND GATE ketiga, PORTD.1 digunakan sebagai pengontrol sinyal GATE menuju NAND GATE kedua, sementara PORTD.2 berfungsi sebagai pengontrol sinyal “CLEARER” atau sinyal untuk mengosongkan isi dari prescaler eksternal (74LS393). Dua buah PORTD lainnya digunakan sebagai pin input yang akan dihubungkan ke sakelar, yaitu PORTD.3 untuk mengaktifkan mode pengukuran (Shifted atau Non-Shifted) dan PORTD.4 digunakan untuk menyimpan frekuensi IF ke EEPROM. Operasi-operasi selanjutnya berjalan sesuai dengan alur di atas.

Pada alur utama terlihat dua buah proses yang disederhanakan dengan sebuah gambar kotak dengan garis di kedua sisinya. Gambar disampaing kiri adalah salah satunya, yaitu algoritma perhitungan jumlah clock dari sinyal masukan.
Clock yang masuk ke microcontroller adalah yang telah melalui prescaler eksternal dengan rasio 1:256.
Kedua gate dibuka secara bersamaan selama 125ms untuk meloloskan clock yang masuk ke microcontroller. Pemilihan 125ms ini harus sesuai dengan CPU Speed dari microcontroller yang dipakai. ATmega-8 dengan Xtal 8MHz memiliki CPU Speed sebesar 8 MIPS (Mega Instructions Per Second). Artinya, setiap operasi yang dilakukan microcontroller AVR membutuhkan 1 siklus clock saja. Bandingkan dengan microcontroller produk PIC yang memiliki CPU Speed seperempat dari sumber clocknya, atau dengan kata lain satu operasi membutuhkan 4 siklus clock!!!
Dengan periode 125ms maka tanpa menggunakan tambahan komponen eksternal, microcontroller akan mampu mengukur frekuensi dengan akurasi sebesar 8 Hertz, namun dengan menggunakan tambahan prescaller eksternal plus algorithma khusus untuk menguras semua isi buffernya, sehingga mampu mendapatkan akurasi sampai dengan 1 Hertz!!!

Shifting Algorithm

Lalu bagaimana batas atas pengukuran? Karena AVR hanya membutuhkan 1 siklus clock dalam satu operasi penuh, maka seharusnya frekuensi maksimum yang bisa diukur adalah maksimum sebesar clock yang digunakan, dalam kasus ini 8MHz. Lho lalu kenapa rangkaian ini diklaim dapat bekerja sampai dengan range HF, bukankah frekuensi tertinggi dalam definisi HF adalah 30MHz? Jawabanya, prescaller-lah yang melakukannya untuk kita.

Pada desain ini, 74LS393 akan melakukan prescalling 1:256, sehingga secara teori rangkaian ini mampu melakukan pengukuran sampai dengan 256 * 8MHz = 2GHz. Namun sesuai dengan datasheet 74LS393 hanya mampu melakukan tugasnya sampai dengan frekuensi 35MHz, sehingga angka tersebutlah yang menjadi batas atas pengukurannya.
Proses kedua yang diisyaratkan dengan kotak bergaris di kedua sisinya adalah penghitungan Shift terhadap frekuensi IF.
Bagan disamping memperlihatkan metode sederhana dan termudah untuk mendapatkan efek shift, yaitu dengan mengurangkan hasil perhitungan clock saat itu dengan IF frekuensi yang telah disimpan di EEPROM.

Selanjutnya, beberapa alur di bawahnya merupakan operasi untuk menampilkan pesan di baris kedua LCD bahwa sedang berada di mode “SHIFTED” serta memberitahukan bagaimana posisi F terhadap IF. Dari informasi sederhana ini, bila rangkaian ini diaplikasikan bersama dengan sebuah transveicer single convertion, user dapat memanfaatkannya untuk mengetahui sedang bekerja di USB atau LSB.

Bila kita tidak pernah melakukan penyimpanan harga sebuah frekuensi IF, maka sistem didesain untuk secara otomatis menuliskan ke EEPROM IF frekuensi sebesar 0 Hertz. Sehingga, ketika seorang user menggunakannya pada mode “SHIFTED” maka ia akan diberitahu bahwa IF = 0.

REALISASI HARDWARE

Saya menyertakan firmware dari project ini berupa file *.HEX (please don’t ask me the firmware such as *.ASM or other extentions) dan siap didownload ke microcontroller ATmega-8. Karena semuanya adalah sebatas eksperimen, jadi semua resiko yang ada adalah di tangan anda sendiri.

Dalam melakukan download saya menggunakan software Khazama AVR Programmer dengan setting fuse bits kosong (setting dilakukan oleh firmware).

PROSEDUR PEMAKAIAN

Berikut prosedur pemakaian dari project ini:
Cara menghidupkan:1. Pastikan seluruh rangkaian terhubung secara benar dan tegangan catuan seluruh rangkaian adalah 5V.2. Pastikan backlight LCD beroperasi dan setting kekontrasan mencukupi.3. Pastikan tidak ada koneksi komponen aktif yang terbalik polarisasinya.4. Hubungkan ke catuan battery 9V dan tunggu beberapa saat sampai dengan tampilan frekuensi muncul di layar.

Cara menyimpan Frekuensi IF:

  1. Pastikan seluruh sakelar pada kondisi OFF (unpressed).
  2. Ikuti prosedur penyalaan diatas.
  3. Pada mode “UNSHIFTED” ukur frekuensi LO (Frekuensi IF) yang diinginkan dan tunggu sampai pembacaan stabil.
  4. Tekan sakelar “SAVE” sekali saja.
  5. Tekan sakelar “SHIFT” untuk mengukur dengan mode shift terhadap frekuensi LO di atas, dan hasil pengukuran harus mendekati 0 Hertz.
  6. Rangkaian siap digunakan.

ACKNOWLEDGMENT

  • Desain Pre-Amp, NAND GATE dan Pre-Scaller adalah diadopsi dari karya E. Skelton EI9GQ.
  • Desain sisi microcontroller dan pemrograman firmware pada ATmega-8 adalah karya asli Cholis Safrudin YD1CHS.

FIRMWARE & STUFF

  • Firmware dalam bentuk *.HEX (AT8-LCD-HF-FC-SHIFTED.hex), namun extention saya tambahkan *.pdf dibelakangnya. Untuk itu ketika selesai mendownload hilangkan tambahan extention *.pdf dimaksud. Firmware: AT8-LCD-HF-FC-SHIFTED-V2.hex
  • Bagi pembaca yang menginginkan membaca artikel ini secara offline dapat mendownload file berikut: Artikel_Bahasa
Advertisements