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
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”.
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.
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.
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.
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.
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.
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)
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).
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!!!
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:
- Pastikan seluruh sakelar pada kondisi OFF (unpressed).
- Ikuti prosedur penyalaan diatas.
- Pada mode “UNSHIFTED” ukur frekuensi LO (Frekuensi IF) yang diinginkan dan tunggu sampai pembacaan stabil.
- Tekan sakelar “SAVE” sekali saja.
- Tekan sakelar “SHIFT” untuk mengukur dengan mode shift terhadap frekuensi LO di atas, dan hasil pengukuran harus mendekati 0 Hertz.
- 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
23 comments
Comments feed for this article
March 20, 2011 at 6:14 pm
adiis
binun…. binunnn saya mas cholis………
otak sudah ndak bisa nerima lagi teori seperti ini.
hardisknya sudah penuh dan ndak bisa di upgrade lagi, hehehhhh
March 20, 2011 at 7:09 pm
YD1CHS
Dear OM Adi Is,
Terimakasih mampir disini, hehehe … prinsipnya sederhana OM, mungkin hanya programming saja yang terlihat agak ruwet, mungkin knowledge saya yang masih rendah sehingga belum mampu menjelaskannya dengan lebih simple … hehehe
Saya sudah sertakan firmware *.hex siap download ke AVR, sehingga kalau ada Rekans yang ingin bereksperimen “dengan own risk tentunya” bisa menggunakannya …
Have a nice day OM …
Regards,
Cholis Safrudin YD1CHS
March 21, 2011 at 7:15 am
Indra YD1JJJ
Bagus Om Cholis. Saya akan mencoba. Kalau tempat masih ada, bisa ditambahkan tampilan mode status (LSB/USB/CW) dan S-meter.
Tampilan tersebut paling banyak dibutuhkan para homebrewer.
Bravo ……….
March 21, 2011 at 10:54 am
YD1CHS
Dear Om Indra YD1JJJ,
Terimakasih masukannya, bagus sekali OM idenya, secara teknis sangat memungkinkan OM. Saya akan coba OM …
Regards,
Cholis YD1CHS
March 22, 2011 at 3:50 am
Zacktiwa
Saya sudah lama membaca artikel-artikel Om Cholis banyak sekali pelajaran yang saya dapatkan, tapi baru kali ini memberanikan diri untuk masuk comment. Sejak SD saya sangat hoby dengan elektronika terutama yang berhubungan dengan RF, dengan hoby itu sampai-sampai saya dulu pernah dimarahi tetangga karena TV nya jadi gak ada gambarnya, eh ternyata gara-gara pemancar fm saya yang memakai antena sembarang. ya itu 15 taun yang lalu maklum waktu itu baru kelas 6 SD. sekarang saya mulai tertarik lagi dengan RF yang digabungkan dengan microcontroller. yang saya mau tanyakan apakah bisa BITX digabungkan dengan “FT-180A Modification For 40 & 80M” atau dengan artikel yang sekarang ini dibahas.
terima kasih
Semoga tetap semangat…….
March 22, 2011 at 5:42 am
Zacktiwa
eh Om msih ada pcb bitx80? kalo boleh mohon dikirim ke email saya.
terimakasih sebelumnya…
Bravo….
March 22, 2011 at 6:36 am
YD1CHS
Hallo OM Zacktiwa,
Salam kenal yaa, pengalaman OM yg dimarahin tetangga jg saya alami saat di SMP-SMA ketika bermain di CB dan 80M AM rakitan, namun OM Zacktiwa lebih hebat sebab di SD sdh bisa membuat FM transmitter, saya baru terjun di dunia RF transmitter di akhir bangku SMP, salut hehehe …
Kalau untuk project BITX saya cenderung merekomendasikan menggunakan FC desain terakhir ini, karena IF offset bisa menggunakan frekuensi berapapun, tinggal colok diout BFO dan Save, beres. Sedangkan FC di FT-180A tsb IF offsetnya sdh fixed ditulis di firmware, kalau mau ubah IF harus ditulis dan dicompile ulang … Kurang praktis tentunya.
Oh yaa, saya blm sempat mencoba scr hardware desain ini, InsyaAlloh kalau ada waktu luang akan saya lakukan. Niatan saya adalah capturing masukan2 dari Rekans, apa saja yg biasa digunakan dan diperlukan dlm dunia riil, jd saya bisa perkaya dg fitur lainnya, dan hasilnya dikembalikan ke semua yg berminat utk mencoba “free of charge” … Sesuai semangat zaman Web 2.0, hehehe
Regards,
Cholis YD1CHS
Powered by Telkomsel BlackBerry®
March 22, 2011 at 6:51 am
YD1CHS
Dear OM Zacktiwa,
OK PCB telah dikirim ke email OM …
Regards,
CHolis YD1CHS
March 23, 2011 at 2:16 am
Zacktiwa
Salam kenal juga Om, saya masih blajar belum ada apa-apanya dibandingkan dengan Om Cholis, ditunggu experiment hardwarenya, agar saya dapat belajar lebih banyak dari Om.
oh ya terima kasih banyak, sangat lengkap sekali kirimannya.
Ok semangat terus Om……….
April 4, 2011 at 4:30 pm
gendir
om cholis email sayagak pernah dibalas maklum sibuk sekali ya
April 4, 2011 at 4:36 pm
YD1CHS
Dear OM Gendir …
Weleh … Sorry Mas … Yang nggak dibalas chatting atau email yooo? sorry-sorry … yooo
Regards, Cholis
April 27, 2011 at 6:50 am
ridwan
mas cholis, apa boleh sy dikirimi firmware karyanya mas cholis tentang*.HEX (AT8-LCD-HF-FC-SHIFTED.hex) file nya bisa di down load tpi tdk bsa di buka ok trims. ditunggu di email sya
May 20, 2011 at 11:08 am
uyik
artikel yg bagus bang colis, akan saya coba di Isis dulu, baru kemudian ke hardware. jadi punya gagasan nih buat di frekuensi VHF.
October 24, 2011 at 3:41 pm
Mahmudi
Dear Om Cholis,
Terimakasih Om, sekarang setelah frekwesi counter pakai PIC16F84 berhasil saya buat, saya juga mau coba yang ini
Thank you Om…
Mahmudi
YD0OQW
December 21, 2011 at 4:46 pm
sugeng budianto
sore om cholis
kalo boleh saya dikirimi cara dan sofweruntuk memogram, karena coba merakit pakei ic pic tapi lcd kosong
March 1, 2012 at 9:54 am
victor bengga saputra
assalamualaikum, saya sudah buat freq counter nya, yg jadi permasalahan sewaktu tanpa input, di LCD tampil 1.00 Hz dan sewaktu pengukuran terdapat selisih sekitar 10 KHz (1minggu yg lalu), sekarang sekitar 40KHz.
Apa ada hubungan dengan mikrokontroller yang saya gunakan (ATMEGA 8A-PU)
Dan pcb yg saya gunakan, pcb matrix
Spec :
ATMEGA 8A – PU
SN74HC393N
HD74HC00P
LCD M1632 (second)
POWER SUPPLY : 3A switching power supply
October 7, 2012 at 5:01 pm
kang UU
cara memori kenwood ts 450
October 24, 2012 at 7:44 am
rudi
dimana mendapatkan ic nya ?
October 24, 2012 at 8:41 am
YD1CHS
Ditoko-toko elektronik khusus micro banyak dijumpai OM …
________________________________
February 6, 2013 at 9:38 am
lekgundol
cak cholis minta gambar pcb nya dong …klo ada sich yg pake file eagle…ke email aja ya??/ yd6lhgdul@yahoo.co.id
February 7, 2013 at 2:24 pm
Bayu
Om Cholis saya Minta Layout PCBnya donk
kirim ke bayu407@gmail.com
February 10, 2013 at 3:59 pm
YD1CHS
Wah saya kebetulan tidak membuat layout PCB-nya OM hehehe, eksperimen saya dilakukan di bread-board euy … 🙂
Powered by Telkomsel BlackBerry®
December 10, 2014 at 12:49 pm
Aryanto
om Cholis.. Saya coba download firmware nya ko gk bisa ya.. minta dikirimkan ke aryanto.mit@gmail.com donk.. pengen punya freq counter.